Android 10 sürüm notları

Bu sayfada Android 10 sürümündeki önemli ö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.

İnşa etmek

java_sdk_library

Android 10, paylaşılan Java kitaplıkları için uyumluluk sorunlarını düzeltmeye yönelik yeni bir derleme kuralı olan java_sdk_library sunar. Cihaz üreticileri, API'lerinin geriye dönük uyumluluğunu korumak amacıyla bu mekanizmayı kendi paylaşılan Java kitaplıklarında kullanabilirler.

Mimari

Modüler sistem bileşenleri

Android 10 , bazı Android sistem bileşenlerini modüler hale getirir ve bunların normal Android sürüm döngüsünün dışında güncellenmesine olanak tanır. Bazı modüller şunları içerir:

Donanım soyutlama katmanı (HAL)

Android 10, HAL'lerin istemcileri olmadığında otomatik olarak kapanmaları için destek ekler.

Çekirdek

Abi

Android 10, çekirdek modülleriyle uyumluluğu etkileyen çekirdek ABI değişikliklerinin karşılaştırılması, izlenmesi ve azaltılmasına yardımcı olacak yeni ABI izleme yardımcı programlarına yönelik destek içerir.

Android 10 ayrıca sembol tabanlı bir ABI kullanım denetleyicisi de sunuyor. Denetleyici, güncel olmayan önceden oluşturulmuş ikili dosyaları derleme sırasında tespit edebilir; böylece paylaşılan kitaplık geliştiricileri, hangi önceden oluşturulmuş ikili dosyaların değişiklik nedeniyle bozulabileceğini ve hangi önceden oluşturulmuş ikili dosyaların yeniden oluşturulması gerektiğini bilebilir.

Android Canlı Kilit Programı

Android 10, çekirdek kilitlenmelerini yakalamak ve azaltmak için tasarlanmış Android Live-Lock Daemon'u (llkd) içerir.

ARM64'te vDSO32

Android 10 , 64 bit çekirdeklerde vDSO32 kullanımını destekleyerek pil ömründe yüzde 0,4 artış ve diğer performans iyileştirmelerini sağlıyor.

Erken bağlanan bölümler için fstab girişleri

Android 10, cihazların ilk aşamadaki ramdisk'te bir fstab dosyası kullanarak erken monte edilen bölümler için fstab girişlerini belirtmesini gerektirir.

HIDL

BroadcastQueue'yu Boşalt

Android 10, mevcut arka plan ve ön plan kuyruklarına yeni bir yük aktarımı BroadcastQueue içerir. Boşaltma kuyruğu, arka plan kuyruğuyla aynı önceliğe ve zaman aşımı davranışına sahiptir. Daha ilginç veya kullanıcının görebileceği yayınların gerçekleşebileceği arka plan kuyruğunun engellenmesini önlemek için boşaltma kuyruğu, birçok uygulamanın dinlediği ve tamamlanması uzun zaman alabilen BOOT_COMPLETED yayınını yönetir. Boşaltma kuyruğu şu anda yalnızca BOOT_COMPLETED yayınını yönetiyor ancak potansiyel olarak diğer uzun yayınları da işleyebilir.

Sistem Askıya Alma hizmeti

Android 10, SystemSuspend HIDL hizmetiyle sistemin askıya alınmasını başlatmaktan sorumlu olan libsuspend iş parçacığının yerini alıyor. Bu uygulama, Android HIDL altyapısının avantajlarından yararlanırken önceki sürümlere eşdeğer işlevsellik sunar.

HIDL'de Safe_union

Android 10, HIDL'de açıkça etiketlenmiş bir birleşim türü olan safe_union sunar.

Yapılandırma

ConfigStore HAL

Android 10, yüksek bellek tüketimi ve zor kullanım nedeniyle ConfigStore HAL'ı kullanımdan kaldırır ve HAL'ı sistem özellikleriyle değiştirir.

Yapılandırma Dosyası Şeması API'si

Android platformu, yapılandırma verilerini depolamak için çok sayıda XML dosyası içerir. XML dosyalarının çoğu vendor bölümündedir ancak system bölümünde okunurlar. Bu durumda, XML dosyasının şeması iki bölüm arasında arayüz görevi görür ve bu nedenle şemanın açıkça belirtilmesi ve geriye dönük olarak uyumlu bir şekilde gelişmesi gerekir. Android 10'dan önce platform, XML şemasının belirtilmesini ve kullanılmasını gerektirecek veya şemada uyumsuz değişiklikleri önleyecek mekanizmalar sağlamıyordu. Android 10, Yapılandırma Dosyası Şeması API'si adı verilen bu mekanizmayı sağlar.

API'ler olarak sistem özellikleri

Bölümler arasında erişilen sistem özellikleri , sysprop açıklama dosyaları halinde şematize edilir ve özelliklere erişim sağlayan API'ler, C++ için somut işlevler ve Java için sınıflar olarak oluşturulur.

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

VINTF

Android 10'da VINTF'de yapılan değişiklikler şunları içerir:

Önyükleyici

Ramdisk

Android 10'da, kök dosya sistemi artık ramdisk.img dahil edilmiyor ve bunun yerine system.img ile birleştirildi.

ODM bölümleri oluşturun

Android 10, Android derleme sistemini kullanarak odm bölümleri oluşturmaya yönelik destek içerir. Özelleştirmeler için ayrı bir /odm bölümü kullanabilirsiniz; bu, birden çok donanım SKU'su için tek bir satıcı görüntüsü kullanmanıza olanak tanır. Bu, orijinal tasarım üreticilerinin (ODM'ler), çip üzerinde sistem (SoC) satıcı anakart destek paketlerini (BSP'ler) kendi özel cihazlarına (anakartlarına) göre özelleştirmesine olanak tanır. Panele özgü bileşenler, panele özgü arka plan programları veya donanım soyutlama katmanları (HAL'ler) üzerindeki kendi özellikleri için çekirdek modülleri uygulayabilirler. Ayrıca SoC bileşenlerini değiştirebilir veya özelleştirebilir.

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

