<manifest>

söz dizimi:
<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>

şunları içerir:
yok

Aşağıdakileri içermelidir:
<application>
aşağıdakileri içerebilir:
<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>

description:
AndroidManifest.xml dosyasının kök öğesi. Bir <application> öğesi içermeli ve xmlns:android ile package özelliklerini belirtmelidir.
özellikler:
xmlns:android
Android ad alanını tanımlar. Bu özellik her zaman "http://schemas.android.com/apk/res/android" olarak ayarlanır.
package
APK'nın manifest dosyasındaki package özelliğinin değeri, uygulamanızın evrensel olarak benzersiz uygulama kimliğini temsil eder. Android uygulaması için tam Java dili stili paket adı olarak biçimlendirilir. Ad büyük veya küçük harf, sayı ve alt çizgi ("_") içerebilir. Bununla birlikte, tek tek paket adı bölümleri yalnızca harfle başlayabilir.

package değerini değiştirmemeye dikkat edin. Bu, temelde yeni bir uygulama oluşturur. Uygulamanızın önceki sürümünün kullanıcıları güncelleme almaz ve verilerini eski ve yeni sürümler arasında aktaramazlar.

Gradle tabanlı derleme sisteminde, AGP 7.3'ten başlayarak doğrudan kaynak manifest dosyasında package değerini ayarlamayın. Daha fazla bilgi için Uygulama kimliğini ayarlama bölümüne bakın.

android:sharedUserId

Bu sabit değer, API düzeyi 29 itibarıyla kullanımdan kaldırılmıştır.
Paylaşılan kullanıcı kimlikleri, paket yöneticisinde belirleyici olmayan davranışa neden olur. Bu nedenle, bunların kullanımı kesinlikle önerilmez ve Android'in gelecekteki bir sürümünde kaldırılabilir. Bunun yerine, paylaşılan bileşenlerin birlikte çalışabilmesi için hizmetler ve içerik sağlayıcılar gibi doğru iletişim mekanizmalarını kullanın. Paylaşılan kullanıcı kimliğinin taşınması desteklenmediğinden mevcut uygulamalar bu değeri kaldıramaz. Bu uygulamalarda, yeni kullanıcı yüklemelerinde paylaşılan kullanıcı kimliği kullanmamak için android:sharedUserMaxSdkVersion="32" ekleyin.

Diğer uygulamalarla paylaşılan Linux kullanıcı kimliğinin adı. Android varsayılan olarak her uygulamaya kendi benzersiz kullanıcı kimliğini atar. Ancak bu özellik iki veya daha fazla uygulama için aynı değere ayarlanırsa sertifika gruplarının aynı olması şartıyla hepsi aynı kimliği paylaşır. Aynı kullanıcı kimliğine sahip uygulamalar birbirlerinin verilerine erişebilir ve istenirse aynı işlemde çalışabilir.

android:targetSandboxVersion
Bu uygulamanın kullanacağı hedef korumalı alan. Korumalı alan sürüm numarası ne kadar yüksek olursa güvenlik düzeyi de o kadar yüksek olur. Varsayılan değeri 1, ancak 2 olarak da ayarlayabilirsiniz. Bu özelliğin 2 değerine ayarlanması, uygulamayı farklı bir SELinux korumalı alanına geçirir.

2. düzey korumalı alan için aşağıdaki kısıtlamalar geçerlidir:

  • Network Security Config'deki varsayılan usesCleartextTraffic değeri "false"tur.
  • Kullanıcı kimliği paylaşımına izin verilmez.

Android 8.0 (API düzeyi 26) veya sonraki sürümleri hedefleyen Android Hazır Uygulamalar için bu özellik 2 olarak ayarlanır. Uygulamanızın yüklü sürümünde korumalı alan seviyesini daha az kısıtlayıcı olan 1 seviyesine ayarlayabilirsiniz. Ancak bunu yaparsanız uygulamanız, uygulama verilerini hazır uygulamadan yüklü sürümüne geçirmez. Verilerin hazır uygulamadan yüklü sürüme kadar kalması için yüklü uygulamanın korumalı alan değerini 2 olarak ayarlamanız gerekir.

Bir uygulama yüklendikten sonra hedef korumalı alan değerini yalnızca daha yüksek bir değere güncelleyebilirsiniz. Hedef korumalı alan değerini eski sürüme geçirmek için uygulamayı kaldırın ve manifest dosyası bu özellik için daha düşük değer içeren bir sürümle değiştirin.

android:sharedUserLabel

Bu sabit değer, API düzeyi 29 itibarıyla kullanımdan kaldırılmıştır.
Paylaşılan kullanıcı kimlikleri, paket yöneticisinde belirleyici olmayan davranışa neden olur. Bu nedenle, bunların kullanımı kesinlikle önerilmez ve Android'in gelecekteki bir sürümünde kaldırılabilir. Bunun yerine, paylaşılan bileşenlerin birlikte çalışabilmesi için hizmetler ve içerik sağlayıcılar gibi doğru iletişim mekanizmalarını kullanın. Paylaşılan kullanıcı kimliğinin taşınması desteklenmediğinden mevcut uygulamalar bu değeri kaldıramaz.

Paylaşılan kullanıcı kimliği için kullanıcı tarafından okunabilir bir etiket. Etiket, bir dize kaynağına başvuru olarak ayarlanır. Ham dize olamaz.

