語法:
<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:allowClearUserData=["true" | "false"]
             android:allowNativeHeapPointerTagging=["true" | "false"]
             android:backupAgent="string"
             android:backupInForeground=["true" | "false"]
             android:banner="drawable resource"
             android:dataExtractionRules="string resource"
             android:debuggable=["true" | "false"]
             android:description="string resource"
             android:enabled=["true" | "false"]
             android:extractNativeLibs=["true" | "false"]
             android:fullBackupContent="string"
             android:fullBackupOnly=["true" | "false"]
             android:gwpAsanMode=["always" | "never"]
             android:hasCode=["true" | "false"]
             android:hasFragileUserData=["true" | "false"]
             android:hardwareAccelerated=["true" | "false"]
             android:icon="drawable resource"
             android:isGame=["true" | "false"]
             android:killAfterRestore=["true" | "false"]
             android:largeHeap=["true" | "false"]
             android:label="string resource"
             android:logo="drawable resource"
             android:manageSpaceActivity="string"
             android:name="string"
             android:networkSecurityConfig="xml resource"
             android:permission="string"
             android:persistent=["true" | "false"]
             android:process="string"
             android:restoreAnyVersion=["true" | "false"]
             android:requestLegacyExternalStorage=["true" | "false"]
             android:requiredAccountType="string"
             android:resizeableActivity=["true" | "false"]
             android:restrictedAccountType="string"
             android:supportsRtl=["true" | "false"]
             android:taskAffinity="string"
             android:testOnly=["true" | "false"]
             android:theme="resource or theme"
             android:uiOptions=["none" | "splitActionBarWhenNarrow"]
             android:usesCleartextTraffic=["true" | "false"]
             android:vmSafeMode=["true" | "false"] >
    . . .
</application>
包含於:
<manifest>
可包含:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-library>
說明:
應用程式宣告。這個元素包含的子元素會宣告每個應用程式元件,並具備可影響所有元件的屬性。其中的許多屬性 (例如 iconlabelpermissionprocesstaskAffinityallowTaskReparenting) 會針對元件元素的對應屬性設定預設值。其他屬性 (例如 debuggableenableddescriptionallowClearUserData) 則會針對應用程式整體設定值,且無法由元件覆寫。
屬性
android:allowTaskReparenting
應用程式定義的活動是否可以從啟動這些動作的工作,移至其有相依性的在工作 (在該工作下一次移到前端時)。如果可以移動,設為 "true",如果必須保留在原本啟動的工作中,則設為"false"。 預設值為 "false"

<activity> 元素有專屬的 allowTaskReparenting 屬性,可覆寫此處設定的值。詳情請參閱該屬性。

android:allowBackup

是否允許應用程式參與備份與還原基礎架構。如果此屬性設為 false,則永遠不會為應用程式執行備份或還原,即使是會透過 ADB 儲存所有應用程式資料的完整系統備份也不例外。此屬性的預設值為 true

注意:如果您的應用程式以 Android 11 (API 級別 30) 以上版本為目標,就無法停用應用程式檔案的裝置對裝置遷移功能。系統會自動允許這項功能。

即使您的應用程式以 Android 11 (API 級別 30) 以上版本為目標,仍然可以將此屬性設為 false,藉此停用應用程式的雲端檔案備份與還原功能。

android:allowClearUserData

是否允許應用程式重設使用者資料。此資料包括旗標 (例如使用者是否已看過介紹工具提示),以及使用者可自訂的設定和偏好設定。此屬性的預設值為 true

注意:只有屬於系統映像檔的應用程式才能明確宣告這個屬性。第三方應用程式不能在資訊清單檔案中包含這個屬性。

詳情請參閱「還原新裝置上的使用者資料」

android:allowNativeHeapPointerTagging

應用程式是否已啟用堆積指標標記功能。此屬性的預設值為 true

注意:停用這項功能無法解決基礎程式碼的健康情況問題。未來的硬體裝置可能不支援這個資訊清單標記。

詳情請參閱標記指標

android:backupAgent
實作應用程式備份代理程式的類別名稱,為 BackupAgent 的子類別。屬性值應為完整的類別名稱 (例如"com.example.project.MyBackupAgent")。不過,做為縮寫時,如果名稱的第一個字元是句點 (例如 ".MyBackupAgent"),則會附加到在 <manifest> 元素中指定的套件名稱。

沒有預設值。必須指定名稱。