Android 10, önyükleme görüntüsü üstbilgisini , cihaz ağacı blob (DTB) görüntüsünü depolamak için bir bölüm içeren sürüm 2'ye günceller. Android 10 VTS testleri, Android 10 ile başlatılan tüm cihazların önyükleme görüntüsü üstbilgisi sürüm 2'yi kullandığını ve önyükleme/kurtarma görüntülerinin parçası olarak geçerli bir DTB görüntüsü içerdiğini doğrular.

A/B olmayan cihazlar için kurtarma görüntüleri

Android 9 ve sonraki sürümlerde, bir cihazın kurtarma görüntüsünün, yer paylaşımlı görüntüdeki bilgileri içermesi gerekir . Cihaz üreticileri, keşfedilemeyen tüm cihazları tanımlamak için DeviceTree'yi veya Gelişmiş Yapılandırma ve Güç Arayüzü'nü (ACPI) kullanabilir. Android 10 ve üzeri, yer paylaşımı için DeviceTree blobu (DTBO) yerine ACPI kullanan mimariler için destek içerir.

Kararlı AIDL

Android 10, AIDL arayüzleri tarafından sağlanan uygulama programı arayüzünü (API)/uygulama ikili arayüzünü (ABI) takip etmenin yeni bir yolu olan kararlı Android Arayüz Tanımlama Dili (AIDL) desteğini ekler.

Fastboot'u kullanıcı alanına taşıyın

Android 10, fastboot uygulamasını önyükleyiciden kullanıcı alanına taşıyarak yeniden boyutlandırılabilir bölümler için destek ekler.

Görüntülemek

HDR video oynatma

Android 10 , HDR10, VP9 ve HDR10+ oynatmayı destekler.

Metin sınıflandırması

Metin sınıflandırma, geliştiricilerin metni sınıflandırmasına yardımcı olmak için makine öğrenimi tekniklerini kullanır. Android 10, TextClassifier API'sine iki yöntem sunar: suggestConversationActions ve detectLanguage . suggestConversationActions yöntemi belirli bir konuşmadan önerilen yanıtları ve eylemleri oluşturur ve detectLanguage yöntemi metnin dilini algılar.

Zawgyi yazı tipi oluşturma desteği

Zawgyi, Myanmar'daki en popüler yazı tipidir. Android 9 ve önceki sürümler , Unicode uyumlu olmadığından Zawgyi'nin oluşturulmasını desteklemiyordu. Android 10, hem Unicode Birmanya hem de Zawgyi'yi birlikte oluşturabilen bir Unicode yazı tipi ekleyerek bu sorunu giderir. Android 10 ile başlatılan cihazlarda Zawgyi yazı tipi oluşturmayı desteklemek için herhangi bir uygulama çalışmasına gerek yoktur. Cihazlarınızın Zawgyi'yi destekleyecek özel bir uygulaması varsa şunları yapabilirsiniz:

Uygulama simgelerini gizlemeye ilişkin sınırlamalar

Android 10, uygulamaların başlatıcı simgelerini gizleme yeteneğini sınırlıyor. Bir uygulamanın başlatıcı etkinliği etkin değilse sistem, başlatıcıda sentezlenmiş bir etkinlik görüntüler; Bu sentezlenmiş etkinlik, uygulamanın sistem ayarları içindeki ayrıntılar sayfasını temsil eder.

Uygulama simgeleri gösterilmeyen uygulama türleri de dahil olmak üzere uygulama simgelerini göstermek için kullanılan mantık hakkında daha fazla bilgi için API referansındaki getActivityList() belgelerine bakın.

Ayarlar

Erişilebilirliği geliştirmek için Android 10, kullanıcı tarafından özelleştirilebilir zaman aşımı ayarları içerir. API ve Ayarlar değişiklikleri Android 10 ile birlikte gelir. Ayarlarınızı özelleştirirseniz bu özelliğin desteklendiğinden emin olun. Cihazınızda zaman aşımına uğrayan kullanıcı arayüzü öğeleriniz varsa, bunlarda zaman aşımı API'sini kullanın. Daha fazla bilgi için Android geliştirici erişilebilirlik yönergelerine bakın.

Uyumluluk

Android Uyumluluk Tanımı Belgesi (CDD)

Android 10 Uyumluluk Tanımı Belgesi, yeni özelliklere yönelik güncellemeler ve daha önce yayınlanmış işlevsellik gereksinimlerinde yapılan değişikliklerle önceki sürümler üzerinde yinelenir.

Testler

Uyumluluk Test Paketi (CTS)

Android CTS'nin, Android 10'a yönelik birçok önemli değişikliği listeleyen ayrı bir sürüm notları sayfası vardır.

CTS indirmeleri

Android 10'u destekleyen CTS paketleri CTS İndirmeler sayfasında mevcuttur. Dahil edilen testlerin kaynak kodu, açık kaynak ağacındaki android-cts-10_r1 etiketiyle senkronize edilebilir.

CTS APEX pulu

Android 10, APEX yönetimine yönelik CTS testleri yazmak için cihaza önceden yüklenmesi gereken CtsShimApex adlı bir paketi sunar.

Test koşum modu

CTS test donanımı modu, geliştiricilerin bir cihaz veya cihaz filosu için testleri otomatikleştirmesine yardımcı olur.

Hazır Uygulamalar modu

Android 10'dan itibaren CTS, Hazır Uygulamalar modunda çalışır; bu, test APK'sının Hazır Uygulama olarak yüklenmesi ve testlerin çalıştırılması anlamına gelir.

Hazır Uygulamalar için CTS moduna ek olarak Android 10, Hazır Uygulamalar için CTS Doğrulayıcıyı içerir

CTS Doğrulayıcı profesyonel ses testi

Android 10, Pro Audio uyumluluğu için bir CTS Doğrulayıcı testi ekler.

CTS Doğrulayıcı MIDI testleri

Android 10'da CTS Verifier MIDI testi , USB MIDI arayüzleri, Bluetooth MIDI arayüzleri ve sanal bir MIDI cihaz yolu ile MIDI işlevselliğini test eder.

CTS testinin yorumlanması

Android 10, CTS sonuçlarını yorumlama mekanizmasını günceller.

