- 語法:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="string" android:sharedUserId="string" android:sharedUserLabel="string resource" android:sharedUserMaxSdkVersion="integer" android:versionCode="integer" android:versionName="string" android:installLocation=["auto" | "internalOnly" | "preferExternal"] > ... </manifest>
- 包含於:
- 無
- 必須包含:
<application>
- 可包含:
<compatible-screens>
<instrumentation>
<permission>
<permission-group>
<permission-tree>
<queries>
<supports-gl-texture>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-permission>
<uses-permission-sdk-23>
<uses-sdk>
- 說明:
AndroidManifest.xml
檔案的根元素。其必須 包含<application>
元素 並指定xmlns:android
和package
屬性- 屬性:
-
xmlns:android
- 定義 Android 命名空間。一律設定此屬性
至
"http://schemas.android.com/apk/res/android"
。 package
- APK 資訊清單檔案內的
package
屬性值代表應用程式的通用唯一應用程式 ID。採用完整的 Java 語言樣式 Android 應用程式的套件名稱。名稱可以包含大寫或小寫英文字母、數字、 和底線 (「_」)。不過,個別套件名稱部分只能以 字母。請注意不要變更
package
值,基本上會這樣 建立新的應用程式舊版應用程式的使用者不會收到更新,無法收到更新 並在新舊版本間轉移資料在以 Gradle 為基礎的建構系統中,從 AGP 7.3 起,請不要設定
package
值。詳情請參閱「設定應用程式 ID」。 android:sharedUserId
-
此常數已於 API 級別 29 淘汰。
共用使用者 ID 在套件管理器中會造成不確定因素的行為。因此,採用 強烈建議您不要使用。我們可能會在日後推出的 Android 版本中移除這項應用程式。而是改用 適當的通訊機制 (例如服務和內容供應者), 共用元件之間的互通性現有應用程式無法移除這個值, 無法停用共用使用者 ID 的遷移作業。在這些應用程式中,將android:sharedUserMaxSdkVersion="32"
,避免使用共用 新使用者安裝時的使用者 ID與其他應用程式共用的 Linux 使用者 ID 名稱。 根據預設,Android 會為每個應用程式指派不會重複的使用者 ID。然而,如果這項屬性為兩個以上的 應用程式就會共用相同的 ID,前提是 憑證集相同擁有相同使用者 ID 的應用程式可存取彼此的資料,如果使用者想在同一個程序中執行這些應用程式也沒問題。
android:targetSandboxVersion
- 此應用程式要使用的目標沙箱。沙箱版本號碼越高,安全性等級就越高。預設值為
1
;您也可以將該值設為2
。 只要將這項屬性設為2
,應用程式就會切換至其他 SELinux 沙箱。以下限制適用於等級 2 沙箱:
- 網路安全性設定中的
usesCleartextTraffic
預設值為否。 - 不允許共用 Uid。
如果 Android 免安裝應用程式指定 Android 8.0 (API 級別 26) 以上版本, 此屬性已設為
2
。您可以在安裝的應用程式版本中設定沙箱層級 限制較少 第1
級。但這樣一來,應用程式就不會將免安裝應用程式中的應用程式資料保存至 已安裝的應用程式版本您必須將安裝版應用程式的沙箱值設為2
,以從免安裝應用程式保存資料至已安裝的版本。應用程式安裝完畢後,只能將目標沙箱更新至更高的值。如要降級目標沙箱值,請解除安裝應用程式 並替換成其資訊清單所含此屬性值較低的版本。
- 網路安全性設定中的
android:sharedUserLabel
-
此常數已於 API 級別 29 淘汰。
共用使用者 ID 在套件管理器中會造成不確定因素的行為。因此,採用 強烈建議您不要使用。我們可能會在日後推出的 Android 版本中移除這項應用程式。而是改用 適當的通訊機制 (例如服務和內容供應者), 共用元件之間的互通性現有應用程式無法移除這個值, 無法停用共用使用者 ID。共用使用者 ID 的使用者的可讀標籤。標籤設定為 對字串資源的參照。不能是原始字串。
這項屬性是在 API 級別 3 中導入。只有同時設定了
sharedUserId
屬性,此屬性才有意義。 android:sharedUserMaxSdkVersion
-
共用使用者 ID 會在套件管理員中造成非確定性的行為。因此,採用 強烈建議您不要使用。我們可能會在日後推出的 Android 版本中移除這項應用程式。而是改用 適當的通訊機制 (例如服務和內容供應者), 共用元件之間的互通性
最高 SDK 版本,而系統仍使用
android:sharedUserId
。如果您最近在裝置上安裝了應用程式,且裝置搭載的 SDK 版本高於指定值,則應用程式會如從未定義過android:sharedUserId
一般運作。這項屬性是在 API 級別 33 中導入。只有同時設定了
sharedUserId
屬性,此屬性才有意義。 android:versionCode
- 內部版本號碼。該號碼只是用來判斷某版本是否比另一個版本更新,即號碼越大,版本越新。這不是使用者看到的版本號碼。
是由
versionName
屬性設定。此值必須設為大於 0 的正整數。您可以用自己想要的方式定義,只要每個後續版本的號碼更高即可。 舉例來說,它可以是版本號碼,或者 「x.y」中的數字格式為整數,方法是將「x」編碼和「y」分別位於 較低及上層 16 位元您也可以將這個數字 1 每次發布新版本時
android:versionName
- 顯示給使用者的版本號碼。此屬性已設為原始
字串或字串資源的參照。字串沒有其他用途
而非向使用者顯示
versionCode
屬性保存了內部使用的重要版本號碼。 android:installLocation
- 應用程式的預設安裝位置。
可接受以下關鍵字字串:
值 說明 "internalOnly"
應用程式只會在內部裝置儲存空間中安裝。如果設定了這個屬性 應用程式絕不會在外部儲存空間 (例如 SD 卡) 中安裝。如果內部 ,系統就不會安裝應用程式。這是預設行為 如果您未定義 android:installLocation
"auto"
應用程式可以安裝在外部儲存空間中,但系統會安裝 安裝在內部儲存空間中如果內部儲存空間已滿,則系統 並在外部儲存空間中安裝安裝完成後,使用者可以透過系統設定將應用程式移至內部或外部儲存空間。 "preferExternal"
應用程式優先安裝在外部儲存空間。由於沒有 即可保證系統遵循這項要求。應用程式可能會安裝在內部 如果外部媒體無法使用或已滿,則會調整儲存空間。安裝完成後,使用者可以透過系統設定將應用程式移至內部或外部儲存空間。 注意:根據預設,應用程式安裝在 無法安裝在外部儲存空間 (除非已定義這項屬性) 改為
"auto"
或"preferExternal"
如果在外部儲存空間中安裝應用程式:
- 已儲存 APK 檔案 但所有應用程式資料 (例如資料庫) 仍會儲存 執行這些步驟
- 儲存 APK 檔案的容器會以金鑰加密,該金鑰可讓 應用程式只會在安裝該應用程式的裝置上運作。使用者無法 將 SD 卡轉移至其他裝置,並使用安裝在卡上的應用程式。 不過,同一部裝置可以同時使用多張 SD 卡。
- 若使用者要求,應用程式可以移至內部儲存空間。
使用者也可以要求將應用程式從內部儲存空間移至外部儲存空間 如果 30 天內讀取資料不到一次 建議使用 Coldline Storage不過,如果遇到下列情況,系統不會允許使用者將應用程式移至外部儲存空間 此屬性已設為
"internalOnly"
,此為預設設定。適用對象 進一步瞭解如何使用這項屬性,包括如何維持回溯相容性 請參閱「應用程式安裝位置」。
導入版本:API 級別 8。
- 導入版本:
- 為所有屬性導入 API 級別 1 (在屬性說明中另行註明者除外)。
- 另請參閱:
-
<application>