android:backupInForeground
表示即使應用程式處於前景等效狀態,也可以對其執行自動備份作業。系統會在自動備份作業期間關閉應用程式,因此使用此屬性時請小心。將此旗標設為 True,可能會影響應用程式運作期間的行為。

預設值為 false,表示當應用程式在前景執行時 (例如正在透過 startForeground() 狀態下的服務播放音樂的音樂應用程式),作業系統將避免對其進行備份。

android:banner
可繪製的資源,用於為關聯項目提供延伸圖片橫幅。可與 <application> 標記搭配使用,為所有應用程式活動提供預設橫幅,或者與 <activity> 搭配使用,為特定活動提供橫幅。

系統會使用橫幅來代表 Android TV 主畫面上的應用程式。由於橫幅只會顯示在主畫面上,因此只有含有處理 CATEGORY_LEANBACK_LAUNCHER 意圖的活動的應用程式才需要指定。

這個屬性必須設為包含圖片的可繪製資源 (例如 "@drawable/banner")。沒有預設橫幅。

更多資訊請參閱《開始使用電視應用程式》中的提供主螢幕橫幅。

android:dataExtractionRules

應用程式可將此屬性設為 XML 資源,在當中指定規則,以決定您可以在備份或傳輸作業中從裝置複製哪些檔案和目錄。

如需瞭解 XML 檔案的格式,請參閱「備份與還原」文件。

android:debuggable
是否可以對應用程式偵錯 (即使應用程式在處於使用者模式下的裝置上執行)。如果可以,設為為 "true",如果不行,則設為 "false")。預設值為 "false"
android:description
使用者可理解的應用程式文字,比應用程式標籤更長且易懂。此值必須設定為對字串資源的參照。與標籤不同,其不能是原始字串。沒有預設值。
android:enabled
Android 系統是否能對應用程式的元件執行個體化。如果可以,設為 "true",如果不行,則設為 "false"。如果值為 "true",每個元件的 enabled 屬性會決定是否啟用該元件。如果值為 "false",則會覆寫元件專屬值;所有元件都會停用。

預設值為 "true"

android:extractNativeLibs

自 AGP 4.2.0 起,extractNativeLibs 資訊清單屬性已由 DSL 選項 useLegacyPackaging 取代。您應使用應用程式 build.gradle 檔案中的 useLegacyPackaging 設定原生資料庫的壓縮行為,而非使用在資訊清單檔案中的 extractNativeLibs。詳情請參閱版本資訊使用 DSL 封裝壓縮的原生資料庫

此屬性表示套件安裝程式是否要將原生資料庫從 APK 擷取至檔案系統。如果設為 "false",原生資料庫會以未壓縮的形式儲存在 APK 中。雖然您的 APK 可能較大,但應用程式的載入速度應該會更快,因為資料庫是直接在執行階段從 APK 載入。

extractNativeLibs 的預設值取決於 minSdkVersion 和您使用的 AGP 版本。在多數情況下,預設行為可能符合您的期望,因此不需要明確設定此屬性。

android:fullBackupContent
這個屬性指向一個含有自動備份完整備份規則的 XML 檔案。這些規則會決定要備份的檔案。詳情請參閱自動備份的 XML 設定語法」。

此屬性為選用項目。如果未指定,自動備份預設包含大部分的應用程式檔案。詳情請參閱「已備份的檔案」。

android:fullBackupOnly
此屬性表示是否在裝置上使用自動備份功能 (如可用)。如果設為 true,則當應用程式安裝在搭載 Android 6.0 (API 級別 23) 以上版本的裝置上時,就會執行自動備份功能。在較舊的裝置上,應用程式則會忽略此屬性,並執行鍵/值備份

預設值為 "false"

android:gwpAsanMode
此屬性表示是否使用 GWP-ASan;其為一種原生記憶體配置功能,可協助找出釋放後使用及堆疊-緩衝-溢位的錯誤。

預設值為 "never"

android:hasCode
應用程式是否含有任何程式碼。如果有,設為"true",如果沒有,則設為 "false"。值為 "false" 時,系統就不會在啟動元件時嘗試載入任何應用程式程式碼。預設值為 "true"

例如,如果您的應用程式支援 Play Feature Delivery,且包含不會產生任何 DEX 檔案的功能模組 (也就是針對 Android 平台最佳化的位元碼),您就必須在模組的資訊清單檔案中,將這個屬性設為 false。否則,可能會發生執行階段錯誤。