Satıcı Test Paketi (VTS)

Hata ayıklama ramdiski ile VTS testi

Android 10'da, GSI sürüm imzalı olduğundan, CTS-on-GSI/VTS uyumluluk testini çalıştırmak için kullanılan genel sistem görüntüsü (GSI), kullanıcı hata ayıklamasından kullanıcı derleme türüne değişir. Ancak, test edilen Android cihazına ana bilgisayar kök izinleri veren adb root komutu, kullanıcı yapısında mevcut değildir. Bu bir sorun çünkü VTS'nin çalışması için adb root gerekiyor.

Cihazın kilidi açıksa, adb root mümkün kılmak için hata ayıklama ramdisk'i tanıtıldı. Bu, aynı kullanıcı derlemesi system.img (GSI veya OEM'in system.img ) yeniden kullanarak test akışını basitleştirir.

Donanım Oluşturucu doğrulaması

Android 10, IComposerClient.hal içindeki readback arayüzü aracılığıyla Donanım Besteci doğrulaması için yeni bir VTS test sınıfı ekler. Satıcılar readback uygulamazsa testler otomatik olarak geçer.

Hata ayıklama

Paylaşılan kitaplıkları farklı sınıf yükleyicilerle yükleyin

Android 9 ve önceki sürümlerde uygulamalar, bağlantılı Java paylaşılan kitaplıklarını uygulamanın sınıf yükleyicisine yükledi. Android 10'da çerçeve, uses-library veya uses-static-library aracılığıyla bağlanan Java paylaşılan kitaplıklarını yüklemek için uygulamanın sınıf yükleyicisinden farklı bir sınıf yükleyici kullanır.

Genel olarak uygulamalar belirli bir sınıf yükleyiciyi kullanmaya bağlı olmamalıdır; dolayısıyla bu değişiklik, uygulama davranışını bozmamalıdır. Ancak bir uygulama tek sınıf yükleyici kullanmaya dayanıyorsa bu davranış bozulur. Ayrıca, aynı paketteki sınıfların pakete özel görünürlüğü hâlâ desteklenmektedir ancak paylaşılan kitaplıklarda desteklenmemektedir.

Cihaz üreticileri, Android 10 çalıştıran cihazlarını test ederken uygulama uyumluluk sorunlarıyla karşılaşabilir.

Güvenlik özellikleri

Yalnızca güvenlik ve gizlilikle ilgili geliştirmelerin daha kapsamlı bir listesi için Android 10 güvenlik ve gizlilik geliştirmeleri sayfasına bakın.

Yüz kimlik doğrulaması

Yüz kimlik doğrulaması, kullanıcıların yalnızca cihazlarının ön kısmına bakarak cihazlarının kilidini açmasına olanak tanır. Android 10, desteklenen donanımlarda yüz kimlik doğrulaması sırasında güvenliği ve gizliliği koruyarak kamera çerçevelerini güvenli bir şekilde işleyebilen yeni bir yüz kimlik doğrulama yığını için destek ekler. Android 10 ayrıca çevrimiçi bankacılık veya diğer hizmetler gibi işlemler için uygulama entegrasyonunu mümkün kılan güvenlikle uyumlu uygulamalara yönelik kolay bir yol sağlar.

Genişletilmiş erişim

Smart Lock gibi üçüncül kimlik doğrulama mekanizmalarının kullandığı temel mekanizma olan güven aracıları, kilidi açmayı yalnızca Android 10'da genişletebilir. Güven aracıları artık kilitli bir cihazın kilidini açamaz ve bir cihazı yalnızca maksimum dört saat boyunca kilidi açık tutabilir.

Şifreleme

OEMKripto

Android 10, OEMCrypto API sürüm 15'i kullanır.

Test yapmak

SınırlarDezenfektan

Android 10, Bluetooth ve codec bileşenlerinde BoundsSanitizer'ı (BoundSan) dağıtır. BoundSan, UBSan'ın sınır temizleyicisini kullanıyor. Bu azaltma, modül başına düzeyde etkinleştirilir. Android'in kritik bileşenlerinin güvende tutulmasına yardımcı olur ve devre dışı bırakılmamalıdır. BoundSan aşağıdaki codec bileşenlerinde etkinleştirilmiştir:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec
  • libaac
  • libxaac

Tamsayı Taşması Temizleme

Android 10, yazılım codec bileşenlerinde Tamsayı Taşması Temizleme'yi (IntSan) etkinleştirir. Cihazın donanımında desteklenmeyen codec bileşenleri için oynatma performansının kabul edilebilir olduğundan emin olun. IntSan aşağıdaki codec bileşenlerinde etkinleştirilmiştir:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec

Yalnızca yürütme belleği

Varsayılan olarak, AArch64 sistem ikili dosyalarına yönelik yürütülebilir kod bölümleri, tam zamanında kodun yeniden kullanılması saldırılarına karşı bir güvenlik önlemi olarak yalnızca yürütme (okunamaz) olarak işaretlenir. Verileri ve kodu bir araya getiren kod ve bu bölümleri (öncelikle bellek bölümlerini okunabilir olarak yeniden eşlemeden) bilinçli olarak denetleyen kod artık çalışmaz. Hedef SDK'sı Android 10 (API düzeyi 29 veya üzeri) olan uygulamalar, uygulamanın, önce bölümü okunabilir olarak işaretlemeden, bellekteki salt yürütme belleği (XOM) etkin sistem kitaplıklarının kod bölümlerini okumaya çalışması durumunda etkilenir.

Scudo

Scudo , yığınla ilgili güvenlik açıklarına karşı daha dayanıklı olacak şekilde tasarlanmış dinamik bir kullanıcı modu bellek ayırıcısıdır. Standart C tahsisi ve serbest bırakma ilkellerinin yanı sıra C++ temellerini de sağlar.

Gölge Çağrı Yığını

ShadowCallStack (SCS), bir işlevin dönüş adresini yaprak olmayan işlevlerin işlev prologunda ayrı olarak tahsis edilmiş bir ShadowCallStack örneğine kaydederek ve dönüş adresini ShadowCallStack örneğinden yükleyerek dönüş adresinin üzerine yazılmasına (yığın arabellek taşmaları gibi) karşı koruma sağlayan bir LLVM enstrümantasyon modudur. fonksiyon epilogu.

