<manifes>

sintaksis:
<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>
terdapat dalam:
tidak ada
harus berisi:
<application>
dapat berisi:
<attribution>
<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>
deskripsi:
Elemen root file AndroidManifest.xml. File ini harus berisi satu elemen <application> serta menentukan atribut xmlns:android dan package.
atribut:
xmlns:android
Menentukan namespace Android. Atribut ini selalu ditetapkan ke "http://schemas.android.com/apk/res/android".
package
Nilai atribut package dalam file manifes APK mewakili ID aplikasi unik universal milik aplikasi Anda. Format ini diformat sebagai nama paket lengkap bergaya bahasa Java untuk aplikasi Android. Nama dapat berisi huruf besar atau kecil, angka, dan garis bawah ('_'). Namun, beberapa bagian nama paket individual hanya boleh diawali dengan huruf.

Berhati-hatilah agar tidak mengubah nilai package, karena pada dasarnya membuat aplikasi baru. Pengguna versi aplikasi Anda yang sebelumnya tidak akan menerima update dan tidak dapat mentransfer datanya antara versi lama dan baru.

Dalam sistem build berbasis Gradle, mulai dari AGP 7.3, jangan tetapkan nilai package dalam file manifes sumber secara langsung. Untuk mengetahui informasi selengkapnya, lihat Menetapkan ID aplikasi.

android:sharedUserId

Konstanta ini tidak digunakan lagi mulai API level 29.
ID pengguna bersama menyebabkan perilaku nondeterministik dalam pengelola paket. Karena itu, penggunaannya sangat tidak disarankan dan mungkin akan dihapus dalam versi Android berikutnya. Sebagai gantinya, gunakan mekanisme komunikasi yang tepat, seperti penyedia konten dan layanan, untuk memfasilitasi interoperabilitas antar-komponen bersama. Aplikasi yang ada tidak dapat menghapus nilai ini, karena memigrasikan ID pengguna bersama tidak didukung. Di aplikasi ini, tambahkan android:sharedUserMaxSdkVersion="32" untuk menghindari penggunaan ID pengguna bersama pada penginstalan pengguna baru.

Nama ID pengguna Linux yang dibagikan ke aplikasi lain. Secara default, Android akan menetapkan ID pengguna unik tersendiri bagi setiap aplikasinya. Namun, jika atribut ini ditetapkan ke nilai yang sama untuk dua aplikasi atau lebih, semuanya akan memiliki ID yang sama, dengan ketentuan bahwa rangkaian sertifikatnya juga sama. Aplikasi dengan ID pengguna yang sama dapat mengakses data satu sama lain, dan jika diinginkan, berjalan dalam proses yang sama.

android:targetSandboxVersion
Sandbox target yang perlu digunakan oleh aplikasi ini. Semakin tinggi nomor versi sandbox, semakin tinggi juga tingkat keamanannya. Nilai default-nya adalah 1; Anda juga dapat mengaturnya ke 2. Mengatur atribut ini ke 2 akan mengalihkan aplikasi ke sandbox SELinux yang berbeda.

Batasan berikut berlaku untuk sandbox level 2:

  • Nilai default usesCleartextTraffic dalam Network Security Config adalah false.
  • Anda tidak diizinkan untuk berbagi UID.

Untuk Aplikasi Instan Android yang menargetkan Android 8.0 (API level 26) atau lebih tinggi, atribut ini ditetapkan ke 2. Anda dapat menetapkan tingkat sandbox dalam versi aplikasi yang diinstal ke tingkat 1 yang tidak terlalu ketat. Namun, jika Anda melakukannya, aplikasi Anda tidak akan mempertahankan data aplikasi dari aplikasi instan ke versi aplikasi yang diinstal. Anda harus menetapkan nilai sandbox aplikasi yang diinstal ke 2 agar data tetap ada dari aplikasi instan ke versi yang diinstal.

Setelah aplikasi terinstal, Anda hanya dapat memperbarui nilai sandbox targetnya ke nilai yang lebih tinggi. Untuk men-downgrade nilai sandbox target, uninstal aplikasi dan ganti dengan versi yang manifesnya berisi nilai yang lebih rendah untuk atribut ini.

android:sharedUserLabel

Konstanta ini tidak digunakan lagi mulai API level 29.
ID pengguna bersama menyebabkan perilaku nondeterministik dalam pengelola paket. Karena itu, penggunaannya sangat tidak disarankan dan mungkin akan dihapus dalam versi Android berikutnya. Sebagai gantinya, gunakan mekanisme komunikasi yang tepat, seperti penyedia konten dan layanan, untuk memfasilitasi interoperabilitas antar-komponen bersama. Aplikasi yang ada tidak dapat menghapus nilai ini, karena memigrasikan ID pengguna bersama tidak didukung.

Label yang dapat dibaca pengguna untuk ID pengguna bersama. Label ditetapkan sebagai referensi ke resource string. Atribut ini tidak boleh berupa string mentah.

Atribut ini diperkenalkan di API level 3. Label ini hanya berguna jika atribut sharedUserId juga ditetapkan.

android:sharedUserMaxSdkVersion

ID pengguna bersama menyebabkan perilaku nondeterministik dalam pengelola paket. Karena itu, penggunaannya sangat tidak disarankan dan mungkin akan dihapus dalam versi Android berikutnya. Sebagai gantinya, gunakan mekanisme komunikasi yang tepat, seperti penyedia konten dan layanan, untuk memfasilitasi interoperabilitas antar-komponen bersama.

Versi SDK maksimum tempat sistem masih menggunakan android:sharedUserId. Jika aplikasi Anda baru diinstal di perangkat yang menjalankan versi SDK yang lebih tinggi dari nilai yang ditentukan, aplikasi akan berperilaku seolah-olah Anda tidak pernah menentukan android:sharedUserId.

Atribut ini diperkenalkan di API level 33. Label ini hanya berguna jika atribut sharedUserId juga ditetapkan.

android:versionCode
Nomor versi internal. Nomor ini hanya digunakan untuk menentukan apakah suatu versi lebih baru daripada versi lainnya; dengan nomor yang lebih tinggi menunjukkan versi yang lebih baru. Nomor ini bukanlah nomor versi yang ditampilkan kepada pengguna, yang ditetapkan oleh atribut versionName.

Nilai ditetapkan sebagai bilangan bulat positif yang lebih besar dari 0. Anda dapat menentukannya sesuai keinginan, asalkan setiap versi setelahnya memiliki nomor yang lebih tinggi. Misalnya, nomor ini dapat berupa nomor build, atau Anda dapat mengubah nomor versi dalam format "x.y" menjadi bilangan bulat dengan mengenkode "x" dan "y" secara terpisah dalam 16 bit yang lebih rendah dan lebih tinggi. Selain itu, Anda juga dapat menaikkan nomor ini satu per satu setiap kali versi baru dirilis.

android:versionName
Nomor versi yang ditampilkan kepada pengguna. Atribut ini ditetapkan sebagai string mentah atau sebagai referensi ke resource string. String ini tidak memiliki tujuan selain untuk ditampilkan kepada pengguna. Atribut versionCode berisi nomor versi signifikan yang digunakan secara internal.
android:installLocation
Lokasi penginstalan default untuk aplikasi. String kata kunci berikut diterima:
Nilai Deskripsi
"internalOnly" Aplikasi hanya diinstal di penyimpanan perangkat internal. Jika hal ini ditetapkan, aplikasi tidak akan pernah diinstal di penyimpanan eksternal, seperti kartu SD. Jika penyimpanan internal penuh, sistem tidak akan menginstal aplikasi. Ini adalah perilaku default jika Anda tidak menentukan android:installLocation.
"auto" Aplikasi dapat diinstal di penyimpanan eksternal, tetapi sistem menginstal aplikasi di penyimpanan internal secara default. Jika penyimpanan internal penuh, sistem akan menginstalnya di penyimpanan eksternal. Setelah diinstal, pengguna dapat memindahkan aplikasi ke penyimpanan internal atau eksternal melalui setelan sistem.
"preferExternal" Aplikasi lebih memilih untuk diinstal di penyimpanan eksternal. Tidak ada jaminan bahwa sistem akan memenuhi permintaan ini. Aplikasi mungkin diinstal di penyimpanan internal jika media eksternal tidak tersedia atau penuh. Setelah diinstal, pengguna dapat memindahkan aplikasi ke penyimpanan internal atau eksternal melalui setelan sistem.

Catatan: Secara default, aplikasi diinstal di penyimpanan internal dan tidak dapat diinstal di penyimpanan eksternal kecuali Anda menetapkan atribut ini menjadi "auto" atau "preferExternal".

Saat aplikasi diinstal di penyimpanan eksternal:

  • File APK disimpan ke penyimpanan eksternal, tetapi data aplikasi apa pun, seperti database, masih disimpan di memori perangkat internal.
  • Penampung tempat file APK disimpan dienkripsi dengan kunci yang memungkinkan aplikasi beroperasi hanya di perangkat tempatnya diinstal. Pengguna tidak dapat mentransfer kartu SD ke perangkat lain lalu menggunakan aplikasi yang terinstal di kartu tersebut. Beberapa kartu SD dapat digunakan dengan perangkat yang sama.
  • Atas permintaan pengguna, aplikasi dapat dipindahkan ke penyimpanan internal.

Pengguna juga dapat meminta untuk memindahkan aplikasi dari penyimpanan internal ke penyimpanan eksternal. Namun, sistem tidak mengizinkan pengguna memindahkan aplikasi ke penyimpanan eksternal jika atribut ini ditetapkan ke "internalOnly", yang merupakan setelan default.

Untuk informasi selengkapnya tentang penggunaan atribut ini, termasuk cara mempertahankan kompatibilitas mundur, lihat Lokasi penginstalan aplikasi.

Diperkenalkan di: API level 8.

diperkenalkan di:
API level 1 untuk semua atribut, kecuali dinyatakan lain dalam deskripsi atribut.
lihat juga:
<application>