android:hasFragileUserData
使用者解除安裝應用程式時,是否向使用者顯示保留應用程式資料的提示。預設值為 "false"
android:hardwareAccelerated
是否應針對此應用程式中的所有活動和檢視畫面啟用硬體加速轉譯功能。如果應啟用,設為 "true",如果不應啟用,則設為 "false"。如果已將 minSdkVersiontargetSdkVersion 設至 "14" 以上,預設值為 "true",否則值會是 "false"

自 Android 3.0 (API 級別 11) 起,應用程式可使用硬體加速 OpenGL 轉譯器,藉此提高一般 2D 圖形作業的效能。啟用硬體加速轉譯器後,Canvas、Paint、Xfermode、ColorFilter、Shader 和 Camera 中的大部分作業都會加速。因此,當應用程式沒有明確使用架構的 OpenGL 程式庫時,也能讓動畫更流暢、更流暢地捲動,並改善回應靈敏度。

請注意,並非所有 OpenGL 2D 作業都會加速。如果啟用了硬體加速轉譯器,請測試應用程式,確保它能夠順利使用轉譯器。

詳情請參閱硬體加速指南。

android:icon
整個應用程式的圖示,以及每個應用程式元件的預設圖示。請參閱 <activity><activity-alias><service><receiver><provider> 各自的 icon屬性。

這個屬性必須設為包含圖片的可繪製資源 (例如 "@drawable/icon")。沒有預設圖示。

android:isGame
應用程式是否為遊戲。系統可能會將分類為遊戲的應用程式分成一組,或與其他應用程式分開顯示。

預設為 false

android:killAfterRestore
針對有問題的應用程式,是否應在完整系統的還原作業期間還原該應用程式的設定後,將其終止。單一套件還原作業絕不會導致應用程式關閉。完整系統還原操作通常只會在首次設定手機時執行一次。第三方應用程式通常不需要使用這個屬性。

預設值為 true,表示應用程式在完整系統還原作業期間處理完資料後就會終止。

android:largeHeap
是否應使用大型 Dalvik 堆積建立應用程式的處理程序。這適用於為應用程式建立的所有處理程序。其只會套用至第一個載入至處理程序中的應用程式。如果您使用共用的使用者 ID 來允許多個應用程式使用同一處理程序,則這些應用程式必須以一致方式採用此選項,否則會出現無法預測的結果。

大多數的應用程式都不需要此屬性,而應著重在降低整體記憶體用量以提高效能。啟用這個屬性無法保證可用記憶體有固定的增加空間,因為某些裝置會受可用記憶體總量的限制。

如要查詢執行階段的可用記憶體大小,請使用 getMemoryClass()getLargeMemoryClass() 方法。

android:label
使用者可理解的應用程式整體標籤,以及每個應用程式元件的預設標籤。請參閱 <activity><activity-alias><service><receiver><provider> 各自的 label屬性。

標籤應該被設置為對一個字串資源的引用,以便像使用者介面中的其他字串一樣進行語系本地化。不過為了方便起見,您也可以在開發應用程式時將其設為原始字串。

android:logo
整個應用程式的標誌,以及活動的預設標誌。

這個屬性必須設為包含圖片的可繪製資源 (例如 "@drawable/logo")。沒有預設標誌。

android:manageSpaceActivity
活動子類別的完整名稱,系統可啟動該子類別,讓使用者對管理裝置上的應用程式管理佔用的記憶體。也應使用 <activity> 元素宣告該活動。
android:name
為應用程式實作的完整 Application 子類別名稱。應用程式處理程序啟動後,此類別會在應用程式的所有元件之前執行個體化。

該子類別為選用項目,大部分的應用程式都不需要設定。如果沒有子類別,Android 會使用基礎應用程式類別的執行個體。

android:networkSecurityConfig

指定包含您應用程式的網路安全性設定的 XML 檔案名稱。這個值必須是包含設定的 XML 資源檔案的參照。

這項屬性於 API 級別 24 中新增。

android:permission
用戶端要與應用程式互動必須具有的權限名稱。此屬性可讓您輕鬆設定要套用至所有應用程式元件的權限。您可以透過設定個別元件的 permission 屬性將其覆寫。

關於權限的更多資訊,請參閱介紹中的權限部分和另一份安全與權限文件。

android:persistent
應用程式是否應隨時保持執行狀態。如果應該,設為 "true",如果不應該,則設為 "false"。預設值為 "false"。應用程式通常不應設定這個旗標,持續性模式僅適用於特定系統應用程式。
android:process
處理程序的名稱,應用程式的所有元件應在此處理程序中執行。 每個元件都可以透過設定專屬的 process 屬性來覆寫這項預設。