Ses

Ses HAL'i

Android 10, ses HAL'i için aşağıdaki yeni özellikleri içerir.

  • AudioSource
  • AudioFormat
  • AudioChannelMask

Ses HAL ve alt sistem uygulaması için ek gereksinimler eklenmiştir.

Ön işleme efektleri

Android, akustik yankı giderme, otomatik kazanç kontrolü ve gürültü bastırma gibi ön işleme efektleri sağlar. Android 10, VOICE_COMMUNICATION ile yakalamaya yönelik yeni gereksinimler içermektedir.

Ses politikası yöneticisi

Android 10, karmaşık otomotiv kullanım durumlarını desteklemek için daha fazla esneklik sağlamak amacıyla ses politikası yöneticisinde önemli bir yeniden düzenleme içerir.

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

Android 10, yüksek çözünürlüklü ses için aşağıdaki iyileştirmeleri içerir.

  • Şamandıra desteği
  • 192 KHz frekans desteği
  • Sekiz kanal desteği
  • Zamanlama bilgilerinin dahil edilmesi

Eşzamanlı yakalama

Android 10, birden fazla aktif ses yakalamanın aynı anda gerçekleşmesini gerektiren eşzamanlı yakalama kullanıcı deneyimini geliştirir.

Ses ÇalmaYakalama

Android 10, uygulamalara diğer uygulamalar tarafından çalınan sesi kopyalama yeteneği veren AudioPlaybackCapture adlı yeni bir API içerir. Bu özellik ekran yakalamaya benzer ancak ses içindir. Birincil kullanım durumu, akış uygulamalarının oyunlar tarafından oynatılan sesi yakalamasını sağlamaktır.

Yakalama API'si, sesi yakalanan uygulamanın gecikmesini etkilemez.

MİDİ

Android 10, MIDI kullanan profesyonel ses uygulamalarının AMidi NDK API'yi kullanarak Android platformuna taşınmasını kolaylaştırır.

Kamera

Android 10'da tanıtılan kamera API'si, kamera HAL'si ve kamera modülünde yapılan değişikliklerin bir özeti için Android 10 kamera güncellemeleri bölümüne bakın.

Kamera çerçevesi gizlilik iyileştirmeleri

Android 10, kamera çerçevesine gizlilik geliştirmeleri getiriyor. CameraCharacteristics potansiyel olarak hassas statik kamera bilgilerinin kullanıcının izni olmadan açığa çıkmasını önlemek için uygulamaların, getCameraCharacteristics yöntemini kullanarak gizliliğe duyarlı bir etiketle statik meta verileri almak üzere CAMERA iznini alması gerekir.

CAMERA izni gerektiren kamera karakteristik tuşlarının bir listesini almak için getKeysNeedingPermission yöntemini çağırın.

Oturum yeniden yapılandırma sorgusu

Android 10, dahili oturum parametresi yeniden yapılandırma mantığı üzerinde daha fazla kontrol yoluyla performansın iyileştirilmesine olanak tanıyan bir oturum yeniden yapılandırma sorgusu özelliği ekler.

Kamera HAL3 arabellek yönetimi API'leri

Android 10, farklı bellek elde etmek ve kamera HAL uygulamalarında gecikme değişimlerini yakalamak için arabellek yönetimi mantığını uygulamanıza olanak tanıyan isteğe bağlı kamera HAL3 arabellek yönetimi API'lerini sunar.

Kamera HAL dinamik fiziksel kamera anahtarı

Android 10, mantıksal bir kamera cihazının etkin temel fiziksel kamerasını belirten ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID adlı dinamik bir meta veri etiketi sunar. Daha fazla bilgi için Çoklu Kamera Desteği bölümüne bakın.

Fiziksel kameraları gizleme desteği

Android 10'da kamera HAL, bir uygulama tarafından doğrudan açılabilen fiziksel kameraların sayısını azaltabilir. Daha fazla ayrıntı için Çoklu Kamera Desteği bölümüne bakın.

Camera2 VNDK API'si

Android 10'da satıcı modülleri, android.frameworks.cameraservice.service@2.0 ve android.frameworks.cameraservice.device@2.0 olmak üzere iki yeni standart HIDL arayüzü aracılığıyla kamera cihazlarına erişebilir ve bunları kontrol edebilir. HIDL arayüzlerini kullanmayı daha kullanışlı hale getirmek için Android 10 ayrıca satıcının kullanabileceği bir kitaplık olan libcamera2_vendor da sunar. Bu kitaplık, birkaç küçük değişiklik dışında Camera NDK kitaplığına benzer.

Akış yapılandırmaları

Android 10, kamera satıcılarının önerilen kamera akışlarını kamera istemcilerine duyurmasına ve akış kombinasyonlarını sorgulamak için bir API'yi desteklemesine olanak tanıyan özellikler ekler.

Kamera akışı kombinasyonu gereksinimleri

Android 10 çalıştıran cihazların artık fiziksel alt kamera akışlarıyla akış kombinasyonlarını desteklemesi gerekmiyor. Ancak, kamera HAL cihazı sürüm 3.5 ile Android 10 çalıştıran cihazların, uygulamaların fiziksel akışlar içeren bir akış birleşiminin desteklenip desteklenmediğini sorgulamasına izin vermek için isStreamCombinationSupported() desteklemesi gerekir.

Daha fazla bilgi için Çoklu Kamera Desteği bölümüne bakın.

HEIF görüntüleme

Android 10, gelişmiş görüntü kalitesi ve JPEG görüntülere göre daha küçük boyutlar sunan yüksek verimli görüntü dosyası formatı (HEIF) görüntüler için yerel kamera desteği sağlar. HEIF görüntülerini desteklemek için cihazların HEIC veya HEVC kodlayıcıya sahip olması gerekir.

Tek renkli kameralar

Android 10, Y8 akış formatı, monokrom ve yakın kızılötesi (NIR) renk filtresi dizisi statik meta verileri ve monokrom kameralar için DngCreator işlevleri için ek destek sağlar.

