Android 9 sürüm notları

Bu sayfada, Android 9 sürümündeki önemli özellikler özetlenmiştir ve ek bilgilere bağlantılar verilmiştir. Bu özellik özetleri, özelliğin bu sitedeki doküman konumuna göre düzenlenir. Bölüm taşıma ve yeniden adlandırmayla ilgili kılavuz için Ağustos 2018 site güncellemeleri başlıklı makaleyi inceleyin.

Topluluk

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

Genel sistem görüntüsü (GSI), Android cihazlar için yapılandırılmış bir sistem görüntüsüdür. Genel Sistem Görüntüsü (GSI), Android 9 ile kullanıma sunulan cihazlar ve Android 9'a yükseltilen cihazlar için GSI'ler arasındaki farklara dair ayrıntıları içerir.

Mimari

Donanım soyutlama katmanı (HAL)

HIDL çerçevesi geriye dönük uyumluluk

HIDL çerçevesi geriye dönük uyumluluk doğrulaması, çerçevenin geriye dönük uyumluluğunu doğrulama yöntemidir.

Dinamik olarak kullanılabilir HAL'ler

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

HIDL

HIDL MemoryBlock

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

Cihaz ağacı yer paylaşımları

Sıkıştırılmış yer paylaşımları

Android 9 ve sonraki sürümlerde, cihaz ağacı tablo başlığının 1. sürümü kullanılırken cihaz ağacı blob yer paylaşımı (DTBO) resminde sıkıştırılmış yer paylaşımları desteği bulunur.

DTO güncellemeleri

