Android 9 sürüm notları

Bu sayfada Android 9 sürümündeki başlıca özellikler özetlenir ve ek bilgilere bağlantılar sağlanır. Bu özellik özetleri, özelliğin bu sitedeki dokümantasyon konumuna göre düzenlenmiştir. Bölüm taşıma ve yeniden adlandırma kılavuzu için Ağustos 2018 site güncellemelerine bakın.

İnşa etmek

Genel sistem görüntüsü (GSI)

Genel sistem görüntüsü (GSI), Android cihazlar için ayarlanmış yapılandırmalara sahip bir sistem görüntüsüdür. Genel Sistem Görüntüsü (GSI), Android 9 ile başlatılan cihazlar ile Android 9'a yükseltilen cihazlar için GSI'lar arasındaki farklara ilişkin 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ğrulamaya yönelik bir yöntemdir.

Dinamik olarak kullanılabilen HAL'ler

Dinamik olarak kullanılabilen HAL'ler, kullanılmadığında veya ihtiyaç duyulmadığında Android donanım alt sistemlerinin dinamik olarak kapatılmasını destekler.

HIDL

HIDL Bellek Bloğu

HIDL MemoryBlock, hidl_memory , HIDL @1.0::IAllocator ve HIDL @1.0::IMapper üzerine kurulu soyut bir katmandır. Tek bir bellek yığınını paylaşan birden fazla bellek bloğuna sahip HIDL hizmetleri için tasarlanmıştır.

Cihaz ağacı katmanları

Sıkıştırılmış kaplamalar

Android 9 ve üzeri, cihaz ağacı tablo başlığının 1. sürümünü kullanırken cihaz ağacı blob katmanı (DTBO) görüntüsünde sıkıştırılmış kaplamalar için destek içerir.

DTO güncellemeleri

Android 9 ve üzeri, önyükleyicinin , cihaz ağacı kaplamalarında (DTO'lar) tanımlanan özellikleri değiştirmeden önce birleşik cihaz ağacı blobunu çekirdeğe geçirmesini gerektirir.

DTBO görüntü başlığı sürümü oluşturma

Android 9 ve üzeri, DTBO görüntü başlığında bir sürüm alanı içerir.

DTBO doğrulaması

Android 9 ve üzeri bir DTBO bölümü gerektirir. SoC DT'ye düğüm eklemek veya özelliklerde değişiklik yapmak için, önyükleyicinin SoC DT üzerine dinamik olarak cihaza özgü bir CE'yi yerleştirmesi gerekir. Daha fazla bilgi için bkz . Derleme ve Doğrulama .

Çekirdek uyumluluğu

Android 9 ve üzeri, çekirdeği, arayüzlerini ve DTBO'ların kullanımını etkileyen gereksinimleri içerir. Daha fazla bilgi için şu sayfalara bakın:

Satıcı NDK

Tasarım değişiklikleri

Android 9 ve sonraki sürümlerdeki VNDK tasarım değişiklikleri hakkında bilgi için şu sayfalara bakın:

ABI denetleyicisi

ABI Kararlılığı sayfası, VNDK kitaplıklarında yapılan değişikliklerin ABI uyumluluğunu sürdürmesini sağlayan uygulama ikili arabirimi (ABI) denetleyicisini açıklar.

VNDK anlık görüntüleri

Bir sistem görüntüsü, sistem ve satıcı görüntüleri Android'in farklı sürümlerinden oluşturulduğunda 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.

Satıcı arayüz nesnesi (VINTF nesnesi)

Satıcı Arayüzü Nesnesi bölümündeki aşağıdaki sayfalar Android 9 ve sonraki sürümlerdeki güncellemeleri açıklamaktadır:

HIDL kullanımdan kaldırma planı

Aşağıdaki sayfalarda Android'in HIDL HAL'leri nasıl kullanımdan kaldırdığı ve kaldırdığı açıklanmaktadır:

Önyükleyici

Ürün bölümleri

Android 9 ve üzeri, Android derleme sistemini kullanarak bina /product bölümleri oluşturmayı destekler. Daha önce Android 8.x, Android derleme sisteminden oluşturulan OEM'e özgü bileşenler için yer ayırmadan, çip üzerinde sisteme (SoC) özgü bileşenlerin /system bölümünden /vendor bölümüne ayrılmasını zorunlu kılıyordu.

Kanonik önyükleme nedeni uyumluluğu

Kurallı Önyükleme Nedeni sayfası, Android 9 ve sonraki sürümlerde önyükleyici önyükleme nedeni spesifikasyonunda yapılan değişiklikleri açıklar.

Kök olarak sistem

Android 9 ve sonraki sürümleriyle başlatılan tüm cihazların, ramdisk.img system.img (ramdisksiz olarak da bilinir) ile birleştiren ve daha sonra rootfs olarak bağlanan system-as-root kullanması gerekir.

Önyükleme görüntüsü üstbilgisi sürümü oluşturma

Android 9 ve üzeri sürümlerde, önyükleme görüntüsü üstbilgisi, başlık sürümünü belirten bir alan içerir. Önyükleyicinin bu sürüm alanını kontrol etmesi ve başlığı buna göre ayrıştırması gerekir.

DTBO iyileşme aşamasında

A/B olmayan cihazlarda kurtarma görüntüsü ile DTBO bölümü arasındaki uyumsuzluklardan kaynaklanan OTA hatalarını önlemek için kurtarma görüntüsünün DTBO görüntüsünden bilgi içermesi gerekir.

Görüntülemek

Kesikleri göster

Ekran kesikleri, uygulama geliştiricilerin sürükleyici, uçtan uca deneyimler oluşturmasına olanak tanırken, cihazların ön kısmında önemli sensörler için alan bırakmaya devam ediyor.

Önerileri döndür

Android 9 ve sonraki sürümlerde ekran döndürme davranışına yönelik güncellemeler, 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ğini içerir.

Senkronize uygulama geçişleri

Senkronize uygulama geçişleri, yeni uygulama geçiş animasyonlarına olanak tanır.

Metin sınıflandırması (eski adıyla TEXTCLASSIFIER)

Android 9 ve üzeri, metin sınıflandırmasını uygulamanın önerilen yolu olan Metin Sınıflandırıcı hizmetini ve varsayılan hizmet uygulamasını içerir.

Geniş gamlı renk

Android 9 ve üzeri, aşağıdakiler de dahil olmak üzere geniş renk gamı ​​desteğini içerir:

  • Yüksek dinamik aralık (HDR)
  • İçeriğin BT2020 renk uzayında işlenmesi ancak son hedef veri alanı olarak işlenmemesi

Geniş gamlı renk kullanmak için cihazın tam ekran yığınının (ekran, donanım oluşturucu, GPU gibi) geniş gamlı renkleri veya arabellek formatlarını desteklemesi gerekir. Donanım desteklese bile cihazların geniş gamlı içerik için destek talep etmesi gerekmez. Ancak donanımın tüm avantajlarından yararlanmak için geniş renk gamının etkinleştirilmesi gerekir. Tutarsız bir görsel deneyimden kaçınmak için geniş gamlı renk çalışma süresi boyunca kapatılmamalıdır.

Uyumluluk

Android Uyumluluk Tanımı Belgesi

Android 9 Uyumluluk Tanımı Belgesi (CDD), yeni özellikler için güncellemeler ve daha önce yayınlanmış işlevlere yönelik gereksinimlerde yapılan değişikliklerle önceki sürümler üzerinde yinelenir.

Ayarlar

Daha iyi uygulama widget'ları

Android uygulaması widget çerçevesi, özellikle kullanıcı widget'ları sildiğinde veya manuel olarak eklediğinde, kullanıcı etkileşimlerine ilişkin daha fazla görünürlük sunar. Bu işlevsellik varsayılan olarak Launcher3 ile birlikte gelir.

Üreticilerin, Launcher3'ü temel almıyorlarsa 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ını desteklemesi gerekir.

Özelliğin yalnızca başlatıcılar beklendiği gibi uyguladığında uçtan uca çalıştığını unutmayın. AOSP örnek bir uygulama içerir. Sağlanan örnek kod için AOSP Değişiklik Kimliği Iccd6f965fa3d61992244a365efc242122292c0ca'ya bakın.

Paket yükleyicilerine cihaz durumu değişikliği bildirimleri

Yerel ayar veya görüntü yoğunluğu gibi özelliklerde değişiklik olduğunda INSTALL_PACKAGES iznine sahip uygulamalara korumalı bir sistem yayını gönderilebilir. Alıcılar manifestte kaydedilebilir ve yayını almak için bir süreç başlatılır. Bu, bu tür değişiklikler üzerine ek uygulama bileşenleri yüklemek isteyen paket yükleyicileri için kullanışlıdır; bu, bu yayını tetiklemeye uygun yapılandırma değişiklikleri nadir olduğundan nadir görülen bir durumdur.

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 mimarisindeki değişiklikler daha fazla işlevsellik ve daha kolay uygulama sağlar.

Testler

Bir test

Atest komut satırı aracı, Android testlerini yerel olarak oluşturmanıza, yüklemenize ve çalıştırmanıza olanak tanıyarak, Ticaret Federasyonu test donanımı komut satırı seçenekleri hakkında bilgi gerektirmeden testin yeniden çalıştırılmasını büyük ölçüde hızlandırır.

Uyumluluk Test Paketi

CTS indirmeleri

Android 9'u destekleyen Uyumluluk Test Paketi (CTS) paketleri CTS İndirmeler 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 birden fazla cihazda paralel olarak çalışacak şekilde bir CTS'nin belirli sayıda bağımsız parçaya bölünmesini sağlar.

Ayrıca, daha önce belgelenmeyen --retry-type komutu da aynı CTS v2 konsol komut referansına eklenmiştir.

Güvenli Öğe (SE) hizmeti

Secure Element hizmeti, cihazların SE HAL uygulamasına sahip olup olmadığını ve varsa kaç tane olduğunu belirleyerek küresel platform destekli güvenli öğeleri kontrol eder. Bu, API'yi ve temeldeki güvenli öğe uygulamasını test etmek için temel olarak kullanılır.

Sensör füzyon kutusu

Sensör füzyon kutusu, Camera Image Test Suite (Camera ITS) sensör füzyon testinde ve çoklu kamera senkronizasyon testinde kullanılır ve Android telefonlar için 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:

Geniş görüş alanı Kutuda ITS

Kutuda geniş görüş alanı ITS, Kamera ITS'deki hem geniş görüş alanını (WFoV) hem de normal görüş alanı (RFoV) kamera sistemlerini test etmek için tasarlanmış otomatik bir sistemdir.

Satıcı Test Paketi

Ana bilgisayar denetleyici mimarisi

Satıcı Test Paketi (VTS) ana bilgisayar denetleyici mimarisi, bulut tabanlı test hizmeti hizmetiyle entegre edilmiş VTS test çerçevesinin mimarisidir.

Hizmet adına duyarlı HAL testi

VTS hizmeti adına duyarlı HAL testi, VTS testlerinin çalıştığı cihaza bağlı olarak belirli bir HAL örneğinin hizmet adının alınmasını destekler.

HAL test edilebilirlik kontrolü

VTS HAL test edilebilirlik kontrolü, söz konusu 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öntemini içerir.

Otomatik test altyapısı

Otomatik test altyapısı, AOSP genel sistem görüntüsünü (GSI) çalıştıran ortak cihazlarda VTS, CTS veya diğer testlerin otomatik olarak test edilmesine yönelik bir VTS altyapısıdır.

Hata ayıklama

Gelişmiş telemetri

Android'de telemetri , cihaz, Android sistemi ve uygulamalar hakkındaki kullanım ve teşhis bilgilerini otomatik olarak toplama işlemidir. Android'in önceki sürümlerinde telemetri yığını sınırlıydı ve sistem güvenilirliğini ve cihaz veya uygulama sorunlarını tanımlamak ve çözmek için gereken bilgileri yakalamıyordu. Bu, sorunların temel nedenlerinin belirlenmesini imkansız olmasa da zorlaştırdı.

Android 9, daha iyi verileri daha hızlı toplayarak bu eksikliği gideren statsd telemetri özelliğini içeriyor. statsd uygulama kullanımını, pil ve işlem istatistiklerini ve çökmeleri toplar. Veriler analiz edilir ve ürünleri, donanımı ve hizmetleri iyileştirmek için kullanılır.

Daha fazla ayrıntı için bkz. frameworks/base/cmds/statsd/ .

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 cihaz ve modaliteden bağımsız bir şekilde entegre etmek için kullanabileceği genel BiometricPrompt sınıfını içerir. Biyometri yığınınızı BiometricPrompt içerecek şekilde entegre etme hakkında daha fazla bilgi için bkz .

Dinamik analiz

Android 9, daha fazla istismar azaltma ve analiz aracı desteği içerir.

Akış bütünlüğünün kontrolü (CFI)

Kontrol akış bütünlüğü (CFI), derlenmiş bir ikili programın orijinal kontrol akış grafiğinde değişiklik yapılmasını yasaklayan ve bu tür saldırıların gerçekleştirilmesini önemli ölçüde zorlaştıran bir güvenlik mekanizmasıdır.

Çekirdek CFI

Varsayılan olarak etkin olan sistem CFI'ya ek olarak Android 9 ve üzeri, çekirdek kontrol akışı bütünlüğü (CFI) desteğini de içerir.

Şifreleme

Dosya tabanlı şifreleme

Dosya tabanlı şifreleme (FBE), uyarlanabilir depolamayla çalışacak şekilde güncellendi. Yeni cihazlar, tam disk şifrelemesi yerine dosya tabanlı şifreleme kullanmalıdır.

Meta veri şifreleme

Android 9 ve üzeri, donanım desteğinin mevcut olduğu meta veri şifreleme desteğini içerir. Meta veri şifrelemeyle, önyükleme sırasında mevcut olan tek bir anahtar, şifrelenmemiş içeriği şifrelemek için dosya tabanlı şifrelemeyi kullanır.

Anahtar deposu

Android 9 ve üzeri, bu özelliklere sahip olan Keymaster 4'ü içerir.

Kasa

Android 9 ve üzeri, yerleşik bir 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 Anahtar Deposu anahtarları için destek içerir. StrongBox Keymaster, Keymaster HAL'nin ayrı güvenli donanımdaki bir uygulamasıdır. Bir StrongBox şunları içerir:

  • Ayrık CPU
  • Entegre güvenli depolama
  • Yüksek kaliteli gerçek rastgele sayı üreteci
  • Kurcalamaya dayanıklı ambalaj
  • Yan kanal direnci

Güvenli anahtar içe aktarma

Bir anahtarı Keymaster 4'e güvenli bir şekilde aktarmak için, cihaz dışında oluşturulan bir anahtar, anahtarın nasıl kullanılabileceğini tanımlayan yetkilendirme spesifikasyonuyla şifrelenir.

3DES desteği

Keymaster 4, 3DES kullanan eski sistemlerle uyumluluk için 3DES içerir.

Sürüm bağlama

Treble'ın modüler yapısını desteklemek ve system.img boot.img bağlanmasını kı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, her bölümün bağımsız olarak güncellenmesine olanak tanırken aynı zamanda geri alma koruması sağlar.

Android Korumalı Onay API'si

Android 9 yüklü olarak başlatılan desteklenen cihazlar, geliştiricilere Android Korumalı Onay API'sini kullanma olanağı sağlar. Bu API ile uygulamalar, kullanıcıya kısa bir ifadeyi onaylamalarını isteyen bir istem görüntülemek için ConfirmationPrompt örneğini kullanabilir. Bu bildirim, uygulamanın, kullanıcının ödeme yapmak gibi hassas bir işlemi tamamlamak istediğini yeniden onaylamasına olanak tanır.

SELinux

Uygulama başına SELinux korumalı alanı

Uygulama sanal alanı, Android 9 ve üstünü hedefleyen ayrıcalıklı olmayan tüm uygulamaların ayrı SELinux sanal alanlarını çalıştırmasını sağlamak için yeni korumalara ve test senaryolarına sahiptir.

Tiz SELinux değişiklikleri

Android 9 ve üzeri sürümlerdeki Treble SELinux güncellemeleri, SELinux bölümünün çeşitli sayfalarında belgelenmiştir.

Satıcı başlatma

Vendor init, /vendor komutlarını satıcıya özel izinlerle çalıştırmak için ayrı bir SELinux etki alanı kullanarak Treble sistemi/satıcı ayrımındaki 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ığın sağlanması için bir yöntem sağlar.

SELinux özellik testleri

Android 9, belirli konumlardaki tüm dosyaların uygun niteliklere sahip olmasını sağlayan yeni oluşturma zamanı testleri içerir. Örneğin, sysfs tüm dosyalar gerekli sysfs_type özniteliğine sahiptir.

Ses

Yüksek çözünürlüklü ses efektleri

Yüksek çözünürlüklü ses efektlerine yönelik güncellemeler, efekt işlemenin int16'dan float formatına dönüştürülmesini ve eşzamanlı istemci çıkış parçalarında, maksimum istemci/sunucu belleğinde ve toplam karışık parçalarda artışları içerir.

Kamera

Harici USB kameralar

Android 9 ve üzeri, standart Android Camera2 API'sini ve kamera HIDL arayüzünü kullanan tak ve çalıştır USB kameraların (yani web kameralarının) kullanımını destekler.

Hareket takibi

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ğini içerir.

Oturum parametreleri

Oturum parametrelerinin uygulanması , kamera istemcilerinin, yakalama oturumu başlatma aşamasının bir parçası olarak maliyetli istek parametrelerinin bir alt kümesini aktif olarak yapılandırmasını sağlayarak gecikmeleri azaltabilir.

Tek üretici, çoklu tüketici tamponu

Tek üretici, çoklu tüketici kamera arabellek aktarımı, yakalama oturumu aktifken ve kamera akışı devam ederken kamera istemcilerinin çıktı yüzeylerini dinamik olarak eklemesine ve kaldırmasına olanak tanıyan bir dizi yöntemdir.

Bağlantı

Arama ve mesajlaşma

Veri planlarını uygulayın

Android 9 ve üzeri, SubscriptionPlan API'lerini kullanarak veri planları uygulayan operatörlere gelişmiş destek sağlar.

Üçüncü taraf arama uygulamaları

Android 9 ve üzeri , üçüncü taraf (3P) arama uygulamalarının eşzamanlı gelen operatör çağrılarını yönetmesine ve çağrıların sistem çağrı günlüğüne kaydedilmesine olanak tanıyan API'ler sağlar.

Taşıyıcı

Taşıyıcı kimliği

Android 9'da AOSP, operatörün tanımlanmasına yardımcı olmak için bir operatör kimliği veritabanı ekler. Veritabanı, taşıyıcıları tanımlamak için ortak bir yol sağlayarak yinelenen mantığı ve parçalanmış uygulama deneyimlerini en aza indirir.

eSIM

Gömülü SIM (eSIM veya eUICC), mobil kullanıcıların fiziksel bir SIM kartı olmadan bir operatör profili indirmesine ve bir operatörün hizmetini etkinleştirmesine olanak tanıyan en son teknolojidir. Android 9 ve üzeri sürümlerde, Android çerçevesi, eSIM'e erişim ve eSIM'deki abonelik profillerini yönetmek için standart API'ler sağlar. Daha fazla bilgi için bakınız:

IMS ayarları için çoklu SIM desteği

Android 9 ve üzeri , IP multimedya alt sistemi (IMS) için kullanıcı ayarlarında iyileştirmeler sağlar. Bu ayarları tüm aboneliklerde paylaşmak yerine, sesli LTE (VoLTE), görüntülü arama ve Wi-Fi aramasını abonelik başına ayrı ayrı ayarlayabilirsiniz.

SIM durumu yayınları

Android 9 ve üzeri sürümlerde Intent.ACTION_SIM_STATE_CHANGED kullanımdan kaldırılmıştır ve kart durumu ve kart uygulama durumu için iki ayrı yayın eklenmiştir: TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED ve TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED .

Bu değişikliklerle, yalnızca bir kartın mevcut olup olmadığını bilmesi gereken alıcıların uygulama durumu değişikliklerini dinlemesi gerekmiyor ve yalnızca kart uygulamalarının hazır olup olmadığını bilmesi gereken alıcıların kart durumundaki değişiklikleri dinlemesi gerekmiyor.

İki yeni yayın @SystemApis'tir ve yapışkan değildir. Yayınları yalnızca READ_PRIVILEGED_PHONE_STATE iznine sahip alıcılar alabilir.

Cihazın kilidini açtığınızda niyetler yeniden yayınlanmaz. Kilidi açmadan önce gönderilen yayınlara bağımlı olan alıcılar ya directBootAware kullanmalı ya da kullanıcı kilidi açtıktan sonra durumu sorgulamalıdır. Durumlar, TelephonyManager, getSimCardState() ve getSimApplicationState() içindeki ilgili API'ler kullanılarak sorgulanabilir.

Wifi

Operatör Wi-Fi'si

Operatör Wi-Fi özelliği, cihazların operatör tarafından uygulanan Wi-Fi ağlarına otomatik olarak bağlanmasına olanak tanır. Stadyum veya yer altı tren istasyonu gibi sıkışıklığın yoğun olduğu veya hücre kapsama alanının minimum olduğu alanlarda, taşıyıcı Wi-Fi bağlantının iyileştirilmesine ve trafiğin boşaltılmasına yardımcı olur.

MAC rastgeleleştirmesi

MAC rastgeleleştirmesi, cihazların o anda bir ağ ile ilişkili değilken yeni ağları araştırırken rastgele MAC adresleri kullanmasına olanak tanır. Android 9 ve sonraki sürümlerde, bir cihazın bir Wi-Fi ağına bağlanırken rastgele bir MAC adresi kullanmasına neden olmak için bir geliştirici seçeneği etkinleştirilebilir.

Wi-Fi'yi otomatik olarak aç

Wi-Fi'yi otomatik olarak aç özelliği etkinleştirildiğinde, cihaz yeterince yüksek göreceli alınan sinyal gücü göstergesine (RSSI) sahip kayıtlı bir Wi-Fi ağının yakınında olduğunda Wi-Fi otomatik olarak yeniden etkinleştirilir.

Wi-Fi gidiş-dönüş süresi

Wi-Fi gidiş-dönüş süresi (RTT), cihazların erişim noktaları (AP'ler) veya Wi-Fi Aware eşleri (cihazda Wi-Fi Aware destekleniyorsa) olup olmadığına bakılmaksızın 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ığını kullanmasına olanak tanır.

Wi-Fi puanlama iyileştirmeleri

Geliştirilmiş Wi-Fi puanlama modelleri, bir cihazın bağlı Wi-Fi ağından ne zaman çıkması veya yeni bir Wi-Fi ağına ne zaman girmesi gerektiğini hızlı ve doğru bir şekilde belirler. Bu modeller, bağlantıdaki boşlukları önleyerek kullanıcılara güvenilir ve kusursuz bir deneyim sunar.

config.xml kaynaklarındaki RSSI değerlerini, özellikle de aşağıdakileri gözden geçirin ve 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

Wi-Fi STA/AP eşzamanlılığı

Wi-Fi STA/AP eş zamanlılığı , cihazların aynı anda istasyon (STA) ve erişim noktası (AP) modlarında çalışabilme yeteneğidir. Çift bantlı eşzamanlı (DBS) Wi-Fi'yi destekleyen cihazlar için bu, kullanıcı bir erişim noktasını (SoftAP) etkinleştirmek istediğinde STA Wi-Fi'yi kesintiye uğratmama gibi yeteneklerin önünü açar.

WiFiStateMakine iyileştirmeleri

WifiStateMachine Wi-Fi etkinliğini kontrol etmek, kullanıcı girişini koordine etmek (çalışma modları: sıcak nokta, tarama, bağlanma veya kapalı) ve Wi-Fi ağ eylemlerini (tarama veya bağlanma gibi) kontrol etmek için kullanılan ana sınıftır.

Android 9 ve üzeri sürümlerde, Wi-Fi çerçeve kodu ve WifiStateMachine uygulaması yeniden tasarlanarak kod boyutunun küçültülmesi, takip edilmesi daha kolay Wi-Fi kontrol mantığı, gelişmiş kontrol ayrıntı düzeyi ve birim testlerinin kapsamı ve kalitesinin artırılması sağlandı. .

WifiStateMachine , yüksek düzeyde Wi-Fi'nin dört durumdan birinde olmasını sağlar:

  • İstemci modu (bağlanabilir ve tarayabilir)
  • Yalnızca tarama modu
  • SoftAP modu (Wi-Fi erişim noktası)
  • Devre Dışı (Wi-Fi tamamen kapalı)

Her Wi-Fi modunun, hizmetleri çalıştırmak için farklı gereksinimleri vardır ve yalnızca işlemiyle ilgili olayları işleyecek şekilde tutarlı bir şekilde kurulmalıdır. Yeni uygulama, kodu o modla ilgili olaylarla sınırlandırarak hata ayıklama süresini ve karmaşıklık nedeniyle yeni hataların 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 bir senkronizasyon mekanizması olarak eşzamansız kanalların kullanımı ortadan kaldırılır.

Wi-Fi izin 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 > Wi-Fi kontrolü bölümündeki ayarlar sayfasında herhangi bir uygulamanın iznini devre dışı bırakabilirsiniz.

Uygulamaların CHANGE_WIFI_STATE izninin verilmediği durumları ele alabilmesi gerekir.

Bu davranışı doğrulamak için roboelektrik ve manuel testleri çalıştırın.

Manuel test için:

  1. Ayarlar > Uygulamalar ve bildirimler > Özel uygulama erişimi > Wi-Fi kontrolü'ne gidin.
  2. Uygulamanıza ilişkin izni seçin ve kapatın.
  3. Uygulamanızın, CHANGE_WIFI_STATE izninin verilmediği senaryoyu işleyebildiğini doğrulayın.

WPS'in kullanımdan kaldırılması

Güvenlik sorunları nedeniyle WiFiManager Wi-Fi korumalı kurulum (WPS), Android 9 ve sonraki sürümlerde kullanımdan kaldırılmış ve devre dışı bırakılmıştır. Ancak WiFiDirect , WPA istemcisinde hâlâ WPS kullanıyor.

Grafik

Uygulama

Vulkan 1.1 API'si

Android 9 ve üzeri , Vulkan 1.1 grafik API'sinin uygulanmasını destekler.

Pencere geçiş takibi için WinScope aracı

Android 9 ve üzeri, pencere geçişlerini izlemeye yönelik WinScope aracını içerir. 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şlerinin kaydedilmesine ve bunlar arasında geçiş yapılmasına olanak tanır. Bu verileri yeniden oynatmak ve geçişi adım adım gerçekleştirmek için kullanabilirsiniz.

WinScope aracının kaynak kodu platform/development/tools/winscope konumunda bulunur.

Etkileşim

Otomotiv sesi

Automotive Audio, otomotivle ilgili Android uygulamalarına yönelik ses mimarisini açıklar.

Sinir Ağları (NN) HAL, çeşitli hızlandırıcıların bir soyutlamasını tanımlar. Bu hızlandırıcıların sürücüleri bu HAL'a uygun olmalıdır.

Araç HAL'i

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 Çerçevesi Android ayarlarını izler. İş ortakları, ayarları Google Play hizmetlerinden veya diğer sistem güncellemelerinden değiştirebilir. Bu ayarlar, belirli GNSS uydularının kullanılmaması gerekip gerekmediğini GNSS HAL'a bildirir. Bu, kalıcı GNSS uydusu veya takımyıldızı hataları durumunda veya takımyıldızları farklı zaman sistemleri ve artık saniye, gün veya hafta numarası geçişleri gibi harici olaylar kullanılarak karıştırırken 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 üzeri, donanım API'si hakkındaki bilgileri platforma aktarabilir. Platformun IGnssCallback arayüzünü uygulaması ve HAL'e bir tanıtıcı aktarması gerekiyor. GNSS HAL, donanım modeli bilgisini LocationManager#getGnssHardwareModelName() yöntemi aracılığıyla iletir. Cihaz üreticileri mümkün olan yerlerde bu bilgiyi sağlamak için GNSS HAL sağlayıcılarıyla birlikte çalışmalıdır.

İzinler

İsteğe bağlı erişim kontrolü güncellemelerini yapılandırma

İsteğe Bağlı Erişim Denetimini (DAC) Yapılandırma, dosya sistemi yeteneklerini genişletmek için Android Kimlikleri (AID'ler) mekanizmasına yönelik güncellemeleri içerir.

Ayrıcalıklı uygulama izinlerini beyaz listeye ekleme

Android 9 ve üzeri 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 geliştirilmiş destek sağlar. Android uygulamaları, mevcut veri bant genişliğine erişebiliyorlarsa, görüntülü aramalar ve video akışı için daha uygun çözünürlük ayarları yapabilirler.

Android 6.0 veya üstünü çalıştıran cihazlarda, hücresel ağ için bant genişliği tahmini isteyen bir arayan, ConnectivityManager.requestBandwidthUpdate() öğesini çağırır ve çerçeve, tahmini bir aşağı bağlantı bant genişliği sağlayabilir .

Ancak 9 veya üzerini çalıştıran cihazlarda, tahmini bant genişliğinde önemli bir değişiklik olduğunda onCapabilitiesChanged() geri çağrısı otomatik olarak tetiklenir ve requestBandwidthUpdate() işlevinin çağrılması işlem yapılmaz; 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, uygulamaların belirli bir hücrede ne kadar bant genişliği (frekans) bulunduğunu belirlemesine olanak tanır. Saha test uzmanlarının en güncel bilgileri kontrol edebilmesi için hücre bant genişliği bilgilerine gizli bir menü aracılığıyla ulaşılabilir.

eBPF trafik izleme

eBPF ağ trafiği aracı, son aygıt önyüklemesinden bu yana bir aygıttaki 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 cihazın durumuna bağlı olarak uygulamaların ağ erişimini engellemek için UID başına güvenlik duvarı gibi ek işlevler sağlar.

API'leri düşürmek için geri yükleyin

Cihazlar artık işletim sisteminin gelecekteki sürümlerinden geri yükleme yapabilir. Bu, özellikle kullanıcılar telefonlarını yükselttikten sonra kaybettikleri veya kırdıkları durumlarda 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 setlerini çökmeden ve en azından bazı verileri geri yükleyerek geri yüklemeyi gerçekleştirmelidir.

core/java/android/provider/SettingsValidators.java olduğu gibi, belirli bir yedekleme verisi parçasının geçersiz değerlerini kontrol etmek ve yalnızca geçerli verileri geri yüklemek için bir doğrulayıcı kullanmayı düşünün.

Özellik varsayılan olarak açıktır. Gelecekteki sürümlerden geri yüklemeye yönelik SettingsBackupAgent desteği, Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION aracılığıyla kapatılabilir. Cihaz üreticisi ROM'da bulunan yedekleme aracılarından birini genişletmediği (veya özel bir aracı eklemediği) sürece ek uygulamaya gerek yoktur.

Bu özellik, platformun gelecekteki sürümlerinden sistem geri yüklemelerine olanak tanır; ancak geri yüklenen verilerin tamamlanmayacağını beklemek mantıklıdır. Aşağıdaki talimatlar aşağıdaki yedekleme aracıları için geçerlidir:

  • PackageManagerBackupAgent, format sürümü oluşturma yoluyla yedekleme verilerinin gelecekteki sürümlerini destekler; Buradaki uzantıların geçerli geri yükleme koduyla uyumlu olması veya uygun sabitlerin çarpılması da dahil olmak üzere sınıftaki talimatları takip etmesi gerekir .

  • SystemBackupAgent, Android 9 ve sonraki sürümlerde restoreAnyVersion = false değerini belirtir. API'nin daha yüksek sürümlerinden geri yüklemeyi desteklemez.

  • SettingsBackupAgent, Android 9 ve sonraki sürümlerde restoreAnyVersion = true belirtir. Doğrulayıcılar aracılığıyla kısmi destek mevcuttur. Hedef işletim sisteminde bir doğrulayıcı mevcutsa, ayar daha yüksek bir API sürümünden geri yüklenebilir. Herhangi bir ayarın eklenmesine, doğrulayıcı da eşlik etmelidir. Ayrıntılar için sınıfı kontrol edin.

  • ROM'da bulunan herhangi bir özel yedekleme aracısı, yedekleme veri biçiminde uyumsuz bir değişiklik yapıldığında sürüm kodunu artırmalı ve aracıları ROM'un gelecekteki bir sürümünden gelen yedekleme verileriyle uğraşmaya hazır değilse, restoreAnyVersion = false (varsayılan) olduğundan emin olmalıdır. onların kodu.

Girişim

Yönetilen profil iyileştirmeleri

Yönetilen profillere yönelik 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ı duraklat

Yeni @SystemApi, cihaz sahiplerinin güvenlik güncellemeleri de dahil olmak üzere OTA güncellemelerini süresiz olarak duraklatmalarına olanak tanır.

Verim

Sağlık 2.0

Android 9 ve üzeri, health@1.0 HAL'den önemli bir sürüm yükseltmesi olan android.hardware.health HAL 2.0'ı içerir. Daha fazla bilgi için şu sayfalara bakın:

APK önbelleğe alma çözümü

Android 9 ve üzeri, önceden yüklenmiş uygulamaların A/B bölümlerini destekleyen bir cihaza hızlı kurulumu için bir APK önbelleğe alma çözümü içerir. OEM'ler, ön yüklemeleri ve popüler uygulamaları, kullanıcıya yönelik herhangi bir veri alanını etkilemeden, yeni A/B bölümlü cihazlarda çoğunlukla boş B bölümünde depolanan APK önbelleğine yerleştirebilir.

Profil rehberli optimizasyon

Android 9 ve üzeri, plan oluşturma kurallarına sahip yerel Android modüllerinde Clang'ın profil kılavuzlu optimizasyonunun (PGO) kullanılmasını destekler.

Yazma öncesi günlük kaydı

Uyumluluk yazma öncesi günlük kaydı (WAL) adı verilen özel bir SQLiteDatabase modu, bir veritabanının, veritabanı başına maksimum bir bağlantıyı korurken, journal_mode=WAL kullanmasına olanak tanır.

Önyükleme süreleri

Android 9, Önyükleme Sürelerini Optimize Etme bölümünde açıklandığı gibi önyükleme süresi optimizasyonunu değiştirir.

Güç

Arka plan kısıtlamaları

Android 9 ve üzeri, kullanıcıların pil gücünü tüketen uygulamaları kısıtlamasına olanak tanıyan arka plan kısıtlamaları içerir. Sistem ayrıca cihazın sağlığını olumsuz yönde etkileyen uygulamaların devre dışı bırakılmasını da önerebilir.

Pilsiz cihazlar

Android 9 , pilsiz cihazları önceki sürümlere göre daha zarif bir şekilde yönetir. Android 9, varsayılan olarak bir pilin bulunduğunu, %100 şarj edildiğini ve termistöründe normal sıcaklık okumasıyla iyi durumda olduğunu varsayan pilsiz cihazlara yönelik kodu kaldırır.