Bağlantı

Arama ve mesajlaşma

Acil durum numaraları ve acil arama

Android 10, acil durum aramaları için gelişmiş destek sağlar. Acil bir durumda, IRadio HAL v1.4 desteğine sahip cihazlar, SIM kart, ağ sinyali veya Android veritabanı gibi bir kaynaktan alınan acil durum numaralarını kullanarak bir acil durum araması başlatabilir. Numaralar polis, itfaiye ve ambulans gibi acil servis kategorilerine göre kategorize edilebilir.

Grup çağrısı API'leri

Grup çağrısı API'leri, Android 9'da eklenen eMBMS API'lerinin bir uzantısıdır. Yeni API'ler, uygulamaların eMBMS ara yazılım paketleriyle etkileşime girerek hücre yayını grup çağrılarına katılması ve bu çağrılarda yayın yapması için bir standart tanımlar. Grup çağrılarının düzgün çalışması için yonga seti satıcısından, ara yazılım satıcısından ve hücre taşıyıcısından destek alınması gerekir. Geliştirici belgeleri, geliştirici.google.com adresinde bulunur.

Uzak SIM yetenekleri

Android 10, Android ana cihazındaki mesajlaşma uygulamalarının Bluetooth gibi mekanizmalar kullanarak telefonlar aracılığıyla SMS mesajları göndermesine olanak tanıyan uzak SIM özelliklerini sunar. Daha fazla bilgi için getSubscriptionType yöntemine ve SUBSCRIPTION_TYPE_REMOTE_SIM sabitine ilişkin referans belgelerine bakın.

Birden fazla eSIM

Android 10'da EuiccManager sınıfı, birden fazla yerleşik SIM'e (eSIM) veya eUICC'ye sahip cihazları destekler.

eSIM güncellemeleri

Android 10 çalıştıran ve eSIM'leri destekleyen cihazlar için çıkarılamayan bir eUICC yuva kimliği dizisi tanımlanmalıdır. Cihazların ayrıca IRadio HAL v1.4 ve IRadioConfig HAL v1.2'yi desteklemesi gerekir. Daha fazla bilgi için bkz. eSIM ve HAL Gereksinimlerini Uygulama .

5G Bağımsız Olmayan (NSA)

Android 10 , bağımsız olmayan 5G (NSA) desteği ekler. 5G NSA, ağın mevcut bir 4G altyapısı tarafından desteklendiği 5G ağlarına yönelik bir çözümdür. Android 10'da, bir cihaz 5G ağına bağlandığında cihazlar durum çubuğunda bir 5G simgesi görüntüleyebilir.

Telefon hesabı önerisi

Android 10, arama yaparken kullanıcılara telefon hesabı önerilerinin gösterilmesini sağlayan telefon hesabı öneri hizmetini sunuyor.

Taşıyıcı

Mobil Ağ ayarlarını taşıyın

Android 10, Mobil Ağ ayarları kullanıcı arayüzü kodunu yeniden tasarladı ve Telefon yığınından Ayarlar yığınına taşıdı. Taşınan kodu desteklemek için aşağıdaki Mobil Ağ ayarları yapılandırma değerlerini Android kaynaklarından CarrierConfig kaynaklarına değiştirin:

config_world_mode -> CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL

config_support_tdscdma -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL

config_support_tdscdma_roaming_on_networks -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY

config_enabled_lte -> CarrierConfigManager#KEY_LTE_ENABLED_BOOL

Cihaz tanımlayıcıları

Kalıcı cihaz tanımlayıcıları (IMEI/MEID, IMSI ve derleme serisi), cihaz ve profil sahibi uygulamalarına da verilen erişimle birlikte ayrıcalıklı bir izinle korunur. IMSI ve SIM seri numarası operatör tarafından sağlandığından, bu tanımlayıcılara erişim, operatör ayrıcalıklarına sahip paketlere verilir.

Wifi

Ağ seçimi

Android, bağlı ağın kalitesini sürekli olarak değerlendirir ve mevcut ağların kalitesini değerlendirir. Android 10 , Wi-Fi ağlarını seçmeye ve bunlar arasında geçiş yapmaya yönelik algoritmaları ve prosedürleri güncelledi.

Wi-Fi tercihli ağ boşaltma taraması

Android 10, WifiManager , güç kullanımını azaltmak için cihaz sabitken tercih edilen ağ boşaltma (PNO) taramaları arasındaki aralığı artıran setDeviceMobilityState() adlı isteğe bağlı bir API yöntemi sunar.

Operatör Wi-Fi'si

Android 10'da, operatör Wi-Fi özelliğine sahip cihazlar, yapılandırılmış operatör Wi-Fi ağlarına (ortak anahtar sertifikalarına sahip ağlar) otomatik olarak bağlanır.

Wi-Fi Kolay Bağlantı

Android 10'da cihazlar, Wi -Fi cihazlarının temel hazırlığını yapmak ve yapılandırmak için Wi-Fi Alliance (WFA) tarafından sunulan cihaz temel hazırlık protokolünü (DPP) kullanan Wi-Fi Easy Connect'i kullanabilir.

Wi-Fi düşük gecikme modu

Android 10 , Wi-Fi yongasını gecikmeyi azaltacak şekilde yapılandıran bir Wi-Fi düşük gecikme modu sunar.

Güncellenmiş DHCP sunucusu

"IP Sunucusu" hizmet şemsiyesinin oluşturulması kapsamında dnsmasq silinmektedir. Android 10, DHCPv4 sunucusunun işlevsel kullanımını, Java çerçeve kontrol düzlemiyle daha iyi entegre olmak için öncelikle Java ile yazılmış ayrı bir bileşenle değiştiriyor. Bu, DHCP sunucusunun güvenliğini ve güncellenebilirliğini artırır. Daha fazla ayrıntı için packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java bakın.