Bu özellik, API düzeyi 3'te kullanıma sunulmuştur. Bu, yalnızca sharedUserId özelliği de ayarlanmışsa anlamlıdır.

android:sharedUserMaxSdkVersion

Paylaşılan kullanıcı kimlikleri, paket yöneticisi içinde belirleyici olmayan davranışa neden olur. Bu nedenle, bunların kullanımı kesinlikle önerilmez ve Android'in gelecekteki bir sürümünde kaldırılabilir. Bunun yerine, paylaşılan bileşenlerin birlikte çalışabilmesi için hizmetler ve içerik sağlayıcılar gibi doğru iletişim mekanizmalarını kullanın.

Sistemin hâlâ android:sharedUserId kullandığı maksimum SDK sürümü. Uygulamanız, belirtilen değerden daha yüksek bir SDK sürümü çalıştıran bir cihaza yeni yüklenirse uygulamanız android:sharedUserId öğesini hiç tanımlamamışsınız gibi davranır.

Bu özellik, API düzeyi 33'te kullanıma sunulmuştur. Bu, yalnızca sharedUserId özelliği de ayarlanmışsa anlamlıdır.

android:versionCode
Dahili bir sürüm numarası. Bu numara yalnızca bir sürümün diğerinden daha yeni olup olmadığını belirlemek için kullanılır. Yüksek sayılar, daha yeni sürümleri belirtir. Bu, kullanıcılara gösterilen sürüm numarası değildir ve versionName özelliği tarafından ayarlanır.

Değer, 0'dan büyük bir pozitif tam sayı olarak ayarlanır. Birbirini takip eden her sürümün daha büyük bir sayısı olduğu sürece, kimliği istediğiniz gibi tanımlayabilirsiniz. Örneğin, bir yapı numarası olabilir veya "x" ve "y"yi alt ve üst 16 bitte ayrı ayrı kodlayarak "x.y" biçimindeki bir sürüm numarasını tam sayıya çevirebilirsiniz. Alternatif olarak, her yeni sürüm yayınlandığında bu sayıyı bir artırabilirsiniz.

android:versionName
Kullanıcılara gösterilen sürüm numarası. Bu özellik ham dize veya dize kaynağına başvuru olarak ayarlanır. Dizenin, kullanıcılara göstermekten başka bir amacı yoktur. versionCode özelliği, dahili olarak kullanılan önemli sürüm numarasını içerir.
android:installLocation
Uygulama için varsayılan yükleme konumu. Aşağıdaki anahtar kelime dizeleri kabul edilir:

Değer Açıklama
"internalOnly" Uygulama yalnızca dahili cihaz depolama alanına yüklenir. Bu ayarlanırsa uygulama hiçbir zaman SD kart gibi harici depolama alanlarına yüklenmez. Dahili depolama alanı doluysa sistem uygulamayı yüklemez. android:installLocation öğesini tanımlamazsanız varsayılan davranış budur.
"auto" Uygulama harici depolamaya yüklenebilir, ancak sistem varsayılan olarak uygulamayı dahili depolama alanına yükler. Dahili depolama alanı doluysa sistem bunu harici depolamaya yükler. Kullanıcılar, uygulamayı yükledikten sonra sistem ayarlarından dahili veya harici depolama alanına taşıyabilir.
"preferExternal" Uygulama, harici depolama cihazına yüklenmeyi tercih ediyor. Sistemin bu isteği dikkate alacağının garantisi yoktur. Harici medya kullanılamıyorsa veya dolu değilse uygulama dahili depolama alanına yüklenebilir. Kullanıcılar, uygulamayı yükledikten sonra sistem ayarları üzerinden dahili veya harici depolama alanına taşıyabilirler.

Not: Varsayılan olarak, uygulamanız dahili depolama alanına yüklenir ve bu özelliği "auto" veya "preferExternal" olarak tanımlamadığınız sürece harici depolamaya yüklenemez.

Uygulama harici depolamaya yüklendiğinde:

  • APK dosyası harici depolama alanına kaydedilir, ancak veritabanları gibi uygulama verileri yine de dahili cihaz belleğine kaydedilir.
  • APK dosyasının kaydedildiği kapsayıcı, uygulamanın yalnızca dosyayı yükleyen cihazda çalışabilmesini sağlayan bir anahtarla şifrelenir. Kullanıcı, SD kartı başka bir cihaza aktaramaz ve kartta yüklü uygulamaları kullanamaz. Aynı cihazda birden fazla SD kart kullanılabilir.
  • Uygulama, kullanıcının isteği üzerine dahili depolama alanına taşınabilir.

Kullanıcı, bir uygulamayı dahili depolama alanından harici depolama alanına taşımayı da isteyebilir. Ancak bu özellik varsayılan ayar olan "internalOnly" olarak ayarlanırsa sistem, kullanıcının uygulamayı harici depolama alanına taşımasına izin vermez.

Geriye dönük uyumluluğun nasıl sağlanacağı da dahil olmak üzere bu özelliği kullanma hakkında daha fazla bilgi edinmek için Uygulama yükleme konumu bölümünü inceleyin.

Kullanıma sunuldu: API düzeyi 8.

kullanıma sunulduğu tarih:
Özellik açıklamasında aksi belirtilmedikçe tüm özellikler için API düzeyi 1.

şuna da bakabilirsiniz:
<application>