Android, tek bir cihazda birden fazla kullanıcı olmasını destekler. Daha fazla bilgi edinmek için Birden fazla kullanıcıyı destekleme başlıklı makaleyi inceleyin. Tüm sistem paketleri her tür Android kullanıcısı için yararlı olmadığından, her kullanıcı türüne hangi sistem paketlerinin önceden yüklenmesi gerektiğini belirtmek için izin verilenler listesini kullanabilirsiniz. Gereksiz sistem paketlerini önceden yüklemeyerek kullanıcı oluşturma sürelerini, başlangıç zamanlarını ve bellek kullanımını optimize edebilir.
Yeni kullanıcılar için kullanıcı türlerine göre hangi sistem paketlerinin ilk olarak yüklenmesi gerektiğini belirtmek üzere frameworks/base/data/etc/preinstalled-packages-platform.xml
modelinde oluşturulmuş sistem yapılandırması XML dosyalarını kullanın. Cihazdaki tüm sistem paketlerinde ideal olarak
bir XML dosyasındaki giriş (manifest adıyla ilişkili olan), statik yer paylaşımları hariç,
Bunlar ilgili girişe göre otomatik olarak işlenir.
yer paylaşımlı hedef paketi.
Cihazın burada listelenmeyen sistem paketlerini işleme şekli, yapılandırma modu tarafından kontrol edilir.
Kullanıcı türleri
Temel kullanıcı türleri (her kullanıcı bu türlerden en az biridir) şunlardır:
Kullanıcı türü | Açıklama |
---|---|
SYSTEM |
0. Kullanıcı |
FULL |
Profil dışı kullanıcı kullanıcılar. |
PROFILE |
Gerçek bir kullanıcının profili. |
Her birinin tam anlamı frameworks/base/core/java/android/content/pm/UserInfo.java
adresinde tanımlanmıştır.
Her kullanıcı tam olarak bu kullanıcı türlerinden biri olduğundan (frameworks/base/core/java/android/os/UserManager.java
bölümünde tanımlanan AOSP kullanıcı türleri ve frameworks/base/services/core/java/com/android/server/pm/UserTypeFactory.java.
bölümünde tanımlanan tüm OEM özel kullanıcı türleri dahil) kullanıcı türlerini tek tek belirterek daha ayrıntılı kontrol elde edilebilir. Daha fazla bilgi için kullanıcı türleri sayfasına bakın.
Şu anda, AOSP kullanıcı türleri şunlardır:
android.os.usertype.full.SYSTEM
android.os.usertype.full.SECONDARY
android.os.usertype.full.GUEST
android.os.usertype.full.DEMO
android.os.usertype.full.RESTRICTED
android.os.usertype.profile.MANAGED
android.os.usertype.system.HEADLESS
Örnekler
Aşağıdaki örneklerde en yaygın kullanım alanları ele alınmıştır:
- Bir sistem paketinin yalnızca kullanıcı 0'a önceden yüklenmesi için:
<install-in-user-type package="com.android.example"> <install-in user-type="SYSTEM" /> </install-in-user-type>
- Bir sistem paketinin tüm gerçek kullanıcılara (ör. web tarayıcısı) önceden yüklenmesi, yani tüm gerçek kullanıcıları hedefleyen
FULL
veyaPROFILE
türündeki herhangi bir kullanıcıya yüklenmesi için:<install-in-user-type package="com.android.example"> <install-in user-type="FULL" /> <install-in user-type="PROFILE" /> </install-in-user-type>
- Sistem paketinin, profil kullanıcıları hariç tüm gerçek kullanıcılara önceden yüklenmesi için.
Örneğin, bu bir duvar kağıdı uygulamasına uygulanabilir:
<install-in-user-type package="com.android.example"> <install-in user-type="FULL" /> </install-in-user-type>
- Bazı sistem paketlerinin
türü. Bu durumlarda şunları kullanın:
<install-in-user-type package="com.android.example"> <install-in user-type="SYSTEM"> <install-in user-type="FULL" /> <install-in user-type="PROFILE" /> </install-in-user-type>
- Ayrı kullanıcı türleri belirterek daha ayrıntılı seçeneklerden de yararlanabilirsiniz. Örneğin, aşağıdaki örnek kod bu paketi tüm kullanıcılara yükler
Kullanıcı türü yönetilen profil veya davetli olan ya da
SYSTEM
kategorisinde olan temel türü.<install-in-user-type package="com.android.example"> <install-in user-type="android.os.usertype.profile.MANAGED" /> <install-in user-type="android.os.usertype.full.GUEST" /> <install-in user-type="SYSTEM"> </install-in-user-type>
do-not-install-in etiketi
Paketlerin belirli kullanıcı türlerinde önceden yüklenmesi de engellenebilir
(do-not-install-in
etiketi kullanılıyor). do-not-install-in
etiketlerinin, herhangi bir dosyada install-in
etiketlerinin geçersiz kılacağını unutmayın. Örnek:
<install-in-user-type package="com.android.example"> <install-in user-type="FULL" /> <do-not-install-in user-type="android.os.usertype.full.GUEST"/> </install-in-user-type>
android.os.usertype.full.GUEST
türünde (TAM alt türü) ise
do-not-install-in
nedeniyle bu paket yüklenmedi
etiketi, install-in
etiketine göre daha önceliklidir.
Davranışı config.xml ile kontrol edin
Yapılandırma kaynağı değeri config_userTypePackageWhitelistMode
bu özelliği kontrol eder ve bir cihazın sistem paketlerini nasıl yorumlayacağını belirler
herhangi bir kullanıcı türü için giriş içermeyen. Daha fazla bilgi için bkz.
frameworks/base/core/res/res/values/config.xml#config_userTypePackageWhitelistMode
frameworks/base/core/res/res/values/config.xml
hücresinde tam sayıyı ayarlayın
olarak adlandırılan config_userTypePackageWhitelistMode
şu değerler: Bu işaretler birleştirilebilir. En önemli işaretler:
Değer | Açıklama |
---|---|
0 (0b0000) |
Devre dışı bırakın. Tüm sistem paketlerini yükleyin. |
1 (0b0001) |
Zorunlu kıl'ı tıklayın. Sistem paketleri yalnızca izin verilenler listesine eklendiğinde yüklenir. |
4 (0b0100) |
İzin verilenler listesi dosyasında belirtilmeyen tüm paketler, izin verilenler listesine dahil edilmiş olarak kabul edilir. |
8 (0b1000) |
İzin verilenler listesi dosyasında belirtilmeyen tüm paketler, yalnızca SİSTEM kullanıcısı için dolaylı olarak izin verilenler listesine eklenmiş olarak kabul edilir. |
Aşağıdaki yapılandırma bu özelliği etkinleştirir (böylece install-in
ve
do-not-install-in
etiketlerine uyulur) ancak belirtilmeyen tüm etiketleri işleme alır
sistem paketlerini tüm kullanıcılar için install-in
olarak ayarlar:
<integer name="config_userTypePackageWhitelistMode">5</integer>