Bu değişikliğin uygulanması için herhangi bir işlem yapılmasına gerek yoktur: Android 10'u yayınlayan ve bu sürüme yükselten tüm cihazlar varsayılan olarak DhcpServer kullanır. DHCP sunucusunda özelleştirmeleriniz varsa tether_enable_legacy_dhcp_server=1 genel ayarını ayarlayarak Android 9 davranışına geri dönebilirsiniz. Yeni DhcpServer ağ bileşenleri modülüne dahil edilmiştir, bu nedenle DHCP sunucusu işlevselliğine yönelik herhangi bir özelleştirme, yukarı yönde gerçekleştirilmelidir.

WPA3 ve Wi-Fi Gelişmiş Açık

Android 10, bilinen saldırılara karşı daha iyi gizlilik ve sağlamlık sağlamak için Wi-Fi Korumalı Erişim 3 (WPA3) ve Wi-Fi Geliştirilmiş Açık güvenlik standartlarına destek ekler.

Doğrudan kablosuz bağlantı

Wi-Fi P2P olarak da bilinen Wi-Fi Direct , destekleyen cihazların internet veya hücresel ağ erişimi olmadan Wi-Fi Direct protokolünü kullanarak birbirlerini keşfetmelerine ve doğrudan bağlanmalarına olanak tanır.

MAC rastgeleleştirme geliştirmeleri

Android 10'dan itibaren istemci modu, SoftAp ve Wi-Fi Direct için MAC rastgeleleştirmesi varsayılan olarak etkindir. Cihazların, sistem kullanıcı arayüzündeki her SSID için MAC rastgeleleştirmesini etkinleştirme veya devre dışı bırakma seçeneği sunması gerekir.

Geçiş Noktası R2

Android 10, Passpoint R2 özellikleri için destek sunuyor. Passpoint R2, yeni Passpoint profillerini hazırlamak için standart bir yöntem olan çevrimiçi kaydolmayı (OSU) uygular. Android 10, SOAP-XML kullanılarak EAP-TTLS profillerinin sağlanmasını destekler.

NFC

Güvenli NFC

Güvenli NFC, ana bilgisayar dışı NFC kart emülasyonunun yalnızca cihazın ekranının kilidi açıldığında etkinleştirilmesine olanak tanır. Bu özelliğin uygulanması, kullanıcılara gelişmiş güvenlik için Güvenli NFC'yi etkinleştirme seçeneği sunar.

Android Beam kullanımdan kaldırıldı

Android 10'da Android Beam'e artık gerek yoktur ve aşağıdaki arayüzler ve yöntemler kullanımdan kaldırılmıştır.

Arayüzler:

Yöntemler:

Android Beam'i kullanmak için android.sofware.nfc.beam özellik sabitini bildirin.

Grafik

ASurfaceControl

Android 10, SurfaceFlinger arabellekleri kabul etmesinin yeni bir yolu olan ASurfaceControl ekler.

Grafik uygulaması

OpenGL ES katmanları

Android 10, GLES için bir katmanlama sistemi sunuyor.

EGL 1.5

Android 10, EGL 1.5 arayüzünü uygular. EGL 1.5'teki yeni özellikler hakkında bilgi için Khronos EGL 1.5 Spesifikasyonunu Yayınladı.

Vulkan

Android 10, Vulkan 1.1 grafiklerini destekliyor. Platform ayrıca VK_KHR_swapchain v70'i de destekliyor, böylece Vulkan uygulaması takas zinciri belleğiyle desteklenen bir VkImage oluşturabiliyor.

Performans yenileme hızı

Android 10, performans yenileme hızı için destek ekler. Bu özellik varsayılan olarak kapalıdır.

Etkileşim

Otomotiv

Otomotiv sesi

Android 10'da Audio HAL bağlamı, sesleri tanımlamak için AudioAttributes.usage ile eşleşir. Android, bağlam başına bir AUDIO_DEVICE_OUT_BUS örneğini destekler. IAudioControl HAL, Audio HAL'e araca özel uzantılar sağlar.

Hareketle gezinme

Android 10, tamamen el hareketlerine dayalı sistem navigasyonu için bir seçenek sunuyor. Uygulamaların bu özelliği kullanacak şekilde nasıl hazırlanacağı hakkında bilgi için Android Geliştirici sitesindeki Hareketle gezinme sayfasına bakın.

Nöral ağlar

Android 10, Sinir Ağları API'sı ve Sinir Ağları HAL'sine yönelik güncellemeler sunar. Değişikliklerin özeti için bkz. Sinir ağları .

Android 10 için yeni ve güncellenmiş Sinir Ağları belgeleri:

Sensörler

Sensörler HAL 2.0

