Bu sayfada, Android 9 sürümündeki başlıca özellikler özetlenmekte ve ek bilgilere yönelik bağlantılar verilmektedir. Bu özellik özetleri, özelliğin bu sitedeki doküman konumuna göre düzenlenir. Bölüm taşıma ve yeniden adlandırma ile ilgili kılavuz için Ağustos 2018 site güncellemeleri başlıklı makaleye bakın.
Derle
Genel sistem görüntüsü (GSI)
Genel sistem görüntüsü (GSI), Android cihazlar için yapılandırmaları ayarlanmış 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 farklarla ilgili ayrıntıları içerir.
Mimari
Donanım soyutlama katmanı (HAL)
HIDL çerçevesinin geriye dönük uyumluluğu
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ılabilen HAL'ler
Dinamik olarak kullanılabilen HAL'ler, Android donanım alt sistemlerinin kullanılmadığı veya gerekmediği durumlarda dinamik olarak kapatılmasını destekler.
HIDL
HIDL MemoryBlock
HIDL MemoryBlock, hidl_memory
, HIDL @1.0::IAllocator
ve HIDL @1.0::IMapper
üzerinde oluşturulmuş soyut bir katmandır. Tek bir bellek yığını paylaşan birden fazla bellek bloğuna sahip 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ı tablosu başlığının 1. sürümü kullanılırken cihaz ağacı blob kaplaması (DTBO) görüntüsünde sıkıştırılmış kaplamalar desteklenir.
DTO güncellemeleri
Android 9 ve sonraki sürümlerde, önyükleyicinin cihaz ağacı katmanlarında (DTO'lar) tanımlanan özellikleri değiştirmeden önce birleştirilmiş cihaz ağacı blob'unu çekirdeğe iletmesi gerekir.
DTBO görüntüsü başlık sürümü oluşturma
Android 9 ve sonraki sürümlerde DTBO resim başlığında sürüm alanı bulunur.
DTBO doğrulama
Android 9 ve sonraki sürümlerde DTBO bölümü gerekir. SoC DT'ye düğüm eklemek veya özelliklerde değişiklik yapmak için önyükleyicinin, SoC DT'nin üzerine cihaza özel bir DT'yi dinamik olarak yerleştirmesi gerekir. Daha fazla bilgi için Derleme ve Doğrulama başlıklı makaleyi inceleyin.
Çekirdek uyumluluğu
Android 9 ve sonraki sürümlerde, çekirdeği, arayüzlerini ve DTBO'ların kullanımını etkileyen şartlar bulunur. Daha fazla bilgi için şu sayfalara bakın:
- Kararlı çekirdek sürümleri ve güncellemeleri
- Android Common Kernels
- Modüler çekirdek koşulları
- Arayüz Şartları
- Cihaz Ağacı Katmanları
Tedarikçi NDK'sı
Tasarım değişiklikleri
Android 9 ve sonraki sürümlerdeki VNDK tasarım değişiklikleri hakkında bilgi için aşağıdaki sayfaları inceleyin:
- Satıcı Yerel Geliştirme Seti (VNDK)
- VNDK Derleme Sistemi Desteği
- VNDK Definition Tool
- 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 arabirimi (ABI) denetleyicisi açıklanmaktadır.
VNDK anlık görüntüleri
Bir sistem görüntüsü, sistem ve satıcı görüntüleri farklı Android sürümlerinden oluşturulsa bile satıcı görüntülerine doğru VNDK kitaplıklarını sağlamak için VNDK anlık görüntülerini kullanabilir.
Tedarikçi 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ğini sonlandırma planı
Aşağıdaki sayfalarda, Android'in HIDL HAL'leri nasıl kullanımdan kaldırdığı ve kaldırdığı açıklanmaktadır:
Bootloader
Ürün bölümleri
Android 9 ve sonraki sürümlerde, Android derleme sistemi kullanılarak /product
bölümleri oluşturulması desteklenir. Daha önce Android 8.x, yonga üzerinde sistem (SoC) özel bileşenlerinin /system
bölümünden /vendor
bölümüne ayrılmasını zorunlu kılıyordu. Bu işlem, Android derleme sisteminden oluşturulan OEM'e özel bileşenler için alan ayırmadan yapılıyordu.
Standart başlatma nedeni uygunluğu
Canonical Boot Reason (Standart Önyükleme Nedeni) sayfasında, Android 9 ve sonraki sürümlerde önyükleyici önyükleme nedeni spesifikasyonunda yapılan değişiklikler açıklanmaktadır.
Sistemi kök olarak
Android 9 ve sonraki sürümlerle kullanıma sunulan tüm cihazlar, ramdisk.img
ile system.img
'ü birleştiren system-as-root'u (no-ramdisk olarak da bilinir) kullanmalıdır. Bu da rootfs olarak monte edilir.
Başlatma görüntüsü başlığı sürüm oluşturma
Android 9 ve sonraki sürümlerde, önyükleme görüntüsü başlığı başlık sürümünü belirten bir alan içerir. Önyükleyici bu sürüm alanını kontrol etmeli ve başlığı buna göre ayrıştırmalıdır.
Kurtarma modunda DTBO
A/B olmayan cihazlarda kurtarma görüntüsü ile DTBO bölümü arasındaki uyuşmazlıklar nedeniyle OTA hatalarını önlemek için kurtarma görüntüsünde DTBO görüntüsündeki bilgiler bulunmalıdır.
Ekran
Ekran kesimleri
Ekran kesikleri, uygulama geliştiricilerin cihazların ön tarafındaki önemli sensörler için yer bırakırken aynı zamanda sürükleyici ve uçtan uca deneyimler oluşturmasına olanak tanır.
Döndürme önerileri
Ekran döndürme davranışıyla ilgili güncellemeler Android 9 ve sonraki sürümlerde, cihazın konumu değişse bile ekran döndürmeyi yatay veya dikey olarak sabitlemek için kullanıcıya yönelik bir kontrol desteği bulunur.
Senkronize uygulama geçişleri
Senkronize uygulama geçişleri yeni uygulama geçiş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ı için önerilen yöntem olan Text Classifier hizmeti ve varsayılan hizmet uygulaması bulunur.
Geniş renk gamı
Android 9 ve sonraki sürümlerde aşağıdakiler de dahil olmak üzere geniş renk gamı desteği bulunur:
- Yüksek dinamik aralık (HDR)
- BT2020 renk alanındaki içeriği işleme ancak son hedef veri alanı olarak değil
Geniş renk gamını kullanmak için cihazın tam ekran yığını (ör. ekran, donanım birleştirici, GPU) geniş renk gamını veya arabellek biçimlerini desteklemelidir. Donanım desteklese bile cihazların geniş gamlı içerik desteği talep etmesi gerekmez. Ancak donanımdan tam olarak yararlanmak için geniş gam renk etkinleştirilmelidir. Tutarsız bir görsel deneyim yaşanmaması için geniş gam renk, çalışma zamanında devre dışı bırakılmamalıdır.
Uyumluluk
Android Uyumluluk Tanımlama Belgesi
Android 9 Uyumluluk Tanımı Belgesi (CDD), yeni özelliklerle ilgili güncellemeler ve daha önce yayınlanan işlevlerin şartlarında yapılan değişikliklerle önceki sürümleri tekrarlar.
Ayarlar
Daha iyi uygulama widget'ları
Android uygulama widget'ı çerçevesi, kullanıcı etkileşimleri konusunda daha fazla görünürlük sunar. Bu durum, özellikle kullanıcıların widget'ları sildiği veya manuel olarak eklediği zamanlarda geçerlidir. Bu işlev, Launcher3'te varsayılan olarak bulunur.
Üreticilerin, Launcher3'e dayanmıyorsa bu özelliği desteklemek için başlatıcı uygulamalarını (cihazlarla birlikte gönderilen) güncellemeleri gerekir. OEM'lerin varsayılan başlatıcılarında yeni widgetFeatures alanı 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'ya bakın.
Paket yükleyicilere yönelik 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 manifestte kaydedilebilir ve yayını almak için bir işlem başlatılır. Bu, yapılandırma değişiklikleri nadir olduğundan ve bu yayını tetiklemeye uygun yapılandırma değişiklikleri nadir olduğundan, bu tür değişiklikler üzerine uygulamaların ek bileşenlerini yüklemek isteyen paket yükleyiciler için kullanışlıdır.
Cihaz durumu değişikliği bildiriminin 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. Bu sayede, 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ı büyük ölçüde hızlandırılı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 kaynaklı ağaçtaki android-cts-9.0_r1
etiketiyle senkronize edilebilir.
CTS seçenekleri
Android 9'da CTS v2, aşağıdaki komut 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
, bir CTS çalıştırmasını belirli sayıda bağımsız parçaya ayırır ve bu parçalar birden fazla cihazda paralel olarak çalıştırılır.
Ayrıca, daha önce belgelenmemiş olan --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 tarafından desteklenen 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ü Test Paketi'ndeki (Camera ITS) sensör füzyon testi 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 testinin ve sensör füzyon kutusunun ilk kez kurulmasıyla ilgili adımları içerir.
- Sensor Fusion Box Assembly (Sensör Füzyon Kutusu Montajı), sensör füzyon kutusu montajıyla ilgili adımları sağlar.
Geniş görüş alanına sahip ITS-in-a-box
Geniş görüş alanına sahip ITS-in-a-box, Camera ITS'deki hem geniş görüş alanına (WFoV) hem de normal görüş alanına (RFoV) sahip kamera sistemlerini test etmek için tasarlanmış otomatik bir sistemdir.
Tedarikçi Test Paketi
Ana denetleyici mimarisi
Vendor Test Suite (VTS) ana makine denetleyicisi mimarisi, VTS test çerçevesinin bulut tabanlı test sunma hizmetiyle entegre edilmiş mimarisidir.
Hizmet adına duyarlı Donanım Soyutlama Katmanı testi
VTS hizmet adı farkında HAL testi, VTS testlerinin çalıştırıldığı cihaza göre belirli bir HAL örneğinin hizmet adını almayı destekler.
HAL test edilebilirliği kontrolü
VTS HAL test edilebilirliği kontrolü, cihaz yapılandırmasını kullanarak hangi VTS testlerinin bu cihaz hedefi için atlanması gerektiğini belirlemeye 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ğı cihazlarında 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 bilgilerinin otomatik olarak toplanması işlemidir. Android'in önceki sürümlerinde telemetri yığını sınırlıydı ve sistem güvenilirliği ile cihaz veya uygulama sorunlarını belirleyip çözmek için gereken bilgileri yakalamıyordu. Bu durum, sorunların temel nedenlerini belirlemeyi zorlaştırdı, hatta imkansız hale getirdi.
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 cihazdan ve yöntemden bağımsız bir şekilde entegre etmek için kullanabileceği herkese açık sınıfı
BiometricPrompt
içerir. Biyometri yığını entegrasyonu hakkında daha fazla bilgi için BiometricPrompt
bölümüne bakın.Biyometri
Dinamik analiz
Android 9, daha fazla istismar azaltma ve analiz aracı için destek içerir.
Kontrol akışı bütünlüğü (CFI)
Denetim akışı bütünlüğü (CFI), derlenmiş bir ikilinin orijinal denetim akışı grafiğinde değişiklik yapılmasını yasaklayan bir güvenlik mekanizmasıdır. Bu mekanizma, bu tür saldırıların gerçekleştirilmesini önemli ölçüde zorlaştırır.
Kernel CFI
Varsayılan olarak etkinleştirilen sistem CFI'ya ek olarak Android 9 ve sonraki sürümlerde çekirdek kontrol akışı bütünlüğü (CFI) desteği de bulunur.
Şifreleme
Dosya tabanlı şifreleme
Dosya tabanlı şifreleme (FBE), benimsenen depolama alanı ile çalışacak şekilde güncellendi. Yeni cihazlarda tam disk şifreleme yerine dosya tabanlı şifreleme kullanılmalıdır.
Meta veri şifreleme
Android 9 ve sonraki sürümlerde, donanım desteğinin olduğu durumlarda meta veri şifreleme desteği bulunur. Meta veri şifrelemede, başlatma 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 Keymaster 4 bulunur. Bu sürümde aşağıdaki özellikler yer alır.
StrongBox
Android 9 ve sonraki sürümlerde, yüksek güvenlikli uygulamalar için özel olarak tasarlanmış ve fiziksel olarak ayrı bir CPU'da depolanıp kullanılan Android Keystore anahtarları desteklenir. Bu anahtarlar, yerleşik bir güvenli öğe (SE) gibi uygulamalarda kullanılır. StrongBox Keymaster, Keymaster HAL'nin ayrı güvenli donanımda uygulanmasıdır. StrongBox'ta şunlar bulunur:
- Ayrı CPU
- Entegre güvenli depolama alanı
- Yüksek kaliteli gerçek rastgele sayı üreteci
- Müdahaleye karşı korumalı ambalaj
- Yan kanal direnci
Güvenli anahtar içe aktarma
Cihaz dışında oluşturulan bir anahtar, Keymaster 4'e güvenli bir şekilde aktarılmak için anahtarın nasıl kullanılabileceğini tanımlayan yetkilendirmelerin 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ı yama düzeylerine sahip olacak şekilde değiştirdi. Bu sayede, geri alma koruması sağlanmaya devam ederken her bölüm bağımsız olarak güncellenebilir.
Android Protected Confirmation API
Android 9 yüklü olarak piyasaya sürülen 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ğini kullanabilir. Bu ifade, uygulamanın kullanıcının ödeme yapma gibi hassas bir işlemi tamamlamak istediğini yeniden onaylamasına olanak tanır.
SELinux
Uygulama başına SELinux korumalı alanı
Uygulama korumalı alanı, Android 9 ve sonraki sürümleri hedefleyen tüm ayrıcalıklı olmayan uygulamaların ayrı SELinux korumalı alanlarında çalışmasını sağlamak için yeni korumalar ve test senaryoları içerir.
Treble SELinux değişiklikleri
Android 9 ve sonraki sürümlerdeki Treble SELinux güncellemeleri, SELinux bölümündeki çeşitli sayfalarda belgelenmiştir.
Tedarikçi başlatma
Vendor init, satıcıya özgü izinlerle /vendor
komutlarını çalıştırmak için ayrı bir SELinux alanı kullanarak Treble sistemindeki/satıcıdaki bölünme sorununu giderir.
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 biçiminden float biçimine dönüştürülmesi, eşzamanlı istemci çıkış parçaları, maksimum istemci/sunucu belleği ve toplam mikslenmiş parçalarda artışlar yer alıyor.
Kamera
Harici USB kameralar
Android 9 ve sonraki sürümlerde, standart Android Camera2 API ve kamera HIDL arayüzü kullanılarak tak ve çalıştır USB kameralar (ör. web kameraları) desteklenir.
Hareket izleme
Kamera cihazları, hareket izleme özelliğinin reklamını yapabilir.
Çoklu kamera desteği
Çoklu kamera desteği, aynı yöne bakan iki veya daha fazla fiziksel kamera cihazından oluşan yeni bir mantıksal kamera cihazı aracılığıyla çoklu kamera cihazları için API desteği içerir.
Oturum parametreleri
Oturum parametrelerinin uygulanması, kamera istemcilerinin pahalı istek parametrelerinin bir alt kümesini yakalama oturumu başlatma aşamasının bir parçası olarak etkin bir şekilde yapılandırmasına olanak tanıyarak gecikmeleri azaltabilir.
Tek üretici, çoklu tüketici arabelleği
Tek üretici, çok tüketici kamera arabelleği aktarımı yakalama oturumu etkin ve kamera yayını devam ederken kamera istemcilerinin çıkış yüzeylerini dinamik olarak ekleyip kaldırmasına olanak tanıyan bir yöntemler kümesidir.
Bağlantı
Arama ve mesajlaşma
Veri planlarını uygulama
Android 9 ve sonraki sürümlerde, veri planları uygulayan operatörler için SubscriptionPlan API'leri kullanılarak daha iyi destek sağlanır.
Üçüncü taraf görüşme uygulamaları
Android 9 ve sonraki sürümlerde, üçüncü taraf (3P) arama uygulamalarının aynı anda gelen operatör aramalarını işlemesine ve aramaların sistem arama kaydına kaydedilmesine olanak tanıyan API'ler bulunur.
Operatör
Operatör kimliği
Android 9'da AOSP, operatör tanımlamasına yardımcı olmak için bir operatör kimliği veritabanı ekler. Veritabanı, operatörleri tanımlamak için ortak bir yol sağlayarak yinelenen mantığı ve parçalanmış 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 hizmetini etkinleştirmesine olanak tanıyan en yeni 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) ile ilgili kullanıcı ayarlarında iyileştirmeler yapılmıştır. Bu ayarları tüm aboneliklerde paylaşmak yerine abonelik bazında LTE üzerinden ses (VoLTE), görüntülü görüşme ve kablosuz ağ üzerinden görüşme özelliklerini ayarlayabilirsiniz.
SIM durumu yayınları
Android 9 ve sonraki sürümlerde Intent.ACTION_SIM_STATE_CHANGED
kullanımdan kaldırıldı. Kart durumu ve kart uygulama durumu için iki ayrı yayın eklendi: TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED
ve TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED
.
Bu değişikliklerle birlikte, yalnızca 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 ise kart durumundaki değişiklikleri dinlemesi gerekmez.
İki yeni yayın @SystemApis'tir ve sabitlenmez. Yalnızca READ_PRIVILEGED_PHONE_STATE
iznine sahip alıcılar yayınları alabilir.
Cihazın kilidini açtığınızda amaçlar yeniden yayınlanmaz. Kilidi açmadan önce gönderilen yayınlara bağlı olan alıcılar directBootAware
kullanmalı veya kullanıcı kilidi açtıktan sonra durumu sorgulamalıdır. Durumlar, TelephonyManager'daki ilgili API'ler kullanılarak sorgulanabilir: getSimCardState()
vegetSimApplicationState()
.
Kablosuz bağlantı
Operatör kablosuz ağı
Operatör kablosuz ağı özelliği, cihazların operatör tarafından uygulanan kablosuz ağlara otomatik olarak bağlanmasına olanak tanır. Stadyum veya yer altı tren istasyonu gibi yüksek trafikli ya da hücresel kapsama alanının sınırlı olduğu yerlerde operatörün kablosuz ağı, bağlantıyı iyileştirmeye ve trafiği azaltmaya yardımcı olur.
MAC rastgele seçimi
MAC rastgele hale getirme, cihazların şu anda bir ağla ilişkilendirilmemişken yeni ağları araştırırken rastgele MAC adresleri kullanmasına olanak tanır. Android 9 ve sonraki sürümlerde, bir geliştirici seçeneği etkinleştirilerek cihazın kablosuz ağa bağlanırken rastgele MAC adresi kullanması sağlanabilir.
Kablosuz ağı otomatik olarak aç
Kablosuz özelliğini otomatik olarak açma özelliği etkinleştirildiğinde, cihaz yeterince yüksek bir göreceli alınan sinyal gücü göstergesine (RSSI) sahip kayıtlı bir kablosuz ağın yakınındayken kablosuz özelliği otomatik olarak yeniden etkinleştirilir.
Kablosuz ağ gidiş dönüş süresi
Kablosuz gidiş dönüş süresi (RTT), cihazların erişim noktaları (AP'ler) veya Kablosuz Aware eşleri (cihazda Kablosuz Aware destekleniyorsa) gibi diğer destekleyici cihazlara olan mesafeyi ölçmesine olanak tanır. Bu özellik, IEEE 802.11mc protokolü üzerine kurulmuştur ve uygulamaların gelişmiş konum doğruluğu ve farkındalığından yararlanmasını sağlar.
Kablosuz puanlama iyileştirmeleri
Geliştirilmiş kablosuz puanlama modelleri, bir cihazın bağlı kablosuz ağdan ne zaman çıkması veya yeni bir kablosuz ağa ne zaman girmesi gerektiğini hızlı ve doğru bir şekilde belirler. Bu modeller, bağlantıdaki boşlukları önleyerek kullanıcılar için güvenilir ve sorunsuz bir deneyim sunar.
config.xml
kaynaklarındaki RSSI değerlerini inceleyin ve ayarlayın. Özellikle aşağıdakilere dikkat edin:
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
Wi-Fi STA/AP eşzamanlılığı
Wi-Fi STA/AP eşzamanlılığı, cihazların istasyon (STA) ve erişim noktası (AP) modlarında eşzamanlı olarak çalışabilme özelliğidir. Çift bantlı eşzamanlı (DBS) kablosuz bağlantıyı destekleyen cihazlarda bu, kullanıcının hotspot'u (SoftAP) etkinleştirmek istediğinde STA kablosuz bağlantısını kesmeme gibi özelliklerin kullanılabilmesini sağlar.
WiFiStateMachine iyileştirmeleri
WifiStateMachine
, kablosuz bağlantı etkinliğini kontrol etmek, kullanıcı girişini koordine etmek (işletim 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, Wi-Fi çerçeve kodu ve WifiStateMachine
uygulaması yeniden yapılandırıldı. Bu sayede kod boyutu küçüldü, Wi-Fi kontrol mantığı daha kolay takip edilebilir hale geldi, kontrol ayrıntı düzeyi iyileştirildi ve birim testlerinin kapsamı ile kalitesi arttı.
Özet olarak,WifiStateMachine
, Wi-Fi'nin dört durumdan birinde olmasına olanak tanır:
- İstemci modu (bağlanabilir ve tarayabilir)
- Yalnızca tarama modu
- SoftAP modu (kablosuz hotspot)
- Devre dışı (Kablosuz tamamen kapalı)
Her kablosuz modun hizmetleri çalıştırmak için farklı gereksinimleri vardır ve yalnızca kendi çalışmasıyla ilgili etkinlikleri işleyerek tutarlı bir şekilde ayarlanmalıdır. Yeni uygulama, kodu bu modla ilgili etkinliklerle kısıtlayarak hata ayıklama süresini ve karmaşıklık nedeniyle yeni hatalar ortaya çıkma riskini azaltır. Mod işlevselliği için açık işleme ek olarak, iş parçacığı yönetimi tutarlı bir şekilde ele alınır ve eşzamansız kanalların senkronizasyon mekanizması olarak kullanılması 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 > Kablosuz kontrolü bölümündeki ayarlar sayfasında herhangi bir uygulamanın iznini devre dışı bırakabilirsiniz.
Uygulamalar, CHANGE_WIFI_STATE
izninin verilmediği durumları yönetebilmelidir.
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 kontrolü'ne gidin.
- Uygulamanızın iznini seçip devre dışı bırakın.
- Uygulamanızın,
CHANGE_WIFI_STATE
iznin verilmediği senaryoyu işleyebildiğini doğrulayın.
WPS desteğinin sonlandırılması
Güvenlik sorunları nedeniyle WiFiManager
'daki 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 supplicant'ta WPS'yi kullanmaya devam eder.
Grafik
Uygulama
Vulkan 1.1 API
Android 9 ve sonraki sürümlerde Vulkan 1.1 grafik API'si uygulanabilir.
Pencere geçişi izleme için WinScope aracı
Android 9 ve sonraki sürümlerde, pencere geçişlerini izlemek için WinScope aracı bulunur. WinScope, geçişler sırasında ve sonrasında pencere yöneticisi durumunu kaydetmek ve 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 kaydetmeye ve adım adım ilerlemeye olanak tanır. Bu verileri, geçişi yeniden oynatmak ve adım adım incelemek için kullanabilirsiniz.
WinScope aracının kaynak kodu platform/development/tools/winscope
konumundadır.
Etkileşim
Otomotiv ses sistemleri
Automotive Audio, otomotivle ilgili Android uygulamalarının ses mimarisini açıklar.
Neural Networks (NN) HAL, çeşitli hızlandırıcıların soyutlamasını tanımlar. Bu hızlandırıcıların sürücüleri bu HAL'ye uygun olmalıdır.
Araç HAL'si
Vehicle Properties (Araç Özellikleri), araç HAL arayüzündeki değişiklikleri açıklar.
GNSS uydu seçimi
Yeni küresel navigasyon uydu sistemi (GNSS) HAL'leri (v1.1+) ile çalışırken Android Framework, Android ayarlarını izler. İş ortakları, ayarları Google Play Hizmetleri'nden veya diğer sistem güncellemelerinden değiştirebilir. Bu ayarlar, belirli GNSS uydularının kullanılmaması gerektiğini GNSS HAL'ye bildirir. Bu, kalıcı GNSS uydu veya takımyıldızı hataları durumunda ya da farklı zaman sistemleri ve artık saniye, gün veya hafta numarası gibi harici olaylar 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 sürüm 1.1 veya sonraki sürümler, donanım API'si hakkındaki bilgileri platforma iletebilir. Platformun IGnssCallback
arayüzünü uygulaması ve HAL'ye bir işleyici 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 Kontrolü'nü (DAC) yapılandırma dosya sistemi özelliklerini genişletmek için Android kimlikleri (AID) 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 önceki sürümlerde kullanılan permission
etiketi yerine deny-permission
etiketini kullanmak için XML'yi düzenleyin.
Veri
Bant genişliği tahminiyle ilgili iyileştirmeler
Android 9, bant genişliği tahmini için daha iyi destek sağlar. Android uygulamaları, kullanılabilir veri bant genişliğine erişebiliyorsa görüntülü görüşmeler ve video akışı 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 ConnectivityManager.requestBandwidthUpdate()
'ı aradığında çerçeve tahmini bir bağlantı indirme bant genişliği sağlayabilir.
Ancak 9 veya daha yüksek sürümlü cihazlarda, tahmini bant genişliğinde önemli bir değişiklik olduğunda onCapabilitiesChanged()
geri çağırma otomatik olarak tetiklenir ve requestBandwidthUpdate()
çağrısı işlem yapmaz. İlişkili getLinkDownstreamBandwidthKbps()
ve getLinkUpstreamBandwidthKbps()
, fiziksel katman tarafından sağlanan güncellenmiş bilgilerle doldurulur.
Ayrıca cihazlar, ServiceState.getCellBandwidths()
aracılığıyla LTE hücresi bant genişliklerini kontrol edebilir.
Bu, uygulamaların belirli bir hücrede ne kadar bant genişliği (frekans) olduğunu belirlemesine olanak tanır. Alan test kullanıcılarının en güncel bilgileri kontrol edebilmesi için hücresel bant genişliği bilgileri gizli bir menüde yer alır.
eBPF trafik izleme
eBPF ağ trafiği aracı, cihazın son yeniden başlatılmasından bu yana cihazdaki ağ kullanımını izlemek için çekirdek ve kullanıcı alanı uygulamasının bir kombinasyonunu kullanır. Bu araç; soket etiketleme, ön plan/arka plan trafiğini ayırma ve uygulamaların cihaz durumuna bağlı olarak ağ erişimini engellemek için UID başına güvenlik duvarı gibi ek işlevler sunar.
Daha düşük API'lere geri yükleme
Cihazlar artık işletim sisteminin gelecekteki sürümlerinden geri yüklenebilir. Bu özellik, özellikle telefonlarını yükselttikten sonra kaybeden veya kıran kullanıcılar için yararlıdır.
Bir OEM, sistem paketlerinden (android, system, settings) herhangi birinin yedekleme aracısını değiştirirse bu aracılar, platformun daha yüksek sürümlerinde oluşturulan yedekleme kümelerini kilitlenmeden ve en azından bazı verileri geri yükleyerek işlemelidir.
Belirli bir yedekleme verisi parçasının geçersiz değerlerini kontrol etmek için doğrulayıcı kullanmayı ve yalnızca geçerli verileri geri yüklemeyi düşünebilirsiniz. Örneğin, core/java/android/provider/SettingsValidators.java
.
Bu özellik varsayılan olarak etkindir. Gelecekteki 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'da bulunan yedekleme aracılarından birini genişletmediği (veya özel bir aracı eklemediği) sürece ek bir uygulama gerekmez.
Bu özellik, platformun gelecekteki sürümlerinden sistem geri yüklemelerine olanak tanır ancak geri yüklenen verilerin eksiksiz olmaması beklenir. Aşağıdaki talimatlar, aşağıdaki yedekleme aracıları için geçerlidir:
PackageManagerBackupAgent, biçim sürümü oluşturma yoluyla yedekleme verilerinin gelecekteki sürümlerini destekler. Buradaki uzantılar, mevcut geri yükleme koduyla uyumlu olmalı veya uygun sabitleri artırmayı içeren sınıftaki talimatlara uymalıdır.
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 sağlanır. Hedef işletim sisteminde doğrulayıcısı varsa bir ayar daha yüksek bir API sürümünden geri yüklenebilir. Eklenen her ayarla birlikte doğrulayıcısı da eklenmelidir. Ayrıntılar için sınıfı kontrol edin.ROM'da bulunan tüm özel yedekleme aracıları, yedekleme 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ündeki yedekleme verileriyle başa çıkmaya hazır değilse
restoreAnyVersion = false
(varsayılan) değerini kullanmalıdır.
Kurumsal
Yönetilen profillerle ilgili iyileştirmeler
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 bir @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ümlerde, health@1.0 HAL'den önemli bir sürüm yükseltmesi olan android.hardware.health
HAL 2.0 bulunur. Daha fazla bilgi için şu sayfalara bakın:
APK önbelleğe alma çözümü
Android 9 ve sonraki sürümlerde, A/B bölümlerini destekleyen bir cihaza önceden yüklenmiş uygulamaların hızlı bir şekilde yüklenmesi için APK önbelleğe alma çözümü bulunur. OEM'ler, yeni A/B bölümlü cihazlarda çoğunlukla boş B bölümünde depolanan APK önbelleğine önceden yüklenmiş yazılımlar ve popüler uygulamalar yerleştirebilir. Bu işlem, kullanıcıya yönelik veri alanını etkilemez.
Profile dayalı optimizasyon
Android 9 ve sonraki sürümlerde, plan oluşturma derleme kurallarına sahip yerel Android modüllerinde Clang'in profile-guided optimization (PGO) özelliği desteklenir.
Yazma öncesi günlük kaydı
SQLiteDatabase'in uyumluluk için önceden yazma günlük kaydı (WAL) adlı özel bir modu, veritabanının journal_mode=WAL
kullanmasına olanak tanırken veritabanı başına en fazla bir bağlantı tutar.
Başlatma süreleri
Android 9, Başlatma Sürelerini Optimize Etme bölümünde açıklandığı gibi başlatma süresi optimizasyonunu değiştirir.
Güç
Arka plan kısıtlamaları
Android 9 ve sonraki sürümlerde, kullanıcıların pil gücünü tüketebilecek uygulamaları kısıtlamasına olanak tanıyan arka plan kısıtlamaları bulunur. Sistem, cihazın sağlığını olumsuz etkileyen uygulamaların devre dışı bırakılmasını da önerebilir.
Bataryasız cihazlar
Android 9, pilsiz cihazları önceki sürümlere göre daha iyi yönetir. Android 9, varsayılan olarak pilin mevcut, %100 şarjlı ve iyi durumda olduğunu ve termistöründe normal bir sıcaklık okuması olduğunu varsayan pilsiz cihazlar için kodu kaldırır.