<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:
<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. Ini diformat sebagai nama paket lengkap bergaya bahasa Java untuk aplikasi Android. Nama dapat berisi huruf besar atau kecil, angka, dan garis bawah ('_'). Namun, setiap bagian nama paket individual hanya dapat diawali dengan huruf.

Berhati-hatilah agar tidak mengubah nilai package, karena tindakan ini pada dasarnya akan membuat aplikasi baru. Pengguna versi aplikasi Anda yang sebelumnya tidak akan menerima update dan tidak dapat mentransfer data mereka antara versi lama dan versi 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 mendatang. Sebagai gantinya, gunakan mekanisme komunikasi yang tepat, seperti penyedia konten dan layanan, untuk memudahkan interoperabilitas antar-komponen bersama. Aplikasi yang sudah ada tidak dapat menghapus nilai ini karena memigrasikan ID pengguna bersama tidak didukung. Dalam 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 disetel ke nilai yang sama untuk dua aplikasi atau lebih, semuanya akan memiliki ID yang sama, asalkan kumpulan sertifikatnya identik. 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.
  • Berbagi UID tidak diizinkan.

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

Setelah aplikasi terinstal, Anda hanya dapat memperbarui nilai sandbox targetnya ke nilai yang lebih tinggi. Untuk mendowngrade 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 mendatang. Sebagai gantinya, gunakan mekanisme komunikasi yang tepat, seperti penyedia konten dan layanan, untuk memudahkan interoperabilitas antar-komponen bersama. Aplikasi yang sudah 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. 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 mendatang. Sebagai gantinya, gunakan mekanisme komunikasi yang tepat, seperti penyedia konten dan layanan, untuk memudahkan 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. Ini bukan nomor versi yang ditunjukkan 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 menerjemahkan nomor versi dalam format "x.y" menjadi bilangan bulat dengan mengenkode "x" dan "y" secara terpisah dalam 16 bit bawah dan atas. Atau, Anda dapat menaikkan nomor 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 setelan ini disetel, aplikasi tidak akan dapat diinstal pada 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 akan 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 akan diinstal di penyimpanan internal dan tidak dapat diinstal di penyimpanan eksternal kecuali jika Anda menetapkan atribut ini sebagai "auto" atau "preferExternal".

Saat aplikasi diinstal di penyimpanan eksternal:

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

Pengguna mungkin juga 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 mengetahui 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 jika dinyatakan lain dalam deskripsi atribut.

lihat juga:
<application>