Sensors HAL 2.0, sensör olaylarını HAL'den Android Sensors Framework'e göndermek için hızlı mesaj kuyruklarının (FMQ'lar) kullanılmasını destekler.

Sensörler kapalı

Android 10, bir cihazdaki tüm sensörleri kapatmak için bir geliştirici ayarı içerir. Bu özellik, geliştiricilerin bu sensörlerin kullanılamadığı durumlarda uygulamalarının işlevselliğini test etmesine yardımcı olur ve ayrıca kullanıcılara cihazlarındaki sensörleri kontrol etmeleri için bir yol sunar.

Cihazlarınız SensorService , CameraService ve AudioPolicyService varsayılan uygulamasını kullanıyorsa referans tasarımında herhangi bir ek özelleştirmeye gerek yoktur. Başka sensörleriniz varsa bu özelliğin desteklenmesi hakkında daha fazla ayrıntı için Özelleştirme bölümüne bakın.

Medya

Güncellenebilir medya bileşenleri

Android 10, medyayla ilgili modüler sistem bileşenlerinin Google Play Store altyapısı veya iş ortakları tarafından sağlanan kablosuz (OTA) mekanizma aracılığıyla güncellenmesine olanak tanıyan güncellenebilir medya bileşenleri sağlar.

Medya DRM'si

Android 10, MediaDrm Java ve NDK API'lerinin kullanışlılığını ve kullanılabilirliğini geliştirir.

Kod çözme

Android 10, AV1 SW kod çözmeyi destekler.

İzinler

Android 10, şeffaflık ve kullanıcı gizliliği için ek izin yapılandırmaları sağlar.

Kişi sağlayıcısı ve ilgi alanı bilgileri

Android 10'dan başlayarak, Kişiler Sağlayıcı bileşeni tarafından yönetilen kişiler yakın ilgi alanıyla ilgili verilere, Android 9 ve önceki sürümlerden farklı şekilde erişilir. Veri erişilebilirliğine ilişkin bu değişiklikler, Kişi Sağlayıcı bileşenini kullanan tüm Android 10 cihazlarda kullanıcı gizliliğini artırır. Temel veritabanı artık kişi yakınlığı verilerini içermiyor. Bu nedenle uygulamalar ona yazamaz veya okuyamaz.

Android 10'daki değişikliklerin API'ler üzerinde büyük bir etkisi olması bekleniyor. Uygulamalarınız Kişi Sağlayıcısı ve Yakın İlgi Alanı Bilgilerinde belirtilen kullanımdan kaldırılmış özellikleri kullanıyorsa, herhangi bir değişikliği telafi etmek için uygulamalarınızı güncellemek isteyebilirsiniz. Ayrıca, Kişi Sağlayıcının çatallanmış bir sürümünü kullanıyorsanız Kişi Sağlayıcınızı güncellemeniz gerekir.

Üç durumlu konum izinleri

Android 10'daki üç durumlu konum izinleri, kullanıcılara uygulamaların cihaz konumlarına nasıl eriştiği konusunda daha fazla kontrol sağlar.

Arka planda konuma erişim hatırlatıcısı

Android 10, uygulamaların bir cihazın konumuna ne kadar erişime sahip olduğu konusunda şeffaflığı artıran ve kullanıcıların bu tür erişim üzerinde kontrol sahibi olmalarına yardımcı olan bir arka plan erişim konumu hatırlatıcısına sahiptir.

Fırsatçı konumları kısıtlayın

Bir uygulama bir cihazın konumunu istediğinde, uygulama ya istek yanıtını bekleyebilir ya da etkin konum dinleyicilerini kullanarak fırsatçı bir konum güncellemesi alabilir. Android 10'dan başlayarak fırsatçı konum güncellemeleri almak için geliştiricilerin FusedLocationProviderClient sınıfından pasif konum güncellemelerine ihtiyaç duyduklarını belirtmeleri gerekir.

Arka plan uygulamaları başlatılıyor

Android 10'da, görünür bir penceresi olmayan ayrıcalıklı olmayan uygulamalar kendilerini otomatik olarak ön planda başlatamaz. Bu değişiklik, reklam açılır pencerelerini ve kötü niyetli devralmaları bastırır. Bunu etkinleştirmek için herhangi bir işlem yapılmasına gerek yoktur.

Uygulama korumalı alanı oluşturma

Android 10'da uygulamalar, dosya sisteminin sınırlı bir ham görünümüne sahiptir ve /sdcard/DCIM gibi yollara doğrudan erişim yoktur. Ancak uygulamalar, Context.getExternalFilesDir() gibi uygulanabilir yöntemlerin döndürdüğü şekilde, pakete özgü yollara tam ham erişimi korur. Uygulamalar hâlâ pakete özgü yollara tam ham erişime sahiptir.

Uygun veri paylaşımı ayrıntı düzeyi sağlamak amacıyla dosya paylaşımına yönelik uygulama sanal alanı yönergelerini kullanın.

Uygulama panosu erişimini kısıtla

Android 10'da pano erişimi değişti, böylece pano içeriği ClipboardManager.getPrimaryClip çağrılarak veya pano değiştiğinde bildirim almak üzere bir onPrimaryClipChangedListener dinleyicisi eklenerek izlenemiyor. Bu, kullanıcı gizliliğini artırır ve kötü amaçlı reklam uygulamalarının panoyu değiştirmesini engeller.

Android 10'da okuma erişimine yalnızca giriş odaklı geçerli uygulamaya veya geçerli klavyeye izin verilir. ClipboardManager.onPrimaryClipChanged() dinleyici çağrısı artık yalnızca bu tür kısıtlamaları karşılayan uygulamalar için tetikleniyor. ClipboardManager.getPrimaryClip ve ClipboardManager.getPrimaryClipDescription , istekte bulunan uygulama varsayılan giriş yöntemi düzenleyicisi (IME) değilse veya giriş odağına sahip değilse null değerini döndürür.

Çalışma zamanı izinleri etkinlik tanımayı içerir

Bir uygulama arka planda cihaz konumuna eriştiğinde kullanıcılar artık bir etkinlik tanıma iletişim kutusu görüyor. Katı kısıtlamalı çalışma zamanı izinleri Android 10'da uygun şekilde beyaz listeye eklenmelidir.

MANAGE_DEVICE_ADMINS izni

Android 10, MANAGE_DEVICE_ADMINS iznini imza veya ayrıcalıklı yerine yalnızca imza olarak değiştirir. Bu, yalnızca platform imzalı uygulamaların diğer uygulamaları cihaz yöneticisi olarak ayarlayabileceği anlamına gelir.

API iyileştirmelerini paylaşma

Android 10 , paylaşımla ilgili bir dizi yeni Android Platformu API özelliği sağlar. Uygulamanızda Paylaşım Sayfası kodunu değiştirdiyseniz uygulamanızın bu yeni özellikleri desteklediğinden emin olun. Uygulamanızda Paylaşım Sayfası kodunu değiştirmediyseniz bu yeni özellikleri desteklemek için herhangi bir şey yapmanıza gerek yoktur.

Android Çalışma Zamanı (ART)

İmzalı Yapılandırma

İmzalı Yapılandırma özelliği, APK'lara SDK dışı arayüz kısıtlamalarının yapılandırılmasına izin verir. Bu, AndroidX'in bunları güvenle kullanabilmesi için SDK olmayan belirli arayüzlerin kara listeden kaldırılmasına olanak tanır. Bu değişiklikle AndroidX, eski Android sürümlerine yeni özellikler için destek ekleyebilir.

Verim

Cgroup soyutlama katmanı

Android 10, geliştiricilerin bir iş parçacığına veya işleme uygulanacak bir dizi kısıtlamayı tanımlamak için kullanabileceği bir grup soyutlama katmanı ve görev profilleri içerir.

Düşük Bellekli Katil Programı (lmkd)

Android 10, bellek basıncı tespiti için çekirdek basıncı durma bilgisi (PSI) monitörlerini kullanan yeni bir lmkd modunu destekler.

Güç

Platform güç yönetimi

Android 10'da Doze modu , pille çalışan cihazların yanı sıra her zaman açık olan cihazlarda da etkinleştirilebiliyor.

Rutin pil tasarrufu

Android 10, rutine dayalı olarak adlandırılan yeni bir pil tasarrufu programı seçeneği sunar. Rutin pil tasarrufu, OEM tarafından seçilen bir uygulamanın daha akıllı pil tasarrufu planlaması için sisteme sinyaller sağlamasına olanak tanır. Bu seçenek yapılandırma gerektirir ve uygulanması isteğe bağlıdır.

Güç istatistikleri HAL

Android 10'da IPowerStats.hal , IPower.hal Güç İstatistikleri Koleksiyonu API'lerini değiştirir. Power Hal hala API'leri desteklerken, gelecekte sadece güç istatistikleri HAL'a taşınacaklar.

Power Stats HAL, desteklenen cihazlar için cihaz içi güç ölçümünden elde edilen veri toplanmasını desteklemek için yeni API'ler içerir. Mevcut güç istatistikleri toplama API'leri de esnekliği artırmak için güncellenir. Güç ipucu API'leri Power Hal'de kalır ve değişmez.

Termal azaltma

Android 10'daki termal çerçeve, CPU, GPU, pil, cilt ve soğutma cihazı dahil olmak üzere termal alt sistem sıcaklık sensörü için cihaz arayüzlerini özetler. Çerçeve, kısma başlatmak için termal durumunu sorgulamak için bir yoklama arayüzü ve bir eşik aşıldığında kullanıcıya bir mesaj göndermek için bir geri arama arayüzü getirir.

Android 10, bu üç yeni yöntemi kullanarak IThermalService arayüzü aracılığıyla yeni veri türlerini sağlar:

Uygulamalar PowerManager sınıfında dinleyicileri ekler ve kaldırır ve sıcaklık durumuna erişir. Yalnızca Android API veya cihaz üreticisi API gibi güvenilir bir sistem hizmeti, ilişkili nedensel olaylar hakkında bilgilere erişebilir. Cihaz üreticileri veya SOC üreticileri, yeni termal çerçevenin tam işlevselliğini sağlamak için thermal HAL 2.0 uygulamalıdır.

Termal azaltma uygulama örneği için referans uygulamasına bakın.

Güncellemeler

APEX dosya formatı

Android Pony Express (Apex), modüler sistem bileşenleri için yükleme akışında kullanılan yeni bir kap formatıdır.

Dinamik bölümler

Dinamik bölümler , OTA güncellemeleri sırasında bölümlerin oluşturulmasına, yeniden boyutlandırılmasına veya yok edilmesine izin veren bir kullanıcı alanı bölümleme sistemi tanıtır. Cihaz üreticilerinin system , vendor ve product gibi bireysel bölüm boyutları hakkında endişelenmeleri gerekmez. Bunun yerine, büyük bir super bölüm tahsis edilir ve alt bölümler içinde dinamik olarak boyutlandırılabilir.

Dinamik Sistem Güncellemeleri

Dinamik Sistem Güncellemeleri (DSU), kullanıcıların internetten indirebilecekleri ve mevcut sistem görüntüsünü bozma riski olmadan deneyebilecekleri bir Android Sistem görüntüsü yapmanıza olanak tanır.

Çok kullanıcı yedekleme ve geri yükleme

Android 10, bir cihazdaki tüm kullanıcılar için yedekleme ve geri yükleme işlevlerini destekler. Daha önce, yedekleme ve geri yükleme yalnızca sistem kullanıcısı için mevcuttu. Sistem olmayan kullanıcılar için yedekleme ve geri yükleme, ayarlar, duvar kağıdı ve sistem bileşenleri için yalnızca kısmi kapsama sahip olduğu için varsayılan olarak kapatılır.

Kaplamalar

userdebug veya eng Builds ile çalışan kullanıcılar, Sistem bölümünü okuma yazma olarak verimli bir şekilde geri yükleyebilmeyi ve ardından sistem görüntüsünü yenilemeden herhangi bir sayıda dosya eklemeyi veya değiştirebilmeyi bekler. Üst referans olarak yazılabilir bir dosya sistemi için yedekleme depolamasını otomatik olarak ayarlayan Overlayfs kullanabilirsiniz ve alt üzerine monte edilir. Bu eylemler adb disable-verity ve adb remount isteklerinde gerçekleşir. Daha fazla ayrıntı için, AOSP'deki Overlayfs ReadMe'ye bakın.

Kurtarma modunda paylaşılan kütüphane desteği

Android 10'da, tüm kurtarma modu yürütülebilir ürünlerinin statik olma ihtiyacını ortadan kaldıran kurtarma bölümünde paylaşılan kütüphaneler mevcuttur. Paylaşılan kütüphaneler, bölümdeki /system/lib (OR /system/lib64 ) dizini altında bulunur.

Kurtarma bölümüne yeni bir paylaşılan kütüphane eklemek için, recovery_available: true veya recovery: true Paylaşılan Kütüphane'nin Android.bp doğru ekleyin. Birincisi kütüphaneyi hem sistem hem de kurtarma bölümlerine yüklerken, ikincisi yalnızca kurtarma bölümüne yükler.

Paylaşılan kütüphane desteği Android'in Make tabanlı yapı sistemi ile oluşturulamaz. Kurtarma modu için mevcut bir statik yürütülebilir dosyayı dinamik olana dönüştürmek için, LOCAL_FORCE_STATIC_EXECUTABLE := true Android.mk veya static_executable: true ( Android.bp ).

Kullanıcı Veri Kontrol Noktası (UDC)

Android 10, bir Android Hava (OTA) güncellemesi başarısız olduğunda Android'in önceki durumuna geri dönmesini sağlayan Kullanıcı Veri Kontrol Noktası (UDC) özelliğini sunar.