- sintaksis:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="string" android:sharedUserId="string" android:sharedUserLabel="string resource" 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 utama file AndroidManifest.xml. File ini
harus berisi satu elemen
<application>
serta menentukan atributxmlns:android
danpackage
. - atribut:
-
xmlns:android
- Menentukan namespace Android. Atribut ini harus selalu diatur
ke "
http://schemas.android.com/apk/res/android
". package
- Nama lengkap paket dengan gaya bahasa Java untuk aplikasi Android. Nama ini boleh berisi huruf besar atau
kecil ('A' sampai 'Z'), angka, dan garis bawah ('_'). Namun, beberapa
bagian nama paket individual hanya boleh diawali dengan huruf.
Saat Anda mem-build aplikasi menjadi paket aplikasi (APK), sistem build akan menggunakan atribut
package
untuk dua hal:- Menerapkan nama ini sebagai namespace untuk class
R.java
yang dibuat aplikasi Anda (digunakan untuk mengakses resource aplikasi).Contohnya, jika
package
diatur ke"com.example.myapp"
, classR
akan dibuat padacom.example.myapp.R
. - Menggunakan nama ini untuk menyelesaikan setiap nama class relatif yang dideklarasikan dalam file manifes.
Contohnya, jika
package
diatur ke"com.example.myapp"
, aktivitas yang dideklarasikan sebagai<activity android:name=".MainActivity">
akan diselesaikan menjadicom.example.myapp.MainActivity
.
Nama ini juga merupakan nama default untuk proses aplikasi Anda (lihat atribut
process
milik elemen<application>
). Selain itu, nama ini juga merupakan afinitas tugas default untuk aktivitas Anda (lihat atributtaskAffinity
milik elemen<activity>
).Nama ini juga merepresentasikan ID aplikasi, yang harus unik secara universal untuk memublikasikan aplikasi Anda di Google Play. Namun, mendekati akhir proses build, alat build akan mengganti nama
package
menggunakan propertiapplicationId
dari filebuild.gradle
(digunakan oleh project Android Studio). Asalkan Anda tetap menyamakan namapackage
manifes denganapplicationId
file build, hal ini tidak akan menjadi masalah. Namun, jika kedua nilai ini berbeda, Anda harus memahami perbedaan antara “nama paket” dan “ID aplikasi” dengan membaca cara mengatur ID aplikasi.Untuk menghindari konflik dengan developer lain, gunakan kepemilikan domain Internet sebagai dasar untuk nama paket Anda (secara terbalik). Contohnya, aplikasi yang dipublikasikan oleh Google dimulai dengan
com.google
.Catatan: Namespace
com.example
dancom.android
tidak diizinkan oleh Google Play.Setelah memublikasikan aplikasi, Anda dapat mengubah nama paket jika diperlukan , tetapi nama
applicationId
harus tetap sama .applicationId
menentukan identitas unik untuk aplikasi Anda di Google Play. Jadi, jika Anda mengubahnya , aplikasi baru akan dianggap sebagai aplikasi lain dan pengguna versi sebelumnya tidak akan menerima update. Untuk mengetahui informasi selengkapnya, lihat cara menetapkan ID aplikasi. - Menerapkan nama ini sebagai namespace untuk class
android:sharedUserId
-
Konstanta ini tidak lagi digunakan pada 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, aplikasi harus menggunakan mekanisme komunikasi yang tepat, seperti penyedia konten dan layanan, untuk memudahkan interoperabilitas antar-komponen bersama. Perlu diperhatikan bahwa aplikasi yang ada tidak dapat menghapus nilai ini, karena memigrasikan ID pengguna bersama tidak didukung. Aplikasi ini harus menambahkanandroid:sharedUserMaxSdkVersion="32"
untuk menghindari penggunaan ID pengguna bersama pada penginstalan pengguna baru.Nama ID pengguna Linux yang akan dibagikan ke aplikasi lain. Secara default, Android akan menetapkan ID pengguna unik tersendiri bagi setiap aplikasinya. Namun, jika atribut ini diatur 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 ke2
. Mengatur atribut ini ke2
akan mengalihkan aplikasi ke sandbox SELinux yang berbeda.Batasan berikut berlaku untuk sandbox tingkat 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 harus diatur ke 2. Anda dapat mengatur tingkat sandbox dalam versi aplikasi yang terinstal ke tingkat 1 yang lebih longgar, tetapi jika Anda melakukannya, aplikasi tidak akan mempertahankan data aplikasi dari aplikasi instan tersebut ke versi aplikasi yang terinstal. Anda harus mengatur nilai sandbox aplikasi yang terinstal ke 2 agar data tetap dipertahankan dari aplikasi instan ke versi yang terinstal.
Setelah aplikasi terinstal, Anda hanya dapat memperbarui nilai sandbox targetnya ke nilai yang lebih tinggi. Untuk men-downgrade nilai sandbox target, Anda harus meng-uninstal aplikasi dan menggantinya dengan versi yang manifesnya berisi nilai yang lebih rendah untuk atribut ini.
- Nilai default
android:sharedUserLabel
-
Konstanta ini tidak lagi digunakan pada 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, aplikasi harus menggunakan mekanisme komunikasi yang tepat, seperti penyedia konten dan layanan, untuk memudahkan interoperabilitas antar-komponen bersama. Perlu diperhatikan bahwa 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 ini harus diatur sebagai referensi ke resource string; label tidak boleh berupa string mentah.
Atribut ini diperkenalkan pada API Level 3. 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 versi ini bukanlah nomor yang ditampilkan kepada pengguna; nomor ini
ditetapkan oleh atribut
versionName
.Nilai harus 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 dapat diatur sebagai string
mentah atau sebagai referensi ke suatu 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 harus diinstal di penyimpanan perangkat internal saja. Jika hal ini ditetapkan, aplikasi tidak akan diinstal di penyimpanan eksternal. Jika penyimpanan internal penuh, sistem tidak akan menginstal aplikasi. Perilaku ini juga merupakan default jika Anda tidak menentukan android:installLocation
." auto
"Aplikasi dapat diinstal di penyimpanan eksternal, tetapi sistem akan menginstalnya 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 (kartu SD). 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 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 yang menjadi 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.) Meskipun demikian, 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 akan mengizinkan pengguna memindahkan aplikasi ke penyimpanan eksternal jika atribut ini diatur ke
internalOnly
, yang merupakan setelan default.Baca Lokasi Penginstalan Aplikasi untuk mengetahui informasi selengkapnya tentang penggunaan atribut ini (termasuk cara mengelola kompatibilitas mundur).
Diperkenalkan di: API Level 8.
- File
- diperkenalkan di:
- API Level 1 untuk semua atribut, kecuali dinyatakan lain dalam deskripsi atribut.
- lihat juga:
-
<application>