根據預設,Android 會在需執行應用程式的第一個元件時,為應用程式建立處理程序。之後,所有元件都會在該處理程序中執行。處理程序的名稱與 <manifest> 元素設定的套件名稱相符。

透過將這項屬性設定為與其他應用程式共用的處理程序名稱,您即可安排兩個應用程式的元件在相同的處理程序中執行,但前提是這兩個應用程式也必須共用使用者 ID,且使用同樣的憑證簽署。

如果指派給這項屬性的名稱開頭為半形冒號 (「:」),系統會在必要時建立新的應用程式專屬處理程序。如果程序名稱的開頭是小寫字元,則會建立採用該名稱的全域處理程序。全域處理程序可以與其他應用程式共用,以減少資源用量。

android:restoreAnyVersion
表示應用程式已準備好嘗試還原任何備份資料集,即使儲存該備份的應用程式版本比目前安裝在裝置上的應用程式版本更新。將這項屬性設為 true 後,即使版本不符 (表示資料不相容),也會允許備份管理員嘗試進行還原。請小心使用!

此屬性的預設值為 false

android:requestLegacyExternalStorage

應用程式是否停用限定範圍儲存空間

注意:視政策或應用程式相容性的相關變更而定,系統可能不會接受這項停用要求。

android:requiredAccountType
指定應用程式運作所需的帳戶類型。 如果您的應用程式需要 Account,此屬性的值必須對應至應用程式使用的帳戶驗證器類型 (由 AuthenticatorDescription 所定義),例如「com.google」。

預設值為空值,表示應用程式不需任何帳戶就能運作。

由於受限制的設定檔目前無法新增帳戶,因此指定這項屬性後,受限制的設定檔就無法使用您的應用程式,除非你也宣告具有相同值的 android:restrictedAccountType

注意:如果帳戶資料可能揭露個人識別資訊,請務必宣告這個屬性,並將 android:restrictedAccountType 設為空值,讓受限制的設定檔無法使用您的應用程式存取屬於擁有者使用者的個人資訊。

這項屬性於 API 級別 18 中新增。

android:resizeableActivity

指定應用程式是否支援多視窗模式。您可以在 <activity><application> 元素中設定這個屬性。

如果將這個屬性設為 true,使用者就能以分割畫面和任意形式模式啟動活動。如果將屬性設為 false,應用程式就無法在多視窗環境中進行測試或最佳化。系統仍會套用相容模式的多視窗模式活動。將這項屬性設為 True,也無法保證其他視窗模式 (例如子母畫面) 或其他螢幕上不會顯示其他應用程式。因此,設定這個旗標並不能確保應用程式具有專屬資源存取權。

如果您的應用程式指定 24 以上的 API 級別,但未指定這個屬性的值,則屬性值會預設為 true。

如果您的應用程式指定的 API 級別為 31 以上,則這屬性在小螢幕和大型螢幕上的運作方式都不同:

  • 大螢幕 (sw >= 600dp):所有應用程式皆支援多視窗模式。這個屬性可指出應用程式能否調整大小 (不適用於應用程式是否支援多視窗模式)。設為 resizeableActivity="false" 時,應用程式會在必要時處於相容模式,以符合顯示尺寸。
  • 小螢幕 (sw < 600dp):如果 resizeableActivity="true" 以及主要活動的最小寬度與最小高度符合在多視窗需求中,則應用程式支援多視窗模式。如果設為 resizeableActivity="false",無論活動的最小寬度和高度如何,該應用程式不支援多視窗模式,。

注意:裝置製造商可覆寫 API 級別 31 的行為。

這項屬性於 API 級別 24 中新增。

注意:工作的根層級活動值會套用至該工作啟動的所有額外活動。也就是說,如果工作的根層級活動可以調整大小,系統就會將工作中的所有其他活動視為可調整大小。如果根層級活動無法調整大小,工作中的其他活動就無法調整大小。

android:restrictedAccountType
指定這個應用程式需要的帳戶類型,並表示允許受限制的設定檔存取屬於擁有者使用者的這類帳戶。如果您的應用程式需要 Account 且允許受限制的設定檔存取 主要使用者的帳戶,此屬性的值必須對應至所應用程式所使用的帳戶驗證器類型 (由 AuthenticatorDescription 定義),例如「com.google」。

預設值為空值,表示應用程式不需任何帳戶就能運作。

注意:指定此屬性後,受限制的設定檔即可使用您的應用程式與屬於擁有者使用者的帳戶,這樣可能會洩漏個人識別資訊。如果帳戶可能會顯示個人詳細資料,則您不應使用這項屬性,而應改為宣告 android:requiredAccountType 屬性,讓受限制的設定檔無法使用您的應用程式。

這項屬性於 API 級別 18 中新增。

android:supportsRtl
宣告應用程式是否支援從右至左 (RTL) 的版面配置。

如果設為 truetargetSdkVersion 設為 17 以上,系統將啟用並使用多種 RTL API,讓您的應用程式可顯示 RTL 版面配置。如果設為 falsetargetSdkVersion 設為 16 以下,則 RTL API 會遭到忽略或不具有任何影響力,且無論與使用者語言代碼選擇關聯的版面配置方向為何,應用程式都將做出同樣行動 (版面配置一律由左至右)。

此屬性的預設值為 false

這項屬性於 API 級別 17 中新增。

android:taskAffinity
相依性名稱,適用於應用程式中的所有活動,但使用專屬 taskAffinity 屬性設定不同相依性的活動除外。詳情請參閱該屬性。

根據預設,應用程式中的所有活動都具有相同的相依性。該相依性的名稱與 <manifest> 元素設定的套件名稱相同。

android:testOnly
表示此應用程式是否僅供測試。例如,它可能對外公開功能或資料,這樣會導致安全性漏洞引發,但對於測試非常有用。這類 APK 只能透過 adb 安裝,無法發布到 Google Play。

只要按一下「執行」,Android Studio 就會自動新增這個屬性。

android:theme
對樣式資源的參照,用於為應用程式中的所有活動定義預設主題。個別活動可以透過設定專屬的 theme 屬性來覆寫預設值。詳情請參閱樣式和主題開發人員指南。
android:uiOptions
活動 UI 的額外選項。

必須是下列其中一個值。

說明
"none"沒有額外的 UI 選項。此為預設值。
"splitActionBarWhenNarrow"當水平空間受限時 (如在手機的縱向模式下),在畫面底部添加一列,在 應用程式列 (動作列) 中顯示操作項目。應用程式列不再出現在畫面頂端的少量操作項目中,而是分成了頂端的導航部分和底部的操作項目列。這確保了不僅為操作項目,而且為頂端的導航和標題元素提供了合理的空間。選單項目不會分隔成兩個長條。兩者會一同顯示

如要進一步瞭解應用程式列,請參閱新增應用程式列訓練課程。

這項屬性於 API 級別 14 中新增。

android:usesCleartextTraffic
表示應用程式是否打算使用明文網路流量 (例如純文字 HTTP)。 針對以 API 級別 27 以下為目標的應用程式,預設值為 "true"。針對以 API 級別 28 以上為目標的應用程式,則預設為 "false"

屬性設為 "false" 時,平台元件 (例如 HTTP 和 FTP 堆疊、DownloadManagerMediaPlayer) 將會拒絕應用程式使用純文字流量的請求。強烈建議第三方資料庫也要遵循這項設定。要避免純文字流量的主要原因在於其缺乏機密性、真實性以及防範竄改的保護措施。網路攻擊者可以竊聽傳送的資料,還可以不被偵測到的情況下進行修改。

此旗標只能盡可能遵循,因為考慮到提供給 Android 應用程式的存取級別,不可能防止所有純文字流量。比如,Socket API 無法識別流量是否為純文字,因此無法期待它遵循此旗標。不過,來自應用程式的網路流量大多是由較高層級的網路堆疊/元件處理,因此可以透過讀取從 ApplicationInfo.flagsNetworkSecurityPolicy.isCleartextTrafficPermitted() 的讀取來遵循此旗標。

注意: 針對以 API 級別 26 以上的為目標的應用程式,WebView 遵循此屬性。

在應用程式開發期間,StrictMode 可用來識別應用程式中的所有純無字流量。詳情請參閱 StrictMode.VmPolicy.Builder.detectCleartextNetwork()

這項屬性於 API 級別 23 中新增。

如有 Android 網路安全性設定,則 Android 7.0 (API 級別 24) 以上版本將忽略此旗標。

android:vmSafeMode
表示應用程式是否要讓虛擬機器 (VM) 以安全模式運作。預設值為 "false"

這項屬性於 API 級別 8 新增,其中「true」值會停用 Dalvik 即時(JIT) 編譯器。

此屬性在 API 級別 22 版本中進行調整,其中「true」值會停用 ART 預先 (AOT) 編譯器。

導入版本:
API 級別 1
另請參閱:
<activity>
<service>
<receiver>
<provider>