Bu sayfada, Android 9 sürümündeki önemli özellikler özetlenmiştir ve ek bilgilere bağlantılar verilmiştir. Bu özellik özetleri, özelliğin bu sitedeki doküman konumuna göre düzenlenir. Bölüm taşıma ve yeniden adlandırmayla ilgili kılavuz için Ağustos 2018 site güncellemeleri başlıklı makaleyi inceleyin.
Topluluk
Genel sistem görüntüsü (GSI)
Genel sistem görüntüsü (GSI), Android cihazlar için yapılandırılmış bir sistem görüntüsüdür. Genel Sistem Görüntüsü (GSI), Android 9 ile kullanıma sunulan cihazlar ve Android 9'a yükseltilen cihazlar için GSI'ler arasındaki farklara dair ayrıntıları içerir.
Mimari
Donanım soyutlama katmanı (HAL)
HIDL çerçevesi geriye dönük uyumluluk
HIDL çerçevesi geriye dönük uyumluluk doğrulaması, çerçevenin geriye dönük uyumluluğunu doğrulama yöntemidir.
Dinamik olarak kullanılabilir HAL'ler
Dinamik olarak kullanılabilir HAL'ler, kullanılmadıkları veya ihtiyaç duyulmadıkları zaman Android donanım alt sistemlerinin dinamik olarak kapatılmasını destekler.
HIDL
HIDL MemoryBlock
HIDL MemoryBlock, hidl_memory
, HIDL @1.0::IAllocator
ve HIDL @1.0::IMapper
üzerine inşa edilmiş soyut bir katmandır. Tek bir bellek yığınını paylaşan birden fazla bellek bloğu bulunan HIDL hizmetleri için tasarlanmıştır.
Cihaz ağacı yer paylaşımları
Sıkıştırılmış yer paylaşımları
Android 9 ve sonraki sürümlerde, cihaz ağacı tablo başlığının 1. sürümü kullanılırken cihaz ağacı blob yer paylaşımı (DTBO) resminde sıkıştırılmış yer paylaşımları desteği bulunur.
DTO güncellemeleri
Android 9 ve sonraki sürümlerde, önyükleyicinin cihaz ağacı yer paylaşımlarında (DTO'lar) tanımlanan özellikleri değiştirmeden önce birleşik cihaz ağacı blob'unu çekirdeğe iletmesi gerekir.
DTBO resim başlığı sürümlendirme
Android 9 ve sonraki sürümler, DTBO resim başlığında bir sürüm alanı içerir.
DTBO doğrulaması
Android 9 ve sonraki sürümler için DTBO bölümü gerekir. SoC DT'sine düğüm eklemek veya özelliklerde değişiklik yapmak için önyükleyicinin, SoC DT'sinin üzerine cihaza özgü bir DT'yi dinamik olarak yerleştirmesi gerekir. Daha fazla bilgi için Derleme ve Doğrulama bölümüne bakın.
Çekirdek uyumluluğu
Android 9 ve sonraki sürümler, çekirdeği, arayüzlerini ve DTBO'ların kullanımını etkileyen gereksinimler içerir. Daha fazla bilgi için şu sayfalara göz atın:
- Kararlı Çekirdek Sürümleri ve Güncellemeleri
- Android Ortak Çekirdekleri
- Modüler Çekirdek Şartları
- Arayüz Şartları
- Cihaz Ağacı Yerleşimleri
Tedarikçi firma NDK
Tasarım değişiklikleri
Android 9 ve sonraki sürümlerdeki VNDK tasarım değişiklikleri hakkında bilgi edinmek için şu sayfalara bakın:
- Satıcı Yerel Geliştirme Seti (VNDK)
- VNDK Derleme Sistemi Desteği
- VNDK Tanımlama Aracı
- Dizinler, Kurallar ve sepolicy
- VNDK Uzantıları
- Bağlayıcı Ad Alanı
ABI denetleyicisi
ABI Kararlılığı sayfasında, VNDK kitaplıklarında yapılan değişikliklerin ABI uyumluluğunu korumasını sağlayan uygulama ikili arayüzü (ABI) denetleyicisi açıklanmaktadır.
VNDK anlık görüntüleri
Sistem ve tedarikçi firma resimleri Android'in farklı sürümlerinden derlenmiş olsa bile sistem resimleri, tedarikçi firma resimlerine doğru VNDK kitaplıklarını sağlamak için VNDK anlık görüntülerini kullanabilir.
Tedarikçi firma arayüzü nesnesi (VINTF nesnesi)
Tedarikçi Arayüzü Nesnesi bölümündeki aşağıdaki sayfalarda Android 9 ve sonraki sürümlerdeki güncellemeler açıklanmaktadır:
HIDL desteği sonlandırma planı
Aşağıdaki sayfalarda, Android'in HIDL HAL'leri nasıl kullanımdan kaldırdığı ve kaldıracağı açıklanmaktadır:
Önyükleyici
Ürün bölümleri
Android 9 ve sonraki sürümler, Android derleme sistemini kullanarak /product
bölümlerinin oluşturulmasını destekler. Daha önce Android 8.x, Android derleme sisteminden oluşturulan OEM'ye özel bileşenler için yer ayırmadan çip üzerinde sistem (SoC) bileşenlerinin /system
bölümünden /vendor
bölümüne ayrılmasını zorunlu kılıyordu.
Standart önyükleme nedeni uygunluğu
Standart Önyükleme Nedeni sayfasında, Android 9 ve sonraki sürümlerde önyükleme başlatıcısı önyükleme nedeni spesifikasyonunda yapılan değişiklikler açıklanmaktadır.
Kök olarak sistem
Android 9 ve sonraki sürümlerin yüklü olduğu tüm cihazlar, ramdisk.img
'yi system.img
(no-ramdisk olarak da bilinir) ile birleştiren ve ardından rootfs olarak monte edilen root olarak sistem özelliğini kullanmalıdır.
Önyükleme resmi başlık sürümü
Android 9 ve sonraki sürümlerde önyükleme resmi başlığında başlık sürümünü belirten bir alan bulunur. Önyükleyici bu sürüm alanını kontrol etmeli ve başlığı buna göre ayrıştırmalıdır.
Kurtarma sırasında DTBO
A/B olmayan cihazlarda kurtarma resmi ile DTBO bölümü arasındaki uyuşmazlıklardan kaynaklanan OTA hatalarını önlemek için kurtarma resminde DTBO resmindeki bilgiler bulunmalıdır.
Ekran
Ekran kesimleri
Ekran kesikleri, uygulama geliştiricilerin cihazların ön tarafındaki önemli sensörler için yer ayırırken sürükleyici, kenardan kenara deneyimler oluşturmasına olanak tanır.
Döndürme önerileri
Android 9 ve sonraki sürümlerde ekran döndürme davranışıyla ilgili güncellemeler, cihaz konumu değişse bile ekran döndürmeyi yatay veya dikey olarak sabitlemek için kullanıcılara yönelik bir kontrol desteği içerir.
Senkronize edilen uygulama geçişleri
Senkronize uygulama geçişleri, yeni uygulama geçiş animasyonlarına olanak tanır.
Metin sınıflandırma (eski adıyla TEXTCLASSIFIER)
Android 9 ve sonraki sürümlerde, metin sınıflandırmasını uygulamanın önerilen yolu olan metin sınıflandırıcı hizmeti ve varsayılan bir hizmet uygulaması bulunur.
Geniş renk yelpazesi
Android 9 ve sonraki sürümler, aşağıdakiler dahil olmak üzere geniş renk yelpazesi desteği içerir:
- Yüksek dinamik aralık (HDR)
- İçeriklerin BT2020 renk alanında işlenmesi ancak son hedef veri alanı olarak değil
Geniş renk gamını kullanmak için cihazın tüm ekran yığınının (ekran, donanım derleyici, GPU gibi) geniş renk gamını veya arabellek biçimlerini desteklemesi gerekir. Donanım desteklese bile cihazların geniş kapsamlı içerik desteği için hak talebinde bulunması gerekmez. Ancak donanımdan tam olarak yararlanmak için geniş renk gamının etkinleştirilmesi gerekir. Tutarlı bir görsel deneyim elde etmek için geniş renk gamına sahip renk, çalışma zamanında kapatılmamalıdır.
Uyumluluk
Android Uyumluluk Tanımlama Belgesi
Android 9 Uyumluluk Tanımlama Dokümanı (CDD), yeni özelliklerle ilgili güncellemeler ve daha önce yayınlanan işlevlerle ilgili şartlarda yapılan değişikliklerle önceki sürümleri temel alır.
Ayarlar
Daha iyi uygulama widget'ları
Android uygulama widget'ı çerçevesi, özellikle kullanıcı widget'ları sildiğinde veya manuel olarak eklediğinde kullanıcı etkileşimleriyle ilgili daha fazla görünürlük sunar. Bu işlev, varsayılan olarak Launcher3 ile birlikte gelir.
Üretici firmaların, Launcher3'ü temel almayan başlatıcı uygulamalarını (cihazlarla birlikte gönderilir) bu özelliği desteklemek için güncellemesi gerekir. OEM'lerin varsayılan başlatıcılarında yeni widgetFeatures alanını desteklemesi gerekir.
Bu özelliğin yalnızca başlatıcılar tarafından beklendiği gibi uygulandığında uçtan uca çalıştığını unutmayın. AOSP, örnek bir uygulama içerir. Sağlanan örnek kod için AOSP Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca adresine bakın.
Paket yükleyicilere gönderilen cihaz durumu değişikliği bildirimleri
Yerel ayar veya ekran yoğunluğu gibi özelliklerde değişiklik olduğunda INSTALL_PACKAGES
iznine sahip uygulamalara korumalı sistem yayını gönderilebilir. Alıcılar manifest'e kaydedilebilir ve yayını almak için bir işlem başlatılır. Bu, bu tür değişikliklerin ardından uygulamaların ek bileşenlerini yüklemek isteyen paket yükleyiciler için yararlıdır. Bu yayını tetiklemeye uygun yapılandırma değişiklikleri nadir olduğundan bu durum genellikle yaşanmaz.
Cihaz durumu değişikliği bildirimi kaynak kodu, platform/frameworks/base
altında aşağıdaki konumlarda bulunur:
api/system-current.txt
core/java/android/content/Intent.java
core/res/AndroidManifest.xml
services/core/java/com/android/server/am/ActivityManagerService.java
Bilgi mimarisi
Ayarlar uygulamasının bilgi mimarisinde yapılan değişiklikler daha fazla işlevsellik ve daha kolay uygulama sağlar.
Testler
Atest
Atest komut satırı aracı, Android testlerini yerel olarak oluşturmanıza, yüklemenize ve çalıştırmanıza olanak tanır. Böylece, Trade Federation test koşum takımı komut satırı seçenekleri hakkında bilgi sahibi olmanıza gerek kalmadan testlerin yeniden çalıştırılmasını büyük ölçüde hızlandırır.
Compatibility Test Suite
CTS indirmeleri
Android 9'u destekleyen Compatibility Test Suite (CTS) paketleri CTS İndirmeleri sayfasında mevcuttur. Dahil edilen testlerin kaynak kodu, açık kaynak ağacındaki android-cts-9.0_r1
etiketiyle senkronize edilebilir.
CTS seçenekleri
Android 9 için CTS v2, aşağıdaki komutu ve bağımsız değişkeni kazanır:
run retry
, önceki oturumlarda başarısız olan veya yürütülmeyen tüm testleri yeniden dener.‘--shard-count
, CTS çalıştırmasını belirli sayıda bağımsız parçaya böler. Böylece, paralel olarak birden fazla cihazda çalıştırılabilir.
Ayrıca, daha önce dokümante edilmemiş --retry-type
komutu da aynı CTS v2 konsol komutu referansına eklendi.
Güvenlik Unsuru (SE) hizmeti
Güvenli Öğe hizmeti, cihazlarda SE HAL uygulaması olup olmadığını ve varsa kaç tane olduğunu belirleyerek küresel platform destekli güvenli öğeleri kontrol eder. Bu, API'yi ve temel güvenli öğe uygulamasını test etmek için temel olarak kullanılır.
Sensör birleştirme kutusu
Sensör füzyon kutusu, Kamera Görüntüsü Testi Paketi (Kamera ITS) sensör füzyon testinde ve çok kameralı senkronizasyon testinde kullanılır. Android telefonlarda kameranın ve diğer sensörlerin zaman damgası doğruluğunu ölçmek için tutarlı bir test ortamı sağlar. Daha fazla bilgi için şu sayfalara bakın:
- Sensor Fusion Box Hızlı Başlangıç Kılavuzu, sensör füzyon testini ve sensör füzyon kutusunu ilk kez kurmayla ilgili adımları içerir.
- Sensör Füzyon Kutusu Montaj Kılavuzu, sensör füzyon kutusu montajıyla ilgili adımları içerir.
Geniş görüş alanına sahip kutu içinde ITS
Geniş görüş alanı ITS kutusu, kamera ITS'sinde hem geniş görüş alanı (WFoV) hem de normal görüş alanı (RFoV) kamera sistemlerini test etmek için tasarlanmış otomatik bir sistemdir.
Tedarikçi Test Paketi
Ana makine denetleyici mimarisi
Satıcı Testi Paketi (VTS) ana makine denetleyicisi mimarisi, bulut tabanlı test sunma hizmetine entegre edilmiş VTS test çerçevesinin mimarisidir.
Hizmet adı bilinçli HAL testi
VTS hizmet adı bilinçli HAL testi, VTS testlerinin çalıştırıldığı cihaza göre belirli bir HAL örneğinin hizmet adını almayı destekler.
HAL test edilebilirlik kontrolü
VTS HAL test edilebilirlik kontrolü, ilgili cihaz hedefi için hangi VTS testlerinin atlanması gerektiğini belirlemek üzere cihaz yapılandırmasını kullanmaya yönelik bir çalışma zamanı yöntemi içerir.
Otomatik test altyapısı
Otomatik test altyapısı, AOSP genel sistem görüntüsünü (GSI) çalıştıran iş ortağı cihazlarda VTS, CTS veya diğer testlerin otomatik olarak test edilmesi için kullanılan bir VTS altyapısıdır.
Hata ayıklama
Gelişmiş telemetri
Android'de telemetri, cihaz, Android sistemi ve uygulamalarla ilgili kullanım ve teşhis bilgilerini otomatik olarak toplama işlemidir. Android'in önceki sürümlerinde telemetri paketi sınırlıydı ve sistem güvenilirliği ile cihaz veya uygulama sorunlarını tespit edip çözmek için gereken bilgileri yakalamıyordu. Bu da sorunların temel nedenlerini tespit etmeyi imkansız olmasa da zorlaştırıyordu.
Android 9, daha iyi verileri daha hızlı toplayarak bu eksikliği gideren statsd
telemetri özelliğini içerir. statsd
, uygulama kullanımı, pil ve işlem istatistikleri ile kilitlenmeleri toplar. Veriler analiz edilir ve ürünleri, donanımı ve hizmetleri iyileştirmek için kullanılır.
Daha fazla bilgi için frameworks/base/cmds/statsd/
başlıklı makaleyi inceleyin.
Güvenlik özellikleri
Uygulama imzalama
v3 APK imza şeması, APK anahtar rotasyonunu destekler.
Biyometrik destek
Android 9, uygulamaların biyometrik kimlik doğrulama desteğini cihaza ve modaya bakılmaksızın entegre etmek için kullanabileceği herkese açık BiometricPrompt
sınıfını içerir. Biyometri paketinizi BiometricPrompt
içerecek şekilde entegre etme hakkında daha fazla bilgi için Biyometrikler bölümüne bakın.
Dinamik analiz
Android 9, daha fazla istismar azaltma ve analiz aracı için destek içerir.
Kontrol akışı bütünlüğü (CFI)
Kontrol akışı bütünlüğü (CFI), derlenmiş bir ikili dosyanın orijinal kontrol akışı grafiğinde değişiklik yapılmasını yasaklayan bir güvenlik mekanizmasıdır. Bu sayede, bu tür saldırıların yapılması önemli ölçüde zorlaştırılır.
Çekirdek CFI
Android 9 ve sonraki sürümler, varsayılan olarak etkinleştirilen sistem CFI'ye ek olarak çekirdek kontrol akışı bütünlüğü (CFI) desteği de içerir.
Şifreleme
Dosya tabanlı şifreleme
Dosya tabanlı şifreleme (FBE), uyarlanabilir depolama ile çalışacak şekilde güncellendi. Yeni cihazlar, tam disk şifrelemesi yerine dosya tabanlı şifreleme kullanmalıdır.
Meta veri şifreleme
Android 9 ve sonraki sürümlerde, donanım desteğinin bulunduğu durumlarda meta veri şifrelemesi desteği bulunur. Meta veri şifrelemede, önyükleme sırasında mevcut olan tek bir anahtar, şifrelenmemiş tüm içerikleri şifrelemek için dosya tabanlı şifreleme kullanır.
Anahtar deposu
Android 9 ve sonraki sürümlerde bu özelliklere sahip Keymaster 4 bulunur.
StrongBox
Android 9 ve sonraki sürümler, yerleşik güvenli öğe (SE) gibi yüksek güvenlikli uygulamalar için özel olarak tasarlanmış fiziksel olarak ayrı bir CPU'da depolanan ve kullanılan Android Keystore anahtarları için destek içerir. StrongBox Keymaster, ayrık güvenli donanımda Keymaster HAL'in bir uygulamasıdır. StrongBox'ta şunlar bulunur:
- Ayrık CPU
- Entegre güvenli depolama alanı
- Yüksek kaliteli gerçek rastgele sayı üreteci
- Müdahalelere karşı korumalı ambalaj
- Yan kanala karşı direnç
Güvenli anahtar içe aktarma
Bir anahtarı Keymaster 4'e güvenli bir şekilde içe aktarmak için cihaz dışında oluşturulan anahtar, anahtarın nasıl kullanılabileceğini tanımlayan yetkilendirmelerin bir spesifikasyonuyla şifrelenir.
3DES desteği
Keymaster 4, 3DES kullanan eski sistemlerle uyumluluk için 3DES'i içerir.
Sürüm bağlama
Treble'ın modüler yapısını desteklemek ve system.img
ile boot.img
arasındaki bağlamayı kaldırmak için Keymaster 4, anahtar sürümü bağlama modelini her bölüm için ayrı düzeltme düzeylerine sahip olacak şekilde değiştirdi. Bu sayede, geri alma koruması sunmaya devam ederken her bir bölümün bağımsız olarak güncellenmesi sağlanır.
Android Protected Confirmation API
Android 9 yüklü olarak piyasaya sunulan desteklenen cihazlar, geliştiricilere Android Protected Confirmation API'yi kullanma olanağı sunar.
Bu API ile uygulamalar, kullanıcıya kısa bir ifadeyi onaylamasını isteyen bir istem göstermek için ConfirmationPrompt
örneği kullanabilir. Bu beyan, uygulamanın kullanıcının ödeme yapma gibi hassas bir işlemi tamamlamak istediğini yeniden doğrulamasına olanak tanır.
SELinux
Uygulama başına SELinux korumalı alanı
Uygulama korumalı alanı, Android 9 ve sonraki sürümleri hedefleyen ayrıcalıklı olmayan tüm uygulamaların ayrı SELinux korumalı alanlarında çalışmasını sağlamak için yeni korumalara ve test durumlarına sahiptir.
Treble SELinux değişiklikleri
Android 9 ve sonraki sürümlerde Treble SELinux'ta yapılan güncellemeler SELinux bölümünde çeşitli sayfalarda açıklanmıştır.
Tedarikçi firma init
Sağlayıcı init, /vendor
komutlarını tedarikçiye özgü izinlerle çalıştırmak için ayrı bir SELinux alanı kullanarak Treble sistem/tedarikçi bölmesindeki boşluğu kapatır.
Sistem özellikleri
Android 9, sistem özelliklerinin system
ve vendor
bölümleri arasında gereksiz yere paylaşılmasını kısıtlar ve paylaşılan sistem özellikleri arasında tutarlılık sağlamak için bir yöntem sunar.
SELinux özellik testleri
Android 9, belirli konumlardaki tüm dosyaların uygun özelliklere sahip olmasını sağlayan yeni derleme zamanı testleri içerir.
Örneğin, sysfs
içindeki tüm dosyalarda gerekli sysfs_type
özelliği bulunur.
Ses
Yüksek çözünürlüklü ses efektleri
Yüksek çözünürlüklü ses efektlerinde yapılan güncellemeler arasında efekt işlemenin int16'dan float biçimine dönüştürülmesi ve eşzamanlı istemci çıkış parçaları, maksimum istemci/sunucu belleği ve toplam karma parça sayısında artışlar yer alıyor.
Kamera
Harici USB kameralar
Android 9 ve sonraki sürümler, standart Android Camera2 API ve kamera HIDL arayüzünü kullanarak tak ve çalıştır USB kameraları (yani web kameraları) kullanmayı destekler.
Hareket izleme
Kamera cihazları hareket izleme özelliğinin reklamını yapabilir.
Çoklu kamera desteği
Çoklu kamera desteği, aynı yönü gösteren iki veya daha fazla fiziksel kamera cihazından oluşan yeni bir mantıksal kamera cihazı aracılığıyla çoklu kameralı cihazlar için API desteği içerir.
Oturum parametreleri
Oturum parametrelerini uygulamak, kamera istemcilerinin kayıt oturumu başlatma aşamasının bir parçası olarak maliyetli istek parametrelerinin bir alt kümesini etkin bir şekilde yapılandırmasına olanak tanıyarak gecikmeleri azaltabilir.
Tek üretici, birden fazla tüketici arabelleği
Tek üretici, birden çok tüketici kamera arabelleği aktarımı, kamera istemcilerinin, yakalama oturumu etkinken ve kamera aktarımı devam ederken çıkış yüzeylerini dinamik olarak eklemesine ve kaldırmasına olanak tanıyan bir yöntem grubudur.
Bağlantı
Arama ve mesajlaşma
Veri planlarını uygulama
Android 9 ve sonraki sürümler, SubscriptionPlan API'lerini kullanarak veri planları uygulayan operatörler için daha iyi destek sağlar.
Üçüncü taraf arama uygulamaları
Android 9 ve sonraki sürümler, üçüncü taraf (3. taraf) arama uygulamalarının aynı anda gelen operatör aramalarını yönetmesine ve aramaların sistem arama kaydına kaydedilmesine olanak tanıyan API'ler sağlar.
Operatör
Operatör kimliği
Android 9'da AOSP, operatör tanımlama işlemine yardımcı olmak için bir operatör kimliği veritabanı ekler. Veritabanı, operatörleri tanımlamak için ortak bir yol sunarak yinelenen mantığı ve dağınık uygulama deneyimlerini en aza indirir.
eSIM
Yerleşik SIM (eSIM veya eUICC), mobil kullanıcıların fiziksel SIM kart olmadan operatör profili indirmesine ve operatörün hizmetini etkinleştirmesine olanak tanıyan en son teknolojidir. Android 9 ve sonraki sürümlerde Android çerçevesi, eSIM'e erişmek ve eSIM'deki abonelik profillerini yönetmek için standart API'ler sağlar. Daha fazla bilgi için bkz.
IMS ayarları için çoklu SIM desteği
Android 9 ve sonraki sürümlerde IP multimedya alt sistemi (IMS) için kullanıcı ayarlarında iyileştirmeler yapılmıştır. LTE üzerinden sesli görüşme (VoLTE), görüntülü görüşme ve kablosuz ağ üzerinden görüşme ayarlarını tüm aboneliklerde paylaşmak yerine abonelik başına ayarlayabilirsiniz.
SIM durumu yayınları
Android 9 ve sonraki sürümlerde Intent.ACTION_SIM_STATE_CHANGED
desteği sonlandırıldı ve kart durumu ile kart uygulaması durumu için iki ayrı yayın (TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED
ve TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED
) eklendi.
Bu değişiklikler sayesinde, yalnızca bir kartın mevcut olup olmadığını bilmesi gereken alıcıların uygulama durumu değişikliklerini dinlemesi gerekmez. Yalnızca kart uygulamalarının hazır olup olmadığını bilmesi gereken alıcıların da kart durumundaki değişiklikleri dinlemesi gerekmez.
İki yeni yayın @SystemApis'dir ve yapışkan değildir. Yalnızca READ_PRIVILEGED_PHONE_STATE
iznine sahip alıcılar yayınları alabilir.
Cihazın kilidini açtığınızda intent'ler yeniden yayınlanmaz. Kilidi açmadan önce gönderilen yayınlara bağlı olan alıcılarda directBootAware
kullanılmalıdır veya kullanıcı kilidi açtıktan sonra durum sorgulaması yapılmalıdır. Durumlar, TelephonyManager, getSimCardState()
vegetSimApplicationState()
'daki ilgili API'ler kullanılarak sorgulanabilir.
Kablosuz bağlantı
Operatör kablosuz ağı
Operatöre ait kablosuz ağ özelliği, cihazların operatör tarafından uygulanan kablosuz ağlara otomatik olarak bağlanmasına olanak tanır. Yoğunluk oranı yüksek veya cep telefonu kapsama alanı minimum olan yerlerde (ör. stadyum veya metro istasyonu) operatör kablosuz ağları, bağlantıyı iyileştirmeye ve trafiği azaltmaya yardımcı olur.
MAC rastgele hale getirme
MAC rastgele hale getirme, cihazların şu anda bir ağla ilişkili değilken yeni ağlar ararken rastgele MAC adresleri kullanmasına olanak tanır. Android 9 ve sonraki sürümlerde, bir cihazın kablosuz ağa bağlanırken rastgele bir MAC adresi kullanması için geliştirici seçeneği etkinleştirilebilir.
Kablosuz ağı otomatik olarak aç
Kablosuz özelliğini otomatik olarak açma özelliği etkinleştirildiğinde, cihaz yeterince yüksek bir göreli alınan sinyal gücü göstergesi (RSSI) olan kayıtlı bir kablosuz ağın yakınında olduğunda kablosuz bağlantı otomatik olarak yeniden etkinleştirilir.
Kablosuz ağ gidiş dönüş süresi
Kablosuz ağ gidiş dönüş süresi (RTT), cihazların erişim noktası (AP) veya Kablosuz Ağ Farkında eşleri (cihazda Kablosuz Ağ Farkında destekleniyorsa) olsun, diğer destekleyen cihazlara olan mesafeyi ölçmesine olanak tanır. IEEE 802.11mc protokolüne dayalı bu özellik, uygulamaların gelişmiş konum doğruluğu ve farkındalığı kullanmasına olanak tanır.
Kablosuz ağ puanlamada iyileştirmeler
Geliştirilmiş kablosuz puanlama modelleri, bir cihazın bağlı olduğu kablosuz ağdan ne zaman çıkacağını veya yeni bir kablosuz ağa ne zaman gireceğini hızlı ve doğru bir şekilde belirler. Bu modeller, bağlantıdaki boşlukları önleyerek kullanıcılara güvenilir ve sorunsuz bir deneyim sunar.
config.xml
kaynaklarındaki RSSI değerlerini inceleyin ve özellikle aşağıdakileri ayarlayın:
config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
Kablosuz STA/AP eşzamanlılığı
Kablosuz STA/AP eşzamanlılığı, cihazların istasyon (STA) ve erişim noktası (AP) modlarında eşzamanlı olarak çalışabilmesidir. Çift bantlı eşzamanlı (DBS) kablosuz bağlantıyı destekleyen cihazlarda bu özellik, kullanıcı bir hotspot'u (SoftAP) etkinleştirmek istediğinde STA kablosuz bağlantısını kesintiye uğratmama gibi özellikler sunar.
WiFiStateMachine iyileştirmeleri
WifiStateMachine
, kablosuz bağlantı etkinliğini kontrol etmek, kullanıcı girişini koordine etmek (çalışma modları: hotspot, tarama, bağlanma veya kapalı) ve kablosuz ağ işlemlerini (ör. tarama veya bağlanma) kontrol etmek için kullanılan ana sınıftır.
Android 9 ve sonraki sürümlerde, kablosuz bağlantı çerçevesi kodu ve WifiStateMachine
'ün uygulanması yeniden tasarlandı. Bu sayede kod boyutu küçültüldü, kablosuz bağlantı kontrol mantığı daha kolay anlaşılır hale geldi, kontrol ayrıntı düzeyi iyileştirildi ve birim testlerinin kapsamı ile kalitesi artırıldı.
Özet olarak,WifiStateMachine
kablosuz bağlantının dört durumdan birinde olmasını sağlar:
- İstemci modu (bağlanıp tarayabilir)
- Yalnızca tarama modu
- SoftAP modu (Kablosuz hotspot)
- Devre dışı (Kablosuz bağlantı tamamen kapalı)
Her kablosuz modun, hizmet çalıştırmayla ilgili farklı gereksinimleri vardır ve yalnızca işleviyle alakalı etkinlikleri ele alacak şekilde tutarlı bir şekilde ayarlanmalıdır. Yeni uygulama, kodu bu modla ilgili etkinliklerle kısıtlayarak hata ayıklama süresini ve karmaşıklıktan kaynaklanan yeni hata ekleme riskini azaltır. Mod işlevi için açık şekilde işleme ek olarak, mesaj dizisi yönetimi tutarlı bir şekilde ele alınır ve senkronizasyon mekanizması olarak eşzamansız kanalların kullanımı ortadan kaldırılır.
Kablosuz ağ izni güncellemeleri
Android 9 ve sonraki sürümlerde CHANGE_WIFI_STATE
uygulama izni varsayılan olarak etkindir. Ayarlar > Uygulamalar ve bildirimler > Özel uygulama erişimi >��
Uygulamalar, CHANGE_WIFI_STATE
izninin verilmediği durumları ele almalıdır.
Bu davranışı doğrulamak için roboelectric ve manuel testleri çalıştırın.
Manuel test için:
- Ayarlar > Uygulamalar ve bildirimler > Özel uygulama erişimi > Kablosuz bağlantı kontrolü'ne gidin.
- Uygulamanızın iznini seçip devre dışı bırakın.
- Uygulamanızın,
CHANGE_WIFI_STATE
izininin verilmediği senaryoyu işleyebileceğini doğrulayın.
WPS desteğinin sonlandırılması
Güvenlik sorunları nedeniyle WiFiManager
'teki kablosuz korumalı kurulum (WPS), Android 9 ve sonraki sürümlerde kullanımdan kaldırıldı ve devre dışı bırakıldı. Ancak WiFiDirect
, WPA istemcisinde hâlâ WPS'yi kullanıyor.
Grafik
Uygulama
Vulkan 1.1 API
Android 9 ve sonraki sürümler Vulkan 1.1 grafik API'sinin uygulanmasını destekler.
Pencere geçişi izleme için WinScope aracı
Android 9 ve sonraki sürümler, pencere geçişlerini izlemek için WinScope aracını içerir. WinScope, geçişler sırasında ve sonrasında pencere yöneticisi durumunu kaydedip analiz etmek için altyapı ve araçlar sağlar. İlgili tüm pencere yöneticisi durumunu bir izleme dosyasına kaydederken pencere geçişlerini kaydedip adım adım ilerlemenize olanak tanır. Bu verileri, geçişi tekrar oynatmak ve adım adım incelemek için kullanabilirsiniz.
WinScope aracının kaynak kodu platform/development/tools/winscope
adresindedir.
Etkileşim
Otomobil ses sistemi
Automotive Audio, otomotivle ilgili Android uygulamaları için ses mimarisini açıklar.
Nöral Ağlar (NN) HAL, çeşitli hızlandırıcıların soyut bir tanımını tanımlar. Bu hızlandırıcıların sürücüleri bu HAL'e uygun olmalıdır.
Araç HAL'si
Araç Özellikleri, araç HAL arayüzündeki değişiklikleri açıklar.
GNSS uydu seçimi
Android Framework, yeni küresel navigasyon uydu sistemi (GNSS) HAL'leriyle (v1.1 ve sonraki sürümler) çalışırken Android ayarlarını izler. İş ortakları, Google Play Hizmetleri'ndeki veya diğer sistem güncellemelerindeki ayarları değiştirebilir. Bu ayarlar, belirli GNSS uydularının kullanılıp kullanılmayacağını GNSS HAL'e bildirir. Bu, kalıcı GNSS uydu veya takımyıldızı hataları olduğunda veya farklı zaman sistemleri ve saniye atlama, gün veya hafta sayısı geçişleri gibi harici etkinlikler kullanılarak takımyıldızları karıştırıldığında ortaya çıkabilecek GNSS HAL uygulama sorunlarına daha hızlı tepki vermek için yararlı olabilir.
GNSS donanım modeli
Android 9'da GNSS HAL 1.1 veya sonraki sürümler, donanım API'si hakkındaki bilgileri platforma aktarabilir. Platformun IGnssCallback
arayüzünü uygulaması ve HAL'e bir tutamak iletmesi gerekir. GNSS HAL, donanım modeli bilgilerini LocationManager#getGnssHardwareModelName()
yöntemiyle iletir. Cihaz üreticileri, mümkün olduğunda bu bilgileri sağlamak için GNSS HAL sağlayıcılarıyla birlikte çalışmalıdır.
İzinler
İsteğe bağlı erişim denetimi güncellemelerini yapılandırma
İsteğe bağlı erişim denetimini (DAC) yapılandırma, dosya sistemi özelliklerini genişletmek için Android kimlikleri (AID'ler) mekanizmasında yapılan güncellemeleri içerir.
Ayrıcalıklı uygulama izinlerini beyaz listeye ekleme
Android 9 ve sonraki sürümlerde reddedilmesi gereken izinler varsa XML'i, önceki sürümlerde kullanılan permission
etiketi yerine deny-permission
etiketini kullanacak şekilde düzenleyin.
Veri
Bant genişliği tahmini iyileştirmeleri
Android 9, bant genişliği tahmini için daha iyi destek sağlar. Android uygulamaları, mevcut veri bant genişliğine erişebiliyorsa görüntülü görüşmeler ve video yayını için daha uygun çözünürlük ayarları yapabilir.
Android 6.0 veya sonraki sürümlerin yüklü olduğu cihazlarda, hücresel ağ için bant genişliği tahmini isteyen bir arayanın yaptığı ConnectivityManager.requestBandwidthUpdate()
çağrılarında çerçeve, tahmini bir indirme bant genişliği sağlayabilir.
Ancak 9 veya sonraki sürümleri çalıştıran cihazlarda, tahmini bant genişliğinde önemli bir değişiklik olduğunda onCapabilitiesChanged()
geri çağırma işlevi otomatik olarak tetiklenir ve requestBandwidthUpdate()
çağrısı işlevsizdir; ilişkili getLinkDownstreamBandwidthKbps()
ve getLinkUpstreamBandwidthKbps()
, fiziksel katman tarafından sağlanan güncel bilgilerle doldurulur.
Ayrıca cihazlar, ServiceState.getCellBandwidths()
aracılığıyla LTE hücre bant genişliklerini kontrol edebilir.
Bu sayede uygulamalar, belirli bir hücrede ne kadar bant genişliğinin (sıklığın) kullanılabileceğini belirleyebilir. Saha test kullanıcılarının en güncel bilgileri kontrol edebilmesi için hücre bant genişliği bilgileri gizli bir menüden kullanılabilir.
eBPF trafik izleme
eBPF ağ trafiği aracı, cihazın son başlatılmasından bu yana cihazdaki ağ kullanımını izlemek için çekirdek ve kullanıcı alanı uygulamalarının bir kombinasyonunu kullanır. Bu araç, cihaz durumuna bağlı olarak uygulamaların ağa erişimini engellemek için soket etiketleme, ön plan/arka plan trafiğini ayırma ve UID başına güvenlik duvarı gibi ek işlevler sağlar.
Daha düşük API'lere geri yükleme
Cihazlar artık işletim sisteminin gelecekteki sürümlerinden geri yükleme yapabilir. Bu özellik, özellikle kullanıcılar telefonlarını yeniledikten sonra telefonlarını kaybederse veya bozarsa kullanışlıdır.
Bir OEM, sistem paketlerinden herhangi biri (android, sistem, ayarlar) için yedekleme aracılarını değiştirirse bu aracılar, platformun daha yüksek sürümlerinde oluşturulan yedekleme gruplarını kilitlenme olmadan ve en azından bazı verileri geri yükleyecek şekilde geri yüklemelidir.
Belirli bir yedek veri parçasındaki geçersiz değerleri kontrol etmek ve yalnızca geçerli verileri geri yüklemek için bir doğrulayıcı kullanmayı düşünün (core/java/android/provider/SettingsValidators.java
'te olduğu gibi).
Bu özellik varsayılan olarak etkindir. Gelecek sürümlerden geri yükleme için SettingsBackupAgent desteği, Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION
üzerinden devre dışı bırakılabilir. Cihaz üreticisi, ROM'a dahil edilen yedekleme aracılarından birini genişletmediği (veya özel bir aracı eklemediği) sürece ek uygulama gerekmez.
Bu özellik, platformun gelecekteki sürümlerinden sistem geri yüklemelerine olanak tanır. Ancak geri yüklenen verilerin eksik olması normaldir. Aşağıdaki talimatlar aşağıdaki yedekleme aracıları için geçerlidir:
PackageManagerBackupAgent, biçim sürümlendirmesi aracılığıyla yedek verilerin gelecekteki sürümlerini destekler. Buradaki uzantılar, mevcut geri yükleme koduyla uyumlu olmalıdır veya sınıftaki talimatları (doğru sabitleri artırma dahil) izlemelidir.
SystemBackupAgent, Android 9 ve sonraki sürümlerde
restoreAnyVersion = false
değerini belirtir. API'nin daha yüksek sürümlerinden geri yükleme desteklenmez.SettingsBackupAgent, Android 9 ve sonraki sürümlerde
restoreAnyVersion = true
değerini belirtir. Doğrulayıcılar aracılığıyla kısmi destek mevcuttur. Hedef işletim sisteminde ilgili ayarın doğrulayıcısı varsa ayar daha yüksek bir API sürümünden geri yüklenebilir. Eklenen her ayar, doğrulayıcısıyla birlikte gönderilmelidir. Ayrıntılar için sınıfı kontrol edin.ROM'a dahil edilen tüm özel yedekleme aracıları, yedek veri biçiminde uyumsuz bir değişiklik yapıldığında sürüm kodunu artırmalı ve aracıları, kodlarının gelecekteki bir sürümünden gelen yedek verileriyle işlem yapmaya hazır değilse
restoreAnyVersion = false
(varsayılan) değerini kullanmalıdır.
Kurumsal
Yönetilen profil iyileştirmeleri
Yönetilen profiller için yapılan kullanıcı deneyimi değişiklikleri, kullanıcıların yönetilen profili tanımlamasını, erişmesini ve kontrol etmesini kolaylaştırır.
OTA'ları duraklatma
Yeni @SystemApi, cihaz sahiplerinin güvenlik güncellemeleri de dahil olmak üzere OTA güncellemelerini süresiz olarak duraklatmasına olanak tanır.
Performans
Sağlık 2.0
Android 9 ve sonraki sürümler, health@1.0 HAL'den büyük bir sürüm yükseltmesi olan android.hardware.health
HAL 2.0'ı içerir. Daha fazla bilgi için şu sayfalara göz atın:
APK önbelleğe alma çözümü
Android 9 ve sonraki sürümler, A/B bölümlerini destekleyen bir cihaza önceden yüklenmiş uygulamaların hızlı bir şekilde yüklenmesi için bir APK önbelleğe alma çözümü içerir. OEM'ler, kullanıcılara yönelik veri alanını etkilemeden yeni A/B bölümlendirilmiş cihazlarda çoğunlukla boş B bölümünde depolanan APK önbelleğine önceden yüklenmiş uygulamaları ve popüler uygulamaları yerleştirebilir.
Profil odaklı optimizasyon
Android 9 ve sonraki sürümler, plan oluşturma kurallarına sahip yerel Android modüllerinde Clang'ın profil odaklı optimizasyonunu (PGO) kullanmayı destekler.
Yazma öncesi günlük kaydı
Uyumluluk önceden yazma günlüğü (WAL) adlı SQLiteDatabase'nin özel modu, veritabanı başına en fazla bir bağlantı korurken veritabanının journal_mode=WAL
kullanmasına olanak tanır.
Başlatma süreleri
Android 9, Başlatma sürelerini optimize etme bölümünde açıklandığı şekilde başlatma süresi optimizasyonunu değiştirir.
Güç
Arka plan kısıtlamaları
Android 9 ve sonraki sürümler, kullanıcıların pil gücünü tüketebilecek uygulamaları kısıtlamasına olanak tanıyan arka plan kısıtlamaları içerir. Sistem, cihazın sağlığını olumsuz yönde etkileyen uygulamaları devre dışı bırakmanızı da önerebilir.
Pilsiz cihazlar
Android 9, pilsiz cihazları önceki sürümlere kıyasla daha şık bir şekilde yönetir. Android 9, varsayılan olarak pilin mevcut olduğunu, %100 şarjlı olduğunu ve termistöründe normal bir sıcaklık ölçümü olduğunu varsayan, pilsiz cihazların kodunu kaldırır.