Android 9 ve sonraki sürümlerde, önyükleyicinin cihaz ağacı yer paylaşımlarında (DTO'lar) tanımlanan özellikleri değiştirmeden önce birleşik cihaz ağacı blob'unu çekirdeğe iletmesi gerekir.

DTBO resim başlığı sürümlendirme

Android 9 ve sonraki sürümler, DTBO resim başlığında bir sürüm alanı içerir.

DTBO doğrulaması

Android 9 ve sonraki sürümler için DTBO bölümü gerekir. SoC DT'sine düğüm eklemek veya özelliklerde değişiklik yapmak için önyükleyicinin, SoC DT'sinin üzerine cihaza özgü bir DT'yi dinamik olarak yerleştirmesi gerekir. Daha fazla bilgi için Derleme ve Doğrulama bölümüne bakın.

Çekirdek uyumluluğu

Android 9 ve sonraki sürümler, çekirdeği, arayüzlerini ve DTBO'ların kullanımını etkileyen gereksinimler içerir. Daha fazla bilgi için şu sayfalara göz atın:

Tedarikçi firma NDK

Tasarım değişiklikleri

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

ABI denetleyicisi

ABI Kararlılığı sayfasında, VNDK kitaplıklarında yapılan değişikliklerin ABI uyumluluğunu korumasını sağlayan uygulama ikili arayüzü (ABI) denetleyicisi açıklanmaktadır.

VNDK anlık görüntüleri

Sistem ve tedarikçi firma resimleri Android'in farklı sürümlerinden derlenmiş olsa bile sistem resimleri, tedarikçi firma resimlerine doğru VNDK kitaplıklarını sağlamak için VNDK anlık görüntülerini kullanabilir.

Tedarikçi firma arayüzü nesnesi (VINTF nesnesi)

Tedarikçi Arayüzü Nesnesi bölümündeki aşağıdaki sayfalarda Android 9 ve sonraki sürümlerdeki güncellemeler açıklanmaktadır:

HIDL desteği sonlandırma planı

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

Önyükleyici

Ürün bölümleri

Android 9 ve sonraki sürümler, Android derleme sistemini kullanarak /product bölümlerinin oluşturulmasını destekler. Daha önce Android 8.x, Android derleme sisteminden oluşturulan OEM'ye özel bileşenler için yer ayırmadan çip üzerinde sistem (SoC) bileşenlerinin /system bölümünden /vendor bölümüne ayrılmasını zorunlu kılıyordu.

Standart önyükleme nedeni uygunluğu

Standart Önyükleme Nedeni sayfasında, Android 9 ve sonraki sürümlerde önyükleme başlatıcısı önyükleme nedeni spesifikasyonunda yapılan değişiklikler açıklanmaktadır.

Kök olarak sistem

Android 9 ve sonraki sürümlerin yüklü olduğu tüm cihazlar, ramdisk.img'yi system.img (no-ramdisk olarak da bilinir) ile birleştiren ve ardından rootfs olarak monte edilen root olarak sistem özelliğini kullanmalıdır.

Önyükleme resmi başlık sürümü

Android 9 ve sonraki sürümlerde önyükleme resmi başlığında başlık sürümünü belirten bir alan bulunur. Önyükleyici bu sürüm alanını kontrol etmeli ve başlığı buna göre ayrıştırmalıdır.

Kurtarma sırasında DTBO

A/B olmayan cihazlarda kurtarma resmi ile DTBO bölümü arasındaki uyuşmazlıklardan kaynaklanan OTA hatalarını önlemek için kurtarma resminde DTBO resmindeki bilgiler bulunmalıdır.

Ekran

Ekran kesimleri

Ekran kesikleri, uygulama geliştiricilerin cihazların ön tarafındaki önemli sensörler için yer ayırırken sürükleyici, kenardan kenara deneyimler oluşturmasına olanak tanır.

Döndürme önerileri

Android 9 ve sonraki sürümlerde ekran döndürme davranışıyla ilgili güncellemeler, cihaz konumu değişse bile ekran döndürmeyi yatay veya dikey olarak sabitlemek için kullanıcılara yönelik bir kontrol desteği içerir.

Senkronize edilen uygulama geçişleri

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

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

Android 9 ve sonraki sürümlerde, metin sınıflandırmasını uygulamanın önerilen yolu olan metin sınıflandırıcı hizmeti ve varsayılan bir hizmet uygulaması bulunur.

Geniş renk yelpazesi

Android 9 ve sonraki sürümler, aşağıdakiler dahil olmak üzere geniş renk yelpazesi desteği içerir:

  • Yüksek dinamik aralık (HDR)
  • İçeriklerin BT2020 renk alanında işlenmesi ancak son hedef veri alanı olarak değil

Geniş renk gamını kullanmak için cihazın tüm ekran yığınının (ekran, donanım derleyici, GPU gibi) geniş renk gamını veya arabellek biçimlerini desteklemesi gerekir. Donanım desteklese bile cihazların geniş kapsamlı içerik desteği için hak talebinde bulunması gerekmez. Ancak donanımdan tam olarak yararlanmak için geniş renk gamının etkinleştirilmesi gerekir. Tutarlı bir görsel deneyim elde etmek için geniş renk gamına sahip renk, çalışma zamanında kapatılmamalıdır.

Uyumluluk

Android Uyumluluk Tanımlama Belgesi

Android 9 Uyumluluk Tanımlama Dokümanı (CDD), yeni özelliklerle ilgili güncellemeler ve daha önce yayınlanan işlevlerle ilgili şartlarda yapılan değişikliklerle önceki sürümleri temel alır.

Ayarlar

Daha iyi uygulama widget'ları

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

Üretici firmaların, Launcher3'ü temel almayan başlatıcı uygulamalarını (cihazlarla birlikte gönderilir) bu özelliği desteklemek için güncellemesi gerekir. OEM'lerin varsayılan başlatıcılarında yeni widgetFeatures alanını desteklemesi gerekir.

Bu özelliğin yalnızca başlatıcılar tarafından beklendiği gibi uygulandığında uçtan uca çalıştığını unutmayın. AOSP, örnek bir uygulama içerir. Sağlanan örnek kod için AOSP Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca adresine bakın.

Paket yükleyicilere gönderilen cihaz durumu değişikliği bildirimleri

Yerel ayar veya ekran yoğunluğu gibi özelliklerde değişiklik olduğunda INSTALL_PACKAGES iznine sahip uygulamalara korumalı sistem yayını gönderilebilir. Alıcılar manifest'e kaydedilebilir ve yayını almak için bir işlem başlatılır. Bu, bu tür değişikliklerin ardından uygulamaların ek bileşenlerini yüklemek isteyen paket yükleyiciler için yararlıdır. Bu yayını tetiklemeye uygun yapılandırma değişiklikleri nadir olduğundan bu durum genellikle yaşanmaz.

Cihaz durumu değişikliği bildirimi kaynak kodu, platform/frameworks/base altında aşağıdaki konumlarda bulunur:

  • api/system-current.txt
  • core/java/android/content/Intent.java
  • core/res/AndroidManifest.xml
  • services/core/java/com/android/server/am/ActivityManagerService.java

Bilgi mimarisi

Ayarlar uygulamasının bilgi mimarisinde yapılan değişiklikler daha fazla işlevsellik ve daha kolay uygulama sağlar.

Testler

Atest

Atest komut satırı aracı, Android testlerini yerel olarak oluşturmanıza, yüklemenize ve çalıştırmanıza olanak tanır. Böylece, Trade Federation test koşum takımı komut satırı seçenekleri hakkında bilgi sahibi olmanıza gerek kalmadan testlerin yeniden çalıştırılmasını büyük ölçüde hızlandırır.

Compatibility Test Suite

CTS indirmeleri

Android 9'u destekleyen Compatibility Test Suite (CTS) paketleri CTS İndirmeleri sayfasında mevcuttur. Dahil edilen testlerin kaynak kodu, açık kaynak ağacındaki android-cts-9.0_r1 etiketiyle senkronize edilebilir.

CTS seçenekleri

Android 9 için CTS v2, aşağıdaki komutu ve bağımsız değişkeni kazanır:

  • run retry, önceki oturumlarda başarısız olan veya yürütülmeyen tüm testleri yeniden dener.
  • ‘--shard-count, CTS çalıştırmasını belirli sayıda bağımsız parçaya böler. Böylece, paralel olarak birden fazla cihazda çalıştırılabilir.

Ayrıca, daha önce dokümante edilmemiş --retry-type komutu da aynı CTS v2 konsol komutu referansına eklendi.

Güvenlik Unsuru (SE) hizmeti

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

Sensör birleştirme kutusu

Sensör füzyon kutusu, Kamera Görüntüsü Testi Paketi (Kamera ITS) sensör füzyon testinde ve çok kameralı senkronizasyon testinde kullanılır. Android telefonlarda kameranın ve diğer sensörlerin zaman damgası doğruluğunu ölçmek için tutarlı bir test ortamı sağlar. Daha fazla bilgi için şu sayfalara bakın:

Geniş görüş alanına sahip kutu içinde ITS

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

Tedarikçi Test Paketi

Ana makine denetleyici mimarisi

Satıcı Testi Paketi (VTS) ana makine denetleyicisi mimarisi, bulut tabanlı test sunma hizmetine entegre edilmiş VTS test çerçevesinin mimarisidir.

Hizmet adı bilinçli HAL testi

VTS hizmet adı bilinçli HAL testi, VTS testlerinin çalıştırıldığı cihaza göre belirli bir HAL örneğinin hizmet adını almayı destekler.

HAL test edilebilirlik kontrolü

VTS HAL test edilebilirlik kontrolü, ilgili cihaz hedefi için hangi VTS testlerinin atlanması gerektiğini belirlemek üzere cihaz yapılandırmasını kullanmaya yönelik bir çalışma zamanı yöntemi içerir.

Otomatik test altyapısı

Otomatik test altyapısı, AOSP genel sistem görüntüsünü (GSI) çalıştıran iş ortağı cihazlarda VTS, CTS veya diğer testlerin otomatik olarak test edilmesi için kullanılan bir VTS altyapısıdır.

Hata ayıklama

Gelişmiş telemetri

Android'de telemetri, cihaz, Android sistemi ve uygulamalarla ilgili kullanım ve teşhis bilgilerini otomatik olarak toplama işlemidir. Android'in önceki sürümlerinde telemetri paketi sınırlıydı ve sistem güvenilirliği ile cihaz veya uygulama sorunlarını tespit edip çözmek için gereken bilgileri yakalamıyordu. Bu da sorunların temel nedenlerini tespit etmeyi imkansız olmasa da zorlaştırıyordu.

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

Daha fazla bilgi için frameworks/base/cmds/statsd/ başlıklı makaleyi inceleyin.

Güvenlik özellikleri

Uygulama imzalama

v3 APK imza şeması, APK anahtar rotasyonunu destekler.

Biyometrik destek

Android 9, uygulamaların biyometrik kimlik doğrulama desteğini cihaza ve modaya bakılmaksızın entegre etmek için kullanabileceği herkese açık BiometricPrompt sınıfını içerir. Biyometri paketinizi BiometricPrompt içerecek şekilde entegre etme hakkında daha fazla bilgi için Biyometrikler bölümüne bakın.

Dinamik analiz

Android 9, daha fazla istismar azaltma ve analiz aracı için destek içerir.

Kontrol akışı bütünlüğü (CFI)

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

Çekirdek CFI

Android 9 ve sonraki sürümler, varsayılan olarak etkinleştirilen sistem CFI'ye ek olarak çekirdek kontrol akışı bütünlüğü (CFI) desteği de içerir.

Şifreleme

Dosya tabanlı şifreleme

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

Meta veri şifreleme

Android 9 ve sonraki sürümlerde, donanım desteğinin bulunduğu durumlarda meta veri şifrelemesi desteği bulunur. Meta veri şifrelemede, önyükleme sırasında mevcut olan tek bir anahtar, şifrelenmemiş tüm içerikleri şifrelemek için dosya tabanlı şifreleme kullanır.

Anahtar deposu

Android 9 ve sonraki sürümlerde bu özelliklere sahip Keymaster 4 bulunur.

StrongBox

Android 9 ve sonraki sürümler, yerleşik güvenli öğe (SE) gibi yüksek güvenlikli uygulamalar için özel olarak tasarlanmış fiziksel olarak ayrı bir CPU'da depolanan ve kullanılan Android Keystore anahtarları için destek içerir. StrongBox Keymaster, ayrık güvenli donanımda Keymaster HAL'in bir uygulamasıdır. StrongBox'ta şunlar bulunur:

  • Ayrık CPU
  • Entegre güvenli depolama alanı
  • Yüksek kaliteli gerçek rastgele sayı üreteci
  • Müdahalelere karşı korumalı ambalaj
  • Yan kanala karşı direnç

Güvenli anahtar içe aktarma

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

3DES desteği

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

Sürüm bağlama

Treble'ın modüler yapısını desteklemek ve system.img ile boot.img arasındaki bağlamayı kaldırmak için Keymaster 4, anahtar sürümü bağlama modelini her bölüm için ayrı düzeltme düzeylerine sahip olacak şekilde değiştirdi. Bu sayede, geri alma koruması sunmaya devam ederken her bir bölümün bağımsız olarak güncellenmesi sağlanır.

Android Protected Confirmation API

Android 9 yüklü olarak piyasaya sunulan desteklenen cihazlar, geliştiricilere Android Protected Confirmation API'yi kullanma olanağı sunar. Bu API ile uygulamalar, kullanıcıya kısa bir ifadeyi onaylamasını isteyen bir istem göstermek için ConfirmationPrompt örneği kullanabilir. Bu beyan, uygulamanın kullanıcının ödeme yapma gibi hassas bir işlemi tamamlamak istediğini yeniden doğrulamasına olanak tanır.

SELinux

Uygulama başına SELinux korumalı alanı

Uygulama korumalı alanı, Android 9 ve sonraki sürümleri hedefleyen ayrıcalıklı olmayan tüm uygulamaların ayrı SELinux korumalı alanlarında çalışmasını sağlamak için yeni korumalara ve test durumlarına sahiptir.

Treble SELinux değişiklikleri

Android 9 ve sonraki sürümlerde Treble SELinux'ta yapılan güncellemeler SELinux bölümünde çeşitli sayfalarda açıklanmıştır.

Tedarikçi firma init

Sağlayıcı init, /vendor komutlarını tedarikçiye özgü izinlerle çalıştırmak için ayrı bir SELinux alanı kullanarak Treble sistem/tedarikçi bölmesindeki boşluğu kapatır.

Sistem özellikleri

Android 9, sistem özelliklerinin system ve vendor bölümleri arasında gereksiz yere paylaşılmasını kısıtlar ve paylaşılan sistem özellikleri arasında tutarlılık sağlamak için bir yöntem sunar.

SELinux özellik testleri

Android 9, belirli konumlardaki tüm dosyaların uygun özelliklere sahip olmasını sağlayan yeni derleme zamanı testleri içerir. Örneğin, sysfs içindeki tüm dosyalarda gerekli sysfs_type özelliği bulunur.

Ses

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

Yüksek çözünürlüklü ses efektlerinde yapılan güncellemeler arasında efekt işlemenin int16'dan float biçimine dönüştürülmesi ve eşzamanlı istemci çıkış parçaları, maksimum istemci/sunucu belleği ve toplam karma parça sayısında artışlar yer alıyor.

Kamera

Harici USB kameralar

Android 9 ve sonraki sürümler, standart Android Camera2 API ve kamera HIDL arayüzünü kullanarak tak ve çalıştır USB kameraları (yani web kameraları) kullanmayı destekler.

Hareket izleme

Kamera cihazları hareket izleme özelliğinin reklamını yapabilir.

Çoklu kamera desteği

Çoklu kamera desteği, aynı yönü gösteren iki veya daha fazla fiziksel kamera cihazından oluşan yeni bir mantıksal kamera cihazı aracılığıyla çoklu kameralı cihazlar için API desteği içerir.

Oturum parametreleri

Oturum parametrelerini uygulamak, kamera istemcilerinin kayıt oturumu başlatma aşamasının bir parçası olarak maliyetli istek parametrelerinin bir alt kümesini etkin bir şekilde yapılandırmasına olanak tanıyarak gecikmeleri azaltabilir.

Tek üretici, birden fazla tüketici arabelleği

Tek üretici, birden çok tüketici kamera arabelleği aktarımı, kamera istemcilerinin, yakalama oturumu etkinken ve kamera aktarımı devam ederken çıkış yüzeylerini dinamik olarak eklemesine ve kaldırmasına olanak tanıyan bir yöntem grubudur.

Bağlantı

Arama ve mesajlaşma

Veri planlarını uygulama

Android 9 ve sonraki sürümler, SubscriptionPlan API'lerini kullanarak veri planları uygulayan operatörler için daha iyi destek sağlar.

Üçüncü taraf arama uygulamaları

Android 9 ve sonraki sürümler, üçüncü taraf (3. taraf) arama uygulamalarının aynı anda gelen operatör aramalarını yönetmesine ve aramaların sistem arama kaydına kaydedilmesine olanak tanıyan API'ler sağlar.

Operatör

Operatör kimliği

Android 9'da AOSP, operatör tanımlama işlemine yardımcı olmak için bir operatör kimliği veritabanı ekler. Veritabanı, operatörleri tanımlamak için ortak bir yol sunarak yinelenen mantığı ve dağınık uygulama deneyimlerini en aza indirir.

eSIM

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

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

Android 9 ve sonraki sürümlerde IP multimedya alt sistemi (IMS) için kullanıcı ayarlarında iyileştirmeler yapılmıştır. LTE üzerinden sesli görüşme (VoLTE), görüntülü görüşme ve kablosuz ağ üzerinden görüşme ayarlarını tüm aboneliklerde paylaşmak yerine abonelik başına ayarlayabilirsiniz.

SIM durumu yayınları

Android 9 ve sonraki sürümlerde Intent.ACTION_SIM_STATE_CHANGED desteği sonlandırıldı ve kart durumu ile kart uygulaması durumu için iki ayrı yayın (TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED ve TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED) eklendi.

Bu değişiklikler sayesinde, yalnızca bir kartın mevcut olup olmadığını bilmesi gereken alıcıların uygulama durumu değişikliklerini dinlemesi gerekmez. Yalnızca kart uygulamalarının hazır olup olmadığını bilmesi gereken alıcıların da kart durumundaki değişiklikleri dinlemesi gerekmez.

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

Cihazın kilidini açtığınızda intent'ler yeniden yayınlanmaz. Kilidi açmadan önce gönderilen yayınlara bağlı olan alıcılarda directBootAware kullanılmalıdır veya kullanıcı kilidi açtıktan sonra durum sorgulaması yapılmalıdır. Durumlar, TelephonyManager, getSimCardState() vegetSimApplicationState()'daki ilgili API'ler kullanılarak sorgulanabilir.

Kablosuz bağlantı

Operatör kablosuz ağı

Operatöre ait kablosuz ağ özelliği, cihazların operatör tarafından uygulanan kablosuz ağlara otomatik olarak bağlanmasına olanak tanır. Yoğunluk oranı yüksek veya cep telefonu kapsama alanı minimum olan yerlerde (ör. stadyum veya metro istasyonu) operatör kablosuz ağları, bağlantıyı iyileştirmeye ve trafiği azaltmaya yardımcı olur.

MAC rastgele hale getirme

MAC rastgele hale getirme, cihazların şu anda bir ağla ilişkili değilken yeni ağlar ararken rastgele MAC adresleri kullanmasına olanak tanır. Android 9 ve sonraki sürümlerde, bir cihazın kablosuz ağa bağlanırken rastgele bir MAC adresi kullanması için geliştirici seçeneği etkinleştirilebilir.

Kablosuz ağı otomatik olarak aç

Kablosuz özelliğini otomatik olarak açma özelliği etkinleştirildiğinde, cihaz yeterince yüksek bir göreli alınan sinyal gücü göstergesi (RSSI) olan kayıtlı bir kablosuz ağın yakınında olduğunda kablosuz bağlantı otomatik olarak yeniden etkinleştirilir.

Kablosuz ağ gidiş dönüş süresi

Kablosuz ağ gidiş dönüş süresi (RTT), cihazların erişim noktası (AP) veya Kablosuz Ağ Farkında eşleri (cihazda Kablosuz Ağ Farkında destekleniyorsa) olsun, diğer destekleyen cihazlara olan mesafeyi ölçmesine olanak tanır. IEEE 802.11mc protokolüne dayalı bu özellik, uygulamaların gelişmiş konum doğruluğu ve farkındalığı kullanmasına olanak tanır.

Kablosuz ağ puanlamada iyileştirmeler

Geliştirilmiş kablosuz puanlama modelleri, bir cihazın bağlı olduğu kablosuz ağdan ne zaman çıkacağını veya yeni bir kablosuz ağa ne zaman gireceğini hızlı ve doğru bir şekilde belirler. Bu modeller, bağlantıdaki boşlukları önleyerek kullanıcılara güvenilir ve sorunsuz bir deneyim sunar.

config.xml kaynaklarındaki RSSI değerlerini inceleyin ve özellikle aşağıdakileri ayarlayın:

  • config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz

Kablosuz STA/AP eşzamanlılığı

Kablosuz STA/AP eşzamanlılığı, cihazların istasyon (STA) ve erişim noktası (AP) modlarında eşzamanlı olarak çalışabilmesidir. Çift bantlı eşzamanlı (DBS) kablosuz bağlantıyı destekleyen cihazlarda bu özellik, kullanıcı bir hotspot'u (SoftAP) etkinleştirmek istediğinde STA kablosuz bağlantısını kesintiye uğratmama gibi özellikler sunar.

WiFiStateMachine iyileştirmeleri

WifiStateMachine, kablosuz bağlantı etkinliğini kontrol etmek, kullanıcı girişini koordine etmek (çalışma modları: hotspot, tarama, bağlanma veya kapalı) ve kablosuz ağ işlemlerini (ör. tarama veya bağlanma) kontrol etmek için kullanılan ana sınıftır.

Android 9 ve sonraki sürümlerde, kablosuz bağlantı çerçevesi kodu ve WifiStateMachine'ün uygulanması yeniden tasarlandı. Bu sayede kod boyutu küçültüldü, kablosuz bağlantı kontrol mantığı daha kolay anlaşılır hale geldi, kontrol ayrıntı düzeyi iyileştirildi ve birim testlerinin kapsamı ile kalitesi artırıldı.

Özet olarak,WifiStateMachine kablosuz bağlantının dört durumdan birinde olmasını sağlar:

  • İstemci modu (bağlanıp tarayabilir)
  • Yalnızca tarama modu
  • SoftAP modu (Kablosuz hotspot)
  • Devre dışı (Kablosuz bağlantı tamamen kapalı)

Her kablosuz modun, hizmet çalıştırmayla ilgili farklı gereksinimleri vardır ve yalnızca işleviyle alakalı etkinlikleri ele alacak şekilde tutarlı bir şekilde ayarlanmalıdır. Yeni uygulama, kodu bu modla ilgili etkinliklerle kısıtlayarak hata ayıklama süresini ve karmaşıklıktan kaynaklanan yeni hata ekleme riskini azaltır. Mod işlevi için açık şekilde işleme ek olarak, mesaj dizisi yönetimi tutarlı bir şekilde ele alınır ve senkronizasyon mekanizması olarak eşzamansız kanalların kullanımı ortadan kaldırılır.

Kablosuz ağ izni güncellemeleri

Android 9 ve sonraki sürümlerde CHANGE_WIFI_STATE uygulama izni varsayılan olarak etkindir. Ayarlar > Uygulamalar ve bildirimler > Özel uygulama erişimi >��

Uygulamalar, CHANGE_WIFI_STATE izninin verilmediği durumları ele almalıdır.

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

Manuel test için:

  1. Ayarlar > Uygulamalar ve bildirimler > Özel uygulama erişimi > Kablosuz bağlantı kontrolü'ne gidin.
  2. Uygulamanızın iznini seçip devre dışı bırakın.
  3. Uygulamanızın, CHANGE_WIFI_STATE izininin verilmediği senaryoyu işleyebileceğini doğrulayın.

WPS desteğinin sonlandırılması

Güvenlik sorunları nedeniyle WiFiManager'teki kablosuz korumalı kurulum (WPS), Android 9 ve sonraki sürümlerde kullanımdan kaldırıldı ve devre dışı bırakıldı. Ancak WiFiDirect, WPA istemcisinde hâlâ WPS'yi kullanıyor.

Grafik

Uygulama

Vulkan 1.1 API

Android 9 ve sonraki sürümler Vulkan 1.1 grafik API'sinin uygulanmasını destekler.

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

Android 9 ve sonraki sürümler, pencere geçişlerini izlemek için WinScope aracını içerir. WinScope, geçişler sırasında ve sonrasında pencere yöneticisi durumunu kaydedip analiz etmek için altyapı ve araçlar sağlar. İlgili tüm pencere yöneticisi durumunu bir izleme dosyasına kaydederken pencere geçişlerini kaydedip adım adım ilerlemenize olanak tanır. Bu verileri, geçişi tekrar oynatmak ve adım adım incelemek için kullanabilirsiniz.

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

Etkileşim

Otomobil ses sistemi

Automotive Audio, otomotivle ilgili Android uygulamaları için ses mimarisini açıklar.

Nöral Ağlar (NN) HAL, çeşitli hızlandırıcıların soyut bir tanımını tanımlar. Bu hızlandırıcıların sürücüleri bu HAL'e uygun olmalıdır.

Araç HAL'si

Araç Özellikleri, araç HAL arayüzündeki değişiklikleri açıklar.

GNSS uydu seçimi

Android Framework, yeni küresel navigasyon uydu sistemi (GNSS) HAL'leriyle (v1.1 ve sonraki sürümler) çalışırken Android ayarlarını izler. İş ortakları, Google Play Hizmetleri'ndeki veya diğer sistem güncellemelerindeki ayarları değiştirebilir. Bu ayarlar, belirli GNSS uydularının kullanılıp kullanılmayacağını GNSS HAL'e bildirir. Bu, kalıcı GNSS uydu veya takımyıldızı hataları olduğunda veya farklı zaman sistemleri ve saniye atlama, gün veya hafta sayısı geçişleri gibi harici etkinlikler kullanılarak takımyıldızları karıştırıldığında ortaya çıkabilecek GNSS HAL uygulama sorunlarına daha hızlı tepki vermek için yararlı olabilir.

GNSS donanım modeli

Android 9'da GNSS HAL 1.1 veya sonraki sürümler, donanım API'si hakkındaki bilgileri platforma aktarabilir. Platformun IGnssCallback arayüzünü uygulaması ve HAL'e bir tutamak iletmesi gerekir. GNSS HAL, donanım modeli bilgilerini LocationManager#getGnssHardwareModelName() yöntemiyle iletir. Cihaz üreticileri, mümkün olduğunda bu bilgileri sağlamak için GNSS HAL sağlayıcılarıyla birlikte çalışmalıdır.

İzinler

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

İsteğe bağlı erişim denetimini (DAC) yapılandırma, dosya sistemi özelliklerini genişletmek için Android kimlikleri (AID'ler) mekanizmasında yapılan güncellemeleri içerir.

Ayrıcalıklı uygulama izinlerini beyaz listeye ekleme

Android 9 ve sonraki sürümlerde reddedilmesi gereken izinler varsa XML'i, önceki sürümlerde kullanılan permission etiketi yerine deny-permission etiketini kullanacak şekilde düzenleyin.

Veri

Bant genişliği tahmini iyileştirmeleri

Android 9, bant genişliği tahmini için daha iyi destek sağlar. Android uygulamaları, mevcut veri bant genişliğine erişebiliyorsa görüntülü görüşmeler ve video yayını için daha uygun çözünürlük ayarları yapabilir.

Android 6.0 veya sonraki sürümlerin yüklü olduğu cihazlarda, hücresel ağ için bant genişliği tahmini isteyen bir arayanın yaptığı ConnectivityManager.requestBandwidthUpdate() çağrılarında çerçeve, tahmini bir indirme bant genişliği sağlayabilir.

Ancak 9 veya sonraki sürümleri çalıştıran cihazlarda, tahmini bant genişliğinde önemli bir değişiklik olduğunda onCapabilitiesChanged() geri çağırma işlevi otomatik olarak tetiklenir ve requestBandwidthUpdate() çağrısı işlevsizdir; ilişkili getLinkDownstreamBandwidthKbps() ve getLinkUpstreamBandwidthKbps(), fiziksel katman tarafından sağlanan güncel bilgilerle doldurulur.

Ayrıca cihazlar, ServiceState.getCellBandwidths() aracılığıyla LTE hücre bant genişliklerini kontrol edebilir. Bu sayede uygulamalar, belirli bir hücrede ne kadar bant genişliğinin (sıklığın) kullanılabileceğini belirleyebilir. Saha test kullanıcılarının en güncel bilgileri kontrol edebilmesi için hücre bant genişliği bilgileri gizli bir menüden kullanılabilir.

eBPF trafik izleme

eBPF ağ trafiği aracı, cihazın son başlatılmasından bu yana cihazdaki ağ kullanımını izlemek için çekirdek ve kullanıcı alanı uygulamalarının bir kombinasyonunu kullanır. Bu araç, cihaz durumuna bağlı olarak uygulamaların ağa erişimini engellemek için soket etiketleme, ön plan/arka plan trafiğini ayırma ve UID başına güvenlik duvarı gibi ek işlevler sağlar.

Daha düşük API'lere geri yükleme

Cihazlar artık işletim sisteminin gelecekteki sürümlerinden geri yükleme yapabilir. Bu özellik, özellikle kullanıcılar telefonlarını yeniledikten sonra telefonlarını kaybederse veya bozarsa kullanışlıdır.

Bir OEM, sistem paketlerinden herhangi biri (android, sistem, ayarlar) için yedekleme aracılarını değiştirirse bu aracılar, platformun daha yüksek sürümlerinde oluşturulan yedekleme gruplarını kilitlenme olmadan ve en azından bazı verileri geri yükleyecek şekilde geri yüklemelidir.

Belirli bir yedek veri parçasındaki geçersiz değerleri kontrol etmek ve yalnızca geçerli verileri geri yüklemek için bir doğrulayıcı kullanmayı düşünün (core/java/android/provider/SettingsValidators.java'te olduğu gibi).

Bu özellik varsayılan olarak etkindir. Gelecek sürümlerden geri yükleme için SettingsBackupAgent desteği, Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION üzerinden devre dışı bırakılabilir. Cihaz üreticisi, ROM'a dahil edilen yedekleme aracılarından birini genişletmediği (veya özel bir aracı eklemediği) sürece ek uygulama gerekmez.

Bu özellik, platformun gelecekteki sürümlerinden sistem geri yüklemelerine olanak tanır. Ancak geri yüklenen verilerin eksik olması normaldir. Aşağıdaki talimatlar aşağıdaki yedekleme aracıları için geçerlidir:

  • PackageManagerBackupAgent, biçim sürümlendirmesi aracılığıyla yedek verilerin gelecekteki sürümlerini destekler. Buradaki uzantılar, mevcut geri yükleme koduyla uyumlu olmalıdır veya sınıftaki talimatları (doğru sabitleri artırma dahil) izlemelidir.

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

  • SettingsBackupAgent, Android 9 ve sonraki sürümlerde restoreAnyVersion = true değerini belirtir. Doğrulayıcılar aracılığıyla kısmi destek mevcuttur. Hedef işletim sisteminde ilgili ayarın doğrulayıcısı varsa ayar daha yüksek bir API sürümünden geri yüklenebilir. Eklenen her ayar, doğrulayıcısıyla birlikte gönderilmelidir. Ayrıntılar için sınıfı kontrol edin.

  • ROM'a dahil edilen tüm özel yedekleme aracıları, yedek veri biçiminde uyumsuz bir değişiklik yapıldığında sürüm kodunu artırmalı ve aracıları, kodlarının gelecekteki bir sürümünden gelen yedek verileriyle işlem yapmaya hazır değilse restoreAnyVersion = false (varsayılan) değerini kullanmalıdır.

Kurumsal

Yönetilen profil iyileştirmeleri

Yönetilen profiller için yapılan kullanıcı deneyimi değişiklikleri, kullanıcıların yönetilen profili tanımlamasını, erişmesini ve kontrol etmesini kolaylaştırır.

OTA'ları duraklatma

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

Performans

Sağlık 2.0

Android 9 ve sonraki sürümler, health@1.0 HAL'den büyük bir sürüm yükseltmesi olan android.hardware.health HAL 2.0'ı içerir. Daha fazla bilgi için şu sayfalara göz atın:

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

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

Profil odaklı optimizasyon

Android 9 ve sonraki sürümler, plan oluşturma kurallarına sahip yerel Android modüllerinde Clang'ın profil odaklı optimizasyonunu (PGO) kullanmayı destekler.

Yazma öncesi günlük kaydı

Uyumluluk önceden yazma günlüğü (WAL) adlı SQLiteDatabase'nin özel modu, veritabanı başına en fazla bir bağlantı korurken veritabanının journal_mode=WAL kullanmasına olanak tanır.

Başlatma süreleri

Android 9, Başlatma sürelerini optimize etme bölümünde açıklandığı şekilde başlatma süresi optimizasyonunu değiştirir.

Güç

Arka plan kısıtlamaları

Android 9 ve sonraki sürümler, kullanıcıların pil gücünü tüketebilecek uygulamaları kısıtlamasına olanak tanıyan arka plan kısıtlamaları içerir. Sistem, cihazın sağlığını olumsuz yönde etkileyen uygulamaları devre dışı bırakmanızı da önerebilir.

Pilsiz cihazlar

Android 9, pilsiz cihazları önceki sürümlere kıyasla daha şık bir şekilde yönetir. Android 9, varsayılan olarak pilin mevcut olduğunu, %100 şarjlı olduğunu ve termistöründe normal bir sıcaklık ölçümü olduğunu varsayan, pilsiz cihazların kodunu kaldırır.