<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>

bulunduğu yer:
hiçbiri

şunları içermelidir:
<application>
şunları 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 öğesidir. Bu bir <application> öğesi içerir ve xmlns:android ile package özelliklerini belirtin.
özellikler:
xmlns:android
Android ad alanını tanımlar. Bu özellik her zaman ayarlanır "http://schemas.android.com/apk/res/android" numaralı telefona.
package
APK'nın manifest dosyasındaki package özelliğinin değeri, uygulamanın evrensel olarak benzersiz uygulama kimliği. Tam bir Java dili stili ve Android uygulamasının paket adı. Ad, büyük veya küçük harfler, sayılar ya da alt çizgi ("_") ekleyin. Bununla birlikte, tek tek paket adı bölümleri yalnızca anlamına gelir.

package değerini değiştirmemeye dikkat edin. Çünkü bu değer, yeni bir uygulama oluşturur. Uygulamanızın önceki sürümünün kullanıcıları güncelleme almaz ve Sürümlerini eski ve yeni sürümler arasında aktarmak istiyor.

AGP 7.3'ten itibaren Gradle tabanlı derleme sisteminde package değerini doğrudan kaynak manifest dosyasına ekleyin. Daha fazla bilgi için bkz. Uygulama kimliğini ayarlayı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öneticisi içinde deterministik olmayan davranışa neden olur. Bu nedenle, kesinlikle önerilmez ve Android'in gelecekteki bir sürümünde kaldırılabilir. Bunun yerine hizmetleri ve içerik sağlayıcılar gibi uygun iletişim mekanizmalarını Paylaşılan bileşenler arasında birlikte çalışabilirlik Mevcut uygulamalar bu değeri kaldıramaz. paylaşılan bir kullanıcı kimliğinin taşınması desteklenmez. Bu uygulamalarda Paylaşılanları kullanmaktan kaçınmak için android:sharedUserMaxSdkVersion="32" Yeni kullanıcı yüklemelerinde kullanıcı kimliği.

Diğer uygulamalarla paylaşılan Linux kullanıcı kimliğinin adı. Varsayılan olarak Android her uygulamaya kendi benzersiz kullanıcı kimliğini atar. Ancak, bu özellik iki veya daha fazla alan için aynı değere ayarlanırsa hepsinin aynı kimliği paylaşması gerekir. aynı olduğundan emin olun. Aynı kullanıcı kimliğine sahip uygulamalar erişebilir birbirlerinin verilerini toplamalarını ve istenirse aynı süreçte çalıştırmalarını sağlar.

android:targetSandboxVersion
. Bu uygulamanın kullanacağı hedef korumalı alan. Korumalı alan sürüm numarası ne kadar yüksek olursa güvenlik seviyesi o kadar artar. Varsayılan değeri 1 şeklindedir; 2 olarak da ayarlayabilirsiniz. Bu özelliğin 2 olarak ayarlanması, uygulamasını farklı bir SELinux korumalı alanına taşımanızı sağlar.

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

  • Varsayılan usesCleartextTraffic değeri false (yanlış) değerindedir.
  • 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 ayarlanmış. Korumalı alan düzeyini, uygulamanızın yüklü sürümünde ayarlayabilirsiniz daha az kısıtlayıcı olana 1. seviye. Ancak bunu yaparsanız uygulamanız, uygulama verilerini hazır uygulamadan uygulamanızın yüklü sürümü. Yüklü uygulamanın korumalı alan değerini 2 olarak ayarlamalısınız .

Bir uygulama yüklendikten sonra, uygulamanın yalnızca hedef korumalı alan değerini daha yüksek bir değere güncelleyebilirsiniz. Hedef korumalı alan değerini düşürmek için uygulamayı kaldırın ve bunu, manifestinde bu özellik için daha düşük bir 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öneticisi içinde deterministik olmayan davranışa neden olur. Bu nedenle, kesinlikle önerilmez ve Android'in gelecekteki bir sürümünde kaldırılabilir. Bunun yerine hizmetleri ve içerik sağlayıcılar gibi uygun iletişim mekanizmalarını Paylaşılan bileşenler arasında birlikte çalışabilirlik Mevcut uygulamalar bu değeri kaldıramaz. paylaşılan bir kullanıcı kimliğinin taşınması desteklenmez.

Paylaşılan kullanıcı kimliği için kullanıcı tarafından okunabilir bir etiket. Etiket şu şekilde ayarlandı: dize kaynağına başvurudur. Ham dize olamaz.

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

android:sharedUserMaxSdkVersion

Paylaşılan kullanıcı kimlikleri, paket yöneticisi içinde deterministik olmayan davranışa neden olur. Bu nedenle, kesinlikle önerilmez ve Android'in gelecekteki bir sürümünde kaldırılabilir. Bunun yerine hizmetleri ve içerik sağlayıcılar gibi uygun iletişim mekanizmalarını Paylaşılan bileşenler arasında birlikte çalışabilirlik

Sistemin hâlâ android:sharedUserId kullandığı maksimum SDK sürümü. Eğer belirtilen değerden daha yüksek bir SDK sürümü çalıştıran bir cihaza yeni yüklenmişse uygulamanız android:sharedUserId 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ış.

android:versionCode
Dahili bir sürüm numarası. Bu numara yalnızca bir sürüm diğerine göre daha yenidir; yüksek sayılar daha fazla sürüm anlamına gelir son sürümler. Bu, kullanıcılara gösterilen sürüm numarası değildir. versionName özelliği tarafından ayarlanır.

Değer, 0'dan büyük bir pozitif tam sayı olarak ayarlanır. Hedeflerinize göre ancak arka arkaya her sürüm daha yüksek bir sayı sayısına sahip olması koşuluyla, istediğiniz zaman izleyebilirsiniz. Örneğin, bir derleme numarası olabilir veya bir sürümü çevirebilirsiniz. "x.y" içindeki sayı "x" karakterini kodlayarak biçimi bir tam sayıya dönüştürün ve "y" ayrı ayrı alt ve üst 16 bit'i içerir. İsterseniz sayıyı bir artırabilirsiniz yeni bir sürüm yayınlandığından emin olun.

android:versionName
Kullanıcılara gösterilen sürüm numarası. Bu özellik, ham olarak ayarlandı dize kaynağı olarak kullanabilirsiniz. Dizenin başka bir amacı yok daha iyi anlamama yardımcı olur. versionCode özelliği şunu tutar: dahili olarak kullanılan önemli sürüm numarası.
android:installLocation
Uygulamanın 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 bir depolama alanına yüklenmez. Dahili sistem uygulamayı yüklemez. Bu, varsayılan davranıştır android:installLocation değerini tanımlamazsanız.
"auto" Uygulama harici depolamaya yüklenebilir, ancak sistem dahili depolamadaki varsayılan uygulamadır. Dahili depolama alanı doluysa sistem harici depolamaya yükler. Kullanıcı, yüklendikten sonra uygulamayı taşıyabilir dahili veya harici depolamaya ekleyebilirsiniz.
"preferExternal" Uygulama, harici depolama alanına yüklenmeyi tercih ediyor. Hayır ve sistemin bu isteği kabul edeceğini garanti eder. Uygulama dahili olarak depolama alanı sunar. Yüklendikten sonra kullanıcı uygulamayı şuraya taşıyabilir: dahili veya harici depolamaya ihtiyacınız olabilir.

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

Bir uygulama harici depolama alanına yüklendiğinde:

  • APK dosyası kaydedildi harici depolamaya veri gönderir, ancak veritabanları gibi uygulama verileri dahili cihaz belleği.
  • APK dosyasının kaydedildiği kapsayıcı, aşağıdakileri yapan bir anahtarla şifrelenmiştir: Uygulama yalnızca onu yükleyen cihazda çalışır. Kullanıcı SD kartı başka bir cihaza aktarabilir ve kartta yüklü uygulamaları kullanabilirsiniz. Aynı cihazda birden çok SD kart kullanılabilir.
  • Kullanıcının isteği üzerine uygulama dahili depolama alanına taşınabilir.

Kullanıcı ayrıca dahili depolamadaki bir uygulamayı harici depolama alanına taşımayı da isteyebilir depolama alanına sahip olursunuz. Ancak, aşağıdaki durumlarda sistem kullanıcının uygulamayı harici depolamaya taşımasına izin vermez: bu özellik, varsayılan ayar olan "internalOnly" değerine ayarlandı.

Örneğin, geriye dönük uyumluluğun nasıl sağlanacağı da dahil olmak üzere bu özelliğin kullanımı hakkında daha fazla bilgi Uygulama yükleme konumu adlı makaleyi inceleyin.

Kullanıma sunulduğu uygulama düzeyi: API düzeyi 8.

tanıtıldığı yer:
Özellik açıklamasında aksi belirtilmedikçe tüm özellikler için API düzeyi 1.

ayrıca bkz.:
<application>