<應用程式>

語法:
<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:allowClearUserData=["true" | "false"]
             android:allowCrossUidActivitySwitchFromBelow=["true" | "false"]
             android:allowNativeHeapPointerTagging=["true" | "false"]
             android:appCategory=["accessibility" | "audio" | "game" |
             "image" | "maps" | "news" | "productivity" | "social" | "video"]
             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:isMonitoringTool=["parental_control" | "enterprise_management" |
             "other"]
             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 12 (API 級別 31) 以上版本的應用程式,此行為 不一定。部分裝置製造商提供的裝置不支援裝置對裝置遷移功能 應用程式的檔案

不過,您可以停用應用程式檔案的雲端備份與還原功能, 將這項屬性設為 "false",即使應用程式指定 Android 12 (API 級別 31) 或 更高。

詳情請參閱 備份與還原專區 。 更高。

android:allowClearUserData

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

注意:只有屬於系統映像檔的應用程式才能明確宣告這個屬性。第三方應用程式不得提供這項權限 屬性。

詳情請參閱「資料備份總覽」。

android:allowCrossUidActivitySwitchFromBelow

指定這項工作下方的活動是否也可以啟動其他活動 或是完成工作

自目標 SDK 級別 Build.VERSION_CODES.VANILLA_ICE_CREAM 起,應用程式 使用者可能無法開始新活動或完成工作 (除非是熱門活動) 基於安全考量,這項工作的 UID 都屬於同一個 UID。

將此標記設為 true,可讓啟動的應用程式在下列情況忽略限制: 這個活動顯示在最上方。與這項活動 UID 相符的應用程式一律不受豁免規範。

詳情請參閱「啟動安全背景活動」。

android:allowNativeHeapPointerTagging

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

注意:停用這項功能「無法」解決 基礎程式碼健康狀態問題日後的硬體裝置可能不支援這個資訊清單標記。

詳情請參閱標記指標

android:appCategory

宣告這個應用程式的類別。類別的用途是將多個應用程式 歸入有意義的群組,例如總結電池、網路或 磁碟使用情形請只針對適用下列其中一個參數的應用程式定義這個值 特定類別

必須是下列其中一個常數值。

說明
accessibility主要為無障礙應用程式,例如螢幕閱讀器。
audio主要為與音訊或音樂相關的應用程式,例如音樂播放器。
game主要為遊戲的應用程式。
image主要為與圖片或相片相關的應用程式,例如相機或圖片庫應用程式。
maps主要為地圖應用程式,例如導航應用程式。
news主要為新聞應用程式,例如報紙、雜誌或運動應用程式。
productivity主要為效率提升應用程式,例如雲端儲存空間或工作場所應用程式。
social主要為社交應用程式,例如訊息、通訊、電子郵件或社群網路應用程式。
video主要為與影片或電影相關的應用程式,例如串流影片應用程式。

android:backupAgent
實作應用程式備份代理程式的類別名稱,為 BackupAgent 的子類別。屬性值是 完整的類別名稱,例如 "com.example.project.MyBackupAgent"。 不過為了精簡起見,如果名稱的第一個字元是半形句號 例如 ".MyBackupAgent",會附加至 指定套件名稱的 <manifest> 元素。

這項屬性沒有預設值。名稱不得重複。

android:backupInForeground
表示 自動備份作業 即使應用程式在前景執行,仍可對其執行。 時間。系統會在自動備份作業期間關閉應用程式,因此使用此屬性時請小心。將此標記設為 "true" 可能會影響應用程式 行為。

預設值為 "false",表示 OS 會避免 備份在前景執行的應用程式 (例如音樂應用程式) 主動播放音樂,而且使用 Google Analytics 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 開始,DSL 選項 useLegacyPackaging敬上 取代 extractNativeLibs 資訊清單屬性。 在應用程式的 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
指出應用程式是否包含任何 DEX 程式碼,也就是使用 Kotlin 或 Java 程式設計語言。 "true" 表示包含,"false" 表示不包含。當 值為 "false",則系統不會嘗試載入任何應用程式 編寫程式碼預設值為 "true"

如果應用程式包含原生 (C/C++) 程式碼,但沒有 DEX 程式碼,這應該 設為 "false"。在 APK 狀態設為 "true" 時 未包含 DEX 程式碼,可能會導致應用程式無法載入。

這個屬性必須考量到應用程式中的程式碼, 依附元件如果應用程式依附於採用 Java/Kotlin 程式碼,或直接在 JAR 上,app:hasCode 必須 "true" 的值或省略此預設值。

舉例來說,您的應用程式 Play Feature Delivery 並透過 不會產生任何 DEX 檔案的模組,也就是為 Android 系統進行最佳化的位元碼 平台。如有這種情況,您必須將模組資訊清單中的此屬性設為 "false" 檔案,避免執行階段錯誤。

android:hasFragileUserData
是否要向使用者顯示提示 在使用者解除安裝應用程式時保留應用程式資料。預設值為 "false"
android:hardwareAccelerated
可指定是否為所有廣告客戶啟用硬體加速轉譯功能 活動和檢視。"true" 表示含有 設為啟用,"false"則表示未啟用。如果您設定了這個值,則預設值為 "true"minSdkVersiontargetSdkVersion"14" 以上版本。否則為 "false"

從 Android 3.0 (API 級別 11) 開始,硬體加速的 OpenGL 轉譯器是 改善許多常見 2D 圖形的效能。 作業。啟用硬體加速轉譯器時,大部分的作業 在 Canvas、Pint、Xfermode、ColorFilter、Shader 和 Camera 中都會加速。

使動畫更流暢、捲動畫面更順暢,以及提升效能 整體回應速度,即使是未明確運用 架構的 OpenGL 程式庫

並非所有 OpenGL 2D 運算都會加速。如果啟用 請在硬體加速轉譯器中測試應用程式 順利使用轉譯器

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

android:icon
整體應用程式的圖示,以及 每個應用程式元件查看個別 的 icon 屬性 <activity>, <activity-alias>, <service>, <receiver><provider> 元素。

這項屬性會設為含有以下可繪製資源的參照: 映像檔,例如 "@drawable/icon"沒有預設圖示。

android:isGame
指出應用程式是否為遊戲。系統可能會將分類的應用程式 或與其他應用程式分開顯示預設為 "false"
,瞭解如何調查及移除這項存取權。
android:isMonitoringTool

表示此應用程式的設計宗旨為監控其他人。

注意: 如果應用程式在資訊清單中宣告這個屬性,開發人員就必須 跟著 追蹤軟體 在 Google Play 發布應用程式時須遵守的政策。

沒有預設值。開發人員必須指定下列其中一個值:

說明
"parental_control"應用程式 專門提供家長監護,專為想確保兒童的家長打造 安全。
"enterprise_management"應用程式 供企業管理及追蹤分配給員工的裝置。
"other"應用程式的設計理念 未在此表中註明。
android:killAfterRestore

是否在 也會在完整系統還原作業期間還原設定。 單一套件還原作業絕不會導致應用程式 並關機。完整系統還原作業通常只會執行一次, 首次設定手機時觸發。第三方應用程式通常不會 就需要使用這項屬性

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

android:largeHeap

是否使用大型 Dalvik 堆積建立應用程式的程序。這適用於為應用程式建立的所有處理程序。此屬性只適用於載入至 上傳資料集之後,您可以運用 AutoML 自動完成部分資料準備工作如果您使用共用的使用者 ID 讓多個應用程式共用同一個程序, 必須一致使用這個選項,以避免無法預測的結果。

大多數應用程式不需要使用這項屬性,而是著重於減少整體記憶體用量, 效能也將有所提升啟用此功能也無法保證可用記憶體會固定增加。 因為某些裝置會受到可用記憶體總量限制

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

android:label
使用者可理解的整體應用程式標籤和預設值 各個應用程式元件的標籤查看個別 的 label 屬性 <activity>, <activity-alias>, <service>, <receiver><provider> 元素。

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

android:logo
整體應用程式的標誌,以及活動的預設標誌。 這項屬性會設為含有以下可繪製資源的參照: 映像檔,例如 "@drawable/logo"本裝置沒有預設標誌。
android:manageSpaceActivity
系統的 Activity 子類別完整名稱 啟動,讓使用者管理應用程式佔用的記憶體 應用程式。該活動也會使用 <activity> 元素。
android:name
為應用程式實作的完整 Application 子類別名稱。應用程式處理程序啟動後,此類別會在應用程式的所有元件之前執行個體化。

子類別為選用項目,大多數應用程式都不需要。 如果沒有子類別,Android 會使用基礎的例項 Application 類別。

android:networkSecurityConfig

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

這是在 API 級別 24 中新增的屬性。

android:permission
用戶端互動所需的權限名稱 。這項屬性方便您 適用於應用程式所有元件的權限。是 方法是設定個別的 permission 屬性 元件。

如要進一步瞭解權限,請參閱應用程式資訊清單總覽中的「權限」一節和「安全性提示」。

android:persistent
指出應用程式是否隨時保持運作。是 "true" 表示包含,"false" 表示不包含。預設值為 "false"。應用程式通常不會設定這個標記。 持續性模式僅適用於特定系統應用程式。
android:process
處理程序的名稱,應用程式的所有元件皆在此處理程序中執行。 每個元件都可以透過設定專屬的 process 屬性來覆寫這項預設。

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

只要將這個屬性設為與其他程序共用的程序名稱即可 您可以安排兩個應用程式的元件執行 相同的程序,但前提是這兩個應用程式也共用一個 並使用相同的憑證簽署。

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

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",也不保證廣告 其他位於多視窗模式的應用程式 (例如子母畫面),或是 在其他螢幕上播放因此,設定此標記不代表您的應用程式 擁有專屬資源存取權

如果應用程式指定的 API 級別為 24 以上,則預設值為 "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) 的版面配置。

如果設為 "true"targetSdkVersion 設為 17 以上,多種 RTL API 以便讓應用程式顯示 RTL 版面配置。 如果設為 "false",或將 targetSdkVersion 設為 16 以下,系統會忽略 RTL API。 或沒有效果,而且無論版面配置為何,應用程式的行為都相同 與使用者所選語言代碼相關聯的方向。也就是說,您的版面配置一律是由左至右。

此屬性的預設值為 "false"

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

android:taskAffinity
表示相依性名稱,適用於應用程式中的所有活動。 除非目標對象的興趣相似目標對象 taskAffinity 屬性。詳情請參閱該屬性。

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

android:testOnly
表示此應用程式是否僅供測試。例如: 因此可能會對外公開功能或資料,造成安全性 但對於測試相當實用這類 APK 只會安裝 至 adb。無法發布至 Google Play。

只要按一下「Run」,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>