<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. Harus berisi elemen <application> dan 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. Formatnya menggunakan gaya bahasa Java lengkap untuk aplikasi Android. Nama dapat berisi huruf besar atau kecil, angka, dan garis bawah ('_'). Namun, bagian nama paket individual hanya dapat dimulai dengan huruf besar.

Berhati-hatilah agar tidak mengubah nilai package, karena pada dasarnya membuat aplikasi baru. Pengguna aplikasi versi sebelumnya tidak menerima update dan tidak dapat mentransfer data mereka 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 level API 29.
ID pengguna bersama menyebabkan perilaku nondeterministik dalam pengelola paket. Dengan demikian, mereka digunakan sangat tidak disarankan dan mungkin akan dihapus dalam versi Android mendatang. Sebagai gantinya, gunakan mekanisme komunikasi yang tepat, seperti layanan dan penyedia konten, untuk memfasilitasi interoperabilitas antara komponen bersama. Aplikasi yang ada tidak dapat menghapus nilai ini karena migrasi dari ID pengguna bersama tidak didukung. Di aplikasi ini, tambahkan android:sharedUserMaxSdkVersion="32" untuk menghindari penggunaan ID pengguna terkait penginstalan oleh 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 atau lebih aplikasi tersebut, semuanya memiliki ID yang sama, asalkan kumpulan sertifikat adalah 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 mengatur tingkat sandbox di versi aplikasi yang diinstal ke batasan yang tidak terlalu longgar tingkat 1. Tetapi jika Anda melakukannya, aplikasi tidak akan mempertahankan data aplikasi dari aplikasi instan ke versi yang diinstal dari aplikasi Anda. 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 menggantinya dengan versi yang manifesnya berisi nilai yang lebih rendah untuk atribut ini.

android:sharedUserLabel

Konstanta ini tidak digunakan lagi mulai level API 29.
ID pengguna bersama menyebabkan perilaku nondeterministik dalam pengelola paket. Dengan demikian, mereka digunakan sangat tidak disarankan dan mungkin akan dihapus dalam versi Android mendatang. Sebagai gantinya, gunakan mekanisme komunikasi yang tepat, seperti layanan dan penyedia konten, untuk memfasilitasi interoperabilitas antara komponen bersama. Aplikasi yang ada tidak dapat menghapus nilai ini karena migrasi dari ID pengguna bersama tidak didukung.

Label yang dapat dibaca pengguna untuk ID pengguna bersama. Label diatur 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. Dengan demikian, mereka digunakan sangat tidak disarankan dan mungkin akan dihapus dalam versi Android mendatang. Sebagai gantinya, gunakan mekanisme komunikasi yang tepat, seperti layanan dan penyedia konten, untuk memfasilitasi interoperabilitas antara komponen bersama.

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

Atribut ini diperkenalkan pada 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 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, dapat berupa nomor build, atau Anda dapat menerjemahkan versi angka dalam "x.y" format ke bilangan bulat dengan mengkodekan "x" dan "y" secara terpisah dalam 16 bit bawah dan atas. Atau, Anda dapat menambah jumlahnya satu setiap kali versi baru dirilis.

android:versionName
Nomor versi yang ditampilkan kepada pengguna. Atribut ini disetel sebagai mentah string atau sebagai referensi ke resource string. String ini tidak memiliki tujuan lain yang 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 diatur, aplikasi tidak pernah diinstal di penyimpanan eksternal, seperti kartu SD. Jika kode ruang penyimpanan penuh, maka sistem tidak menginstal aplikasi. Ini merupakan perilaku default jika Anda tidak menentukan android:installLocation.
"auto" Aplikasi dapat diinstal pada penyimpanan eksternal, tetapi sistem menginstal aplikasi di penyimpanan internal secara default. Jika penyimpanan internal penuh, maka sistem menginstalnya di penyimpanan eksternal. Setelah diinstal, pengguna dapat memindahkan aplikasi ke penyimpanan internal atau eksternal melalui setelan sistem.
"preferExternal" Aplikasi ini lebih memilih untuk diinstal di penyimpanan eksternal. Tidak ada menjamin bahwa sistem memenuhi permintaan ini. Aplikasi mungkin diinstal di penyimpanan 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 menginstal di penyimpanan eksternal kecuali jika Anda menentukan atribut ini menjadi "auto" atau "preferExternal".

Saat aplikasi diinstal di penyimpanan eksternal:

  • File APK disimpan ke penyimpanan eksternal, tetapi data aplikasi apa pun, seperti {i>database<i}, masih menghemat di memori perangkat internal.
  • Penampung tempat file APK disimpan dienkripsi dengan kunci yang memungkinkan aplikasi hanya beroperasi pada perangkat yang menginstalnya. Pengguna tidak bisa mentransfer kartu SD ke perangkat lain dan menggunakan aplikasi yang diinstal di kartu. 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 eksternal Storage. Namun, sistem tidak mengizinkan pengguna memindahkan aplikasi ke penyimpanan eksternal jika atribut ini ditetapkan ke "internalOnly", yang merupakan setelan default.

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

Diperkenalkan di: level API 8.

diperkenalkan di:
API level 1 untuk semua atribut, kecuali jika dinyatakan lain dalam deskripsi atribut.

lihat juga:
<application>