Android 9 sürüm notları

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:

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:

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:

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 statsdtelemetri ö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:

  1. Ayarlar > Uygulamalar ve bildirimler > Özel uygulama erişimi > Kablosuz kontrolü'ne gidin.
  2. Uygulamanızın iznini seçip devre dışı bırakın.
  3. 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.