Halaman ini merangkum fitur-fitur utama dalam rilis Android 10, dan menyediakan tautan ke informasi tambahan. Ringkasan fitur ini diatur menurut lokasi dokumentasi fitur di situs ini.
Membangun
java_sdk_library
Android 10 memperkenalkan java_sdk_library
, aturan build baru untuk memperbaiki masalah kompatibilitas untuk library Java bersama. Produsen perangkat dapat menggunakan mekanisme ini untuk perpustakaan Java bersama mereka sendiri untuk mempertahankan kompatibilitas mundur untuk API mereka.
Arsitektur
Komponen sistem modular
Android 10 memodulasi beberapa komponen sistem Android dan memungkinkannya diperbarui di luar siklus rilis Android normal. Beberapa modul meliputi:
- Waktu Proses Android
- Konskripsi
- Pemecah DNS
- UI Dokumen
- Layanan Ekst
- Media
- ModulMetadata
- Jaringan
- Pengontrol Izin
- Data Zona Waktu
Lapisan abstraksi perangkat keras (HAL)
Android 10 menambahkan dukungan untuk HAL untuk dimatikan secara otomatis saat mereka tidak memiliki klien.
Inti
ABI
Android 10 menyertakan dukungan untuk utilitas pemantauan ABI baru untuk membantu membandingkan, melacak, dan mengurangi perubahan ABI kernel yang memengaruhi kompatibilitas dengan modul kernel.
Android 10 juga memperkenalkan pemeriksa penggunaan ABI berbasis simbol . Pemeriksa dapat mendeteksi binari bawaan yang sudah usang pada waktu pembuatan, sehingga pengembang perpustakaan bersama dapat mengetahui binari bawaan mana yang mungkin rusak oleh perubahannya dan biner bawaan mana yang harus dibuat ulang.
Android Live-Lock Daemon
Android 10 menyertakan Android Live-Lock Daemon (llkd) , yang dirancang untuk menangkap dan mengurangi kebuntuan kernel.
vDSO32 pada ARM64
Android 10 mendukung penggunaan vDSO32 pada kernel 64-bit , yang memberikan peningkatan 0,4 persen dalam masa pakai baterai dan peningkatan kinerja lainnya.
entri fstab untuk partisi yang dipasang lebih awal
Android 10 memerlukan perangkat untuk menentukan entri fstab
untuk partisi yang dipasang lebih awal menggunakan file fstab
di ramdisk tahap pertama.
HIDL
Offload BroadcastQueue
Android 10 menyertakan BroadcastQueue
baru yang diturunkan ke antrean latar belakang dan latar depan yang ada. Antrian offload memiliki perilaku prioritas dan waktu tunggu yang sama seperti antrian latar belakang. Untuk mencegah pemblokiran antrean latar belakang, di mana siaran yang lebih menarik atau dapat dilihat pengguna dapat terjadi, antrean offload menangani siaran BOOT_COMPLETED
, yang didengarkan oleh banyak aplikasi dan membutuhkan waktu lama untuk diselesaikan. Antrian offload saat ini hanya menangani siaran BOOT_COMPLETED
, tetapi berpotensi menangani siaran panjang lainnya.
Layanan penangguhan sistem
Android 10 menggantikan utas di libsuspend
bertanggung jawab untuk memulai penangguhan sistem dengan layanan SystemSuspend HIDL . Implementasi ini menawarkan fungsionalitas yang setara dengan versi sebelumnya sambil memanfaatkan manfaat dari infrastruktur Android HIDL.
safe_union di HIDL
Android 10 memperkenalkan safe_union
, jenis serikat pekerja yang diberi tag secara eksplisit, di HIDL.
Konfigurasi
ConfigStore HAL
Android 10 tidak lagi menggunakan ConfigStore HAL karena konsumsi memori yang tinggi dan penggunaan yang sulit, dan mengganti HAL dengan properti sistem .
API Skema File Konfigurasi
Platform Android berisi sejumlah besar file XML untuk menyimpan data konfigurasi. Banyak file XML berada di partisi vendor
, tetapi dibaca di partisi system
. Dalam hal ini, skema file XML berfungsi sebagai antarmuka di dua partisi, dan oleh karena itu skema harus ditentukan secara eksplisit dan harus berkembang dengan cara yang kompatibel ke belakang. Sebelum Android 10, platform tidak menyediakan mekanisme yang mengharuskan penetapan dan penggunaan skema XML, atau untuk mencegah perubahan skema yang tidak kompatibel. Android 10 menyediakan mekanisme ini, yang disebut Config File Schema API .
Properti sistem sebagai API
Properti sistem yang diakses di seluruh partisi sysprop
menjadi file deskripsi sysprop, dan API untuk mengakses properti dibuat sebagai fungsi konkret untuk C++ dan kelas untuk Java.
Antarmuka vendor (VINTF) objek
VINTF
Perubahan pada VINTF di Android 10 meliputi:
- Menghentikan tag versi AVB
- Menambahkan informasi kernel dalam paket OTA
- Membangun ODM bermanifestasi secara resmi
- Menambahkan matriks kompatibilitas produk
- Mengaitkan entri manifes dengan modul HAL di sistem build
bootloader
Ramdisk
Di Android 10, sistem file root tidak lagi disertakan dalam ramdisk.img
dan malah digabung menjadi system.img
.
Membangun partisi ODM
Android 10 menyertakan dukungan untuk membangun partisi odm
menggunakan sistem build Android. Anda dapat menggunakan partisi /odm
terpisah untuk penyesuaian, yang memungkinkan Anda menggunakan satu gambar vendor untuk beberapa SKU perangkat keras. Hal ini memungkinkan produsen desain asli (ODM) untuk menyesuaikan paket dukungan papan vendor sistem-on-chip (SoC) (BSP) ke perangkat spesifik mereka (papan mereka). Mereka dapat mengimplementasikan modul kernel untuk komponen khusus papan, daemon khusus papan, atau fitur mereka sendiri pada lapisan abstraksi perangkat keras (HAL). Mereka juga dapat mengganti atau menyesuaikan komponen SoC.
Versi header gambar boot
Android 10 memperbarui header image boot ke versi 2, yang menyertakan bagian untuk menyimpan image device tree blob (DTB). Pengujian VTS Android 10 memverifikasi bahwa semua perangkat yang diluncurkan dengan Android 10 menggunakan header image boot versi 2 dan menyertakan image DTB yang valid sebagai bagian dari image boot/pemulihan.
Gambar pemulihan untuk perangkat non-A/B
Di Android 9 dan yang lebih tinggi, image pemulihan perangkat harus berisi informasi dari image overlay . Produsen perangkat dapat menggunakan DeviceTree atau Konfigurasi Lanjut dan Antarmuka Daya (ACPI) untuk menjelaskan semua perangkat yang tidak dapat ditemukan. Android 10 dan yang lebih tinggi menyertakan dukungan untuk arsitektur yang menggunakan ACPI, bukan DeviceTree blob for overlay (DTBO).
AIDL yang stabil
Android 10 menambahkan dukungan untuk Android Interface Definition Language (AIDL) yang stabil, cara baru untuk melacak antarmuka program aplikasi (API)/antarmuka biner aplikasi (ABI) yang disediakan oleh antarmuka AIDL.
Memindahkan fastboot ke ruang pengguna
Android 10 menambahkan dukungan untuk partisi yang dapat diubah ukurannya dengan memindahkan implementasi fastboot dari bootloader ke ruang pengguna.
Menampilkan
Pemutaran video HDR
Android 10 mendukung pemutaran HDR10, VP9, dan HDR10+ .
Klasifikasi teks
Klasifikasi teks menggunakan teknik pembelajaran mesin untuk membantu pengembang mengklasifikasikan teks. Android 10 memperkenalkan dua metode ke TextClassifier API: suggestConversationActions
dan detectLanguage
. Metode suggestConversationActions
menghasilkan balasan dan tindakan yang disarankan dari percakapan tertentu dan metode detectLanguage
mendeteksi bahasa teks.
Dukungan untuk rendering font Zawgyi
Zawgyi adalah font paling populer di Myanmar. Android 9 dan yang lebih rendah tidak mendukung rendering Zawgyi karena tidak sesuai dengan Unicode . Android 10 mengatasi hal ini dengan menyertakan font Unicode yang mampu merender Unicode Burma dan Zawgyi secara bersamaan. Tidak ada pekerjaan implementasi yang diperlukan untuk mendukung rendering font Zawgyi pada perangkat yang diluncurkan dengan Android 10. Jika perangkat Anda memiliki implementasi khusus untuk mendukung Zawgyi, Anda dapat:
- Kembalikan perubahan tersebut dan gunakan metode yang didukung platform.
- Simpan font Zawgyi yang umum di sistem Anda dan gunakan kode lokal
my-qaag
difonts.xml
Anda. Untuk informasi selengkapnya, lihat catatan rilis Unicode CLDR di Zawgyi (Qaag) .
Batasan untuk menyembunyikan ikon aplikasi
Android 10 membatasi kemampuan aplikasi untuk menyembunyikan ikon peluncurnya. Jika aplikasi tidak mengaktifkan aktivitas peluncur, sistem akan menampilkan aktivitas yang disintesis di peluncur; aktivitas yang disintesis ini mewakili halaman detail aplikasi dalam pengaturan sistem.
Untuk informasi selengkapnya tentang logika yang digunakan untuk menampilkan ikon aplikasi, termasuk jenis aplikasi yang ikon aplikasinya tidak ditampilkan, lihat dokumentasi untuk getActivityList()
di referensi API.
Pengaturan
Untuk meningkatkan aksesibilitas, Android 10 menyertakan pengaturan waktu tunggu yang dapat disesuaikan pengguna. Perubahan API dan Pengaturan disertakan dengan Android 10. Jika Anda menyesuaikan Pengaturan, pastikan fitur ini didukung. Jika Anda memiliki elemen UI yang time out di perangkat Anda, gunakan timeout API pada elemen tersebut. Untuk informasi selengkapnya, lihat panduan aksesibilitas developer Android .
Kesesuaian
Dokumen Definisi Kompatibilitas Android (CDD)
Dokumen Definisi Kompatibilitas Android 10 mengulangi versi sebelumnya dengan pembaruan untuk fitur baru dan perubahan persyaratan untuk fungsionalitas yang dirilis sebelumnya.
tes
Suite Uji Kompatibilitas (CTS)
Android CTS memiliki halaman catatan rilis terpisah yang mencantumkan banyak perubahan penting untuk Android 10.
Unduhan CTS
Paket CTS yang mendukung Android 10 tersedia di halaman Unduhan CTS . Kode sumber untuk pengujian yang disertakan dapat disinkronkan dengan tag android-cts-10_r1
di pohon sumber terbuka.
CTS shim APEX
Android 10 memperkenalkan paket yang disebut CtsShimApex
, yang harus diinstal sebelumnya pada perangkat untuk menulis pengujian CTS untuk pengelolaan APEX.
Uji mode harness
Mode uji coba CTS membantu pengembang mengotomatiskan pengujian untuk perangkat atau armada perangkat.
Mode Aplikasi Instan
Mulai Android 10, CTS berjalan dalam mode Aplikasi Instan , yang berarti menginstal APK pengujian sebagai Aplikasi Instan dan menjalankan pengujian.
Selain mode CTS untuk Aplikasi Instan, Android 10 menyertakan Pemverifikasi CTS untuk Aplikasi Instan
Tes audio pro CTS Verifier
Android 10 menambahkan pengujian CTS Verifier untuk kepatuhan Pro Audio .
Tes MIDI Pemverifikasi CTS
Di Android 10, pengujian CTS Verifier MIDI menguji fungsionalitas MIDI dengan antarmuka USB MIDI, antarmuka Bluetooth MIDI, dan jalur perangkat MIDI virtual.
interpretasi tes CTS
Android 10 memperbarui mekanisme untuk menafsirkan hasil CTS .
Vendor Test Suite (VTS)
Pengujian VTS dengan debug ramdisk
Di Android 10, image sistem generik (GSI) yang digunakan untuk menjalankan pengujian kepatuhan CTS-on-GSI/VTS berubah dari userdebug menjadi tipe build pengguna, karena GSI bertanda tangan rilis. Namun, perintah adb root
yang memberikan izin root host ke perangkat Android yang sedang diuji tidak tersedia di build pengguna. Ini adalah masalah karena VTS membutuhkan adb root
untuk dijalankan.
Ramdisk debug diperkenalkan untuk memungkinkan adb root
, jika perangkat tidak terkunci. Ini menyederhanakan alur pengujian dengan menggunakan kembali system.img
build pengguna yang sama (baik GSI atau system.img
OEM).
Validasi Komposer Perangkat Keras
Android 10 menambahkan kelas pengujian VTS baru untuk validasi Hardware Composer melalui antarmuka readback
di IComposerClient.hal
. Jika vendor tidak menerapkan readback
, tes lulus secara otomatis.
Men-debug
Memuat pustaka bersama dengan pemuat kelas yang berbeda
Di Android 9 dan yang lebih rendah, aplikasi memuat pustaka bersama Java yang ditautkan di pemuat kelas aplikasi. Di Android 10, framework menggunakan class loader yang berbeda dari class loader aplikasi untuk memuat library bersama Java yang ditautkan melalui uses-library
atau uses-static-library
.
Secara umum, aplikasi tidak boleh mengandalkan penggunaan pemuat kelas tertentu, jadi perubahan ini tidak boleh merusak perilaku aplikasi. Namun, jika aplikasi bergantung pada penggunaan pemuat kelas tunggal, perilaku tersebut akan rusak. Selain itu, visibilitas paket-pribadi dari kelas dalam paket yang sama masih didukung, tetapi tidak didukung di pustaka bersama.
Produsen perangkat mungkin melihat masalah kompatibilitas aplikasi saat mereka menguji perangkat mereka yang menjalankan Android 10.
Fitur keamanan
Untuk daftar peningkatan yang lebih lengkap terkait keamanan dan privasi saja, lihat halaman peningkatan keamanan dan privasi Android 10 .
Otentikasi wajah
Otentikasi wajah memungkinkan pengguna untuk membuka kunci perangkat mereka hanya dengan melihat bagian depan perangkat mereka. Android 10 menambahkan dukungan untuk tumpukan autentikasi wajah baru yang dapat memproses bingkai kamera dengan aman, menjaga keamanan dan privasi selama autentikasi wajah pada perangkat keras yang didukung. Android 10 juga menyediakan cara mudah untuk implementasi yang mematuhi keamanan guna mengaktifkan integrasi aplikasi untuk transaksi seperti perbankan online atau layanan lainnya.
Akses yang diperluas
Agen tepercaya, mekanisme dasar yang digunakan oleh mekanisme autentikasi tersier seperti Smart Lock, hanya dapat memperpanjang buka kunci di Android 10. Agen tepercaya tidak lagi dapat membuka kunci perangkat yang terkunci dan hanya dapat membuat perangkat tetap terbuka kuncinya selama maksimal empat jam.
Enkripsi
OEMCrypto
Android 10 menggunakan OEMCrypto API versi 15.
Pengujian
Bounds Sanitizer
Android 10 menyebarkan BoundsSanitizer (BoundSan) di Bluetooth dan codec. BoundSan menggunakan pembersih batas UBSan. Mitigasi ini diaktifkan pada tingkat per-modul. Ini membantu menjaga komponen penting Android tetap aman dan tidak boleh dinonaktifkan. BoundSan diaktifkan di codec berikut:
-
libFLAC
-
libavcdec
-
libavcenc
-
libhevcdec
-
libmpeg2
-
libopus
-
libvpx
-
libspeexresampler
-
libvorbisidec
-
libaac
-
libxaac
Sanitasi Luapan Bilangan Bulat
Android 10 mengaktifkan Integer Overflow Sanitization (IntSan) dalam codec perangkat lunak. Pastikan kinerja pemutaran dapat diterima untuk semua codec yang tidak didukung di perangkat keras perangkat. IntSan diaktifkan di codec berikut:
-
libFLAC
-
libavcdec
-
libavcenc
-
libhevcdec
-
libmpeg2
-
libopus
-
libvpx
-
libspeexresampler
-
libvorbisidec
Eksekusi hanya memori
Secara default, bagian kode yang dapat dieksekusi untuk biner sistem AArch64 ditandai hanya-eksekusi (tidak dapat dibaca) sebagai mitigasi pengerasan terhadap serangan penggunaan kembali kode yang tepat waktu. Kode yang menggabungkan data dan kode bersama-sama dan kode yang dengan sengaja memeriksa bagian-bagian ini (tanpa terlebih dahulu memetakan kembali segmen memori agar dapat dibaca) tidak lagi berfungsi. Aplikasi dengan SDK target Android 10 (API level 29 atau lebih tinggi) akan terpengaruh jika aplikasi mencoba membaca bagian kode dari pustaka sistem yang mengaktifkan memori hanya-eksekusi (XOM) di memori tanpa terlebih dahulu menandai bagian tersebut sebagai dapat dibaca.
Scudo
Scudo adalah pengalokasi memori mode pengguna dinamis yang dirancang agar lebih tahan terhadap kerentanan terkait tumpukan. Ini menyediakan alokasi C standar dan primitif deallokasi, serta primitif C++.
ShadowCallStack
ShadowCallStack
(SCS) adalah mode instrumentasi LLVM yang melindungi terhadap alamat pengirim yang ditimpa (seperti buffer overflows stack) dengan menyimpan alamat pengembalian fungsi ke instance ShadowCallStack
yang dialokasikan secara terpisah dalam prolog fungsi fungsi nonleaf dan memuat alamat pengirim dari instance ShadowCallStack
di epilog fungsi.
audio
Audio HAL
Android 10 menyertakan kemampuan baru berikut untuk audio HAL .
-
AudioSource
-
AudioFormat
-
AudioChannelMask
Persyaratan tambahan ditambahkan untuk HAL audio dan implementasi subsistem.
Efek pra-pemrosesan
Android menyediakan efek prapemrosesan , seperti pembatalan gema akustik, kontrol penguatan otomatis, dan peredam bising. Android 10 menyertakan persyaratan baru untuk merekam dengan VOICE_COMMUNICATION
.
Manajer kebijakan audio
Android 10 menyertakan pemfaktoran ulang yang signifikan dari pengelola kebijakan audio untuk memberikan lebih banyak fleksibilitas guna mendukung kasus penggunaan otomotif yang kompleks.
Audio resolusi tinggi
Android 10 menyertakan penyempurnaan berikut untuk audio beresolusi tinggi .
- Dukungan mengambang
- Dukungan frekuensi 192 KHz
- Dukungan delapan saluran
- Penyertaan informasi waktu
Penangkapan bersamaan
Android 10 meningkatkan pengalaman pengguna pengambilan secara bersamaan yang memerlukan lebih dari satu pengambilan audio aktif untuk dilakukan secara bersamaan.
AudioPlaybackCapture
Android 10 berisi API baru yang disebut AudioPlaybackCapture
, yang memberi aplikasi kemampuan untuk menyalin audio yang sedang diputar oleh aplikasi lain. Fitur ini mirip dengan screen capture, tetapi untuk audio. Kasus penggunaan utama adalah mengaktifkan aplikasi streaming untuk menangkap audio yang dimainkan oleh game.
API pengambilan tidak memengaruhi latensi aplikasi yang audionya sedang direkam.
MIDI
Android 10 mempermudah porting aplikasi audio profesional menggunakan MIDI ke platform Android menggunakan AMidi
NDK API .
Kamera
Untuk ringkasan perubahan pada API kamera, HAL kamera, dan modul kamera yang diperkenalkan di Android 10, lihat pembaruan kamera Android 10 .
Peningkatan privasi kerangka kamera
Android 10 memperkenalkan peningkatan privasi pada kerangka kerja kamera. Untuk menghindari pengungkapan informasi kamera statis yang berpotensi sensitif di CameraCharacteristics
tanpa persetujuan pengguna, aplikasi harus mendapatkan izin CAMERA
untuk mengambil metadata statis dengan tag sensitif privasi menggunakan metode getCameraCharacteristics
.
Untuk mendapatkan daftar kunci karakteristik kamera yang memerlukan izin CAMERA
, panggil metode getKeysNeedingPermission
.
Permintaan konfigurasi ulang sesi
Android 10 menambahkan fitur kueri konfigurasi ulang sesi , yang memungkinkan peningkatan kinerja melalui kontrol yang lebih besar atas logika konfigurasi ulang parameter sesi internal.
API manajemen buffer kamera HAL3
Android 10 memperkenalkan API manajemen buffer HAL3 kamera opsional yang memungkinkan Anda menerapkan logika manajemen buffer untuk mencapai memori yang berbeda dan menangkap tradeoff latensi dalam implementasi HAL kamera.
Kamera HAL sakelar kamera fisik dinamis
Android 10 memperkenalkan tag metadata dinamis, ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
, yang menunjukkan kamera fisik dasar yang aktif dari perangkat kamera logis. Untuk informasi lebih lanjut, lihat Dukungan Multi-Kamera .
Dukungan untuk menyembunyikan kamera fisik
Di Android 10, kamera HAL dapat mengurangi jumlah kamera fisik yang dapat langsung dibuka oleh suatu aplikasi. Untuk detail selengkapnya, lihat Dukungan Multi-Kamera .
Camera2 VNDK API
Di Android 10, modul vendor dapat mengakses dan mengontrol perangkat kamera melalui dua antarmuka HIDL standar baru, android.frameworks.cameraservice.service@2.0
dan android.frameworks.cameraservice.device@2.0
. Untuk membuat penggunaan antarmuka HIDL lebih nyaman, Android 10 juga memperkenalkan pustaka yang tersedia untuk vendor, libcamera2_vendor
. Pustaka ini mirip dengan pustaka Camera NDK , dengan sedikit modifikasi.
Konfigurasi aliran
Android 10 menambahkan fitur yang memungkinkan vendor kamera untuk mengiklankan aliran kamera yang direkomendasikan ke klien kamera dan untuk mendukung API untuk mengkueri kombinasi aliran .
Persyaratan kombinasi aliran kamera
Perangkat yang menjalankan Android 10 tidak lagi diperlukan untuk mendukung kombinasi streaming dengan streaming subkamera fisik. Namun, perangkat yang menjalankan Android 10 dengan kamera perangkat HAL versi 3.5 harus mendukung isStreamCombinationSupported()
untuk mengizinkan aplikasi menanyakan apakah kombinasi aliran yang berisi aliran fisik didukung.
Untuk informasi lebih lanjut, lihat Dukungan Multi-Kamera .
Pencitraan HEIF
Android 10 menyediakan dukungan kamera asli untuk gambar format file gambar (HEIF) efisiensi tinggi , yang menawarkan kualitas gambar yang lebih baik dan ukuran yang lebih kecil dibandingkan gambar JPEG. Perangkat harus memiliki encoder HEIC atau HEVC untuk mendukung gambar HEIF.
Kamera monokrom
Android 10 menyediakan dukungan tambahan untuk format aliran Y8, metadata statis array filter warna monokrom dan inframerah-dekat (NIR), dan fungsi DngCreator
untuk kamera monokrom .
Konektivitas
Menelepon dan mengirim pesan
Nomor darurat dan panggilan darurat
Android 10 memberikan dukungan yang ditingkatkan untuk panggilan darurat . Dalam keadaan darurat, perangkat dengan dukungan untuk IRadio HAL v1.4 dapat memulai panggilan darurat menggunakan nomor darurat yang diambil dari sumber seperti kartu SIM, sinyal jaringan, atau database Android. Nomor dapat dikategorikan berdasarkan kategori layanan darurat seperti polisi, kebakaran, dan ambulans.
API panggilan grup
API panggilan grup adalah ekstensi dari API eMBMS yang ditambahkan di Android 9. API baru menentukan standar bagi aplikasi untuk bergabung dan disiarkan pada panggilan grup siaran seluler dengan berinteraksi dengan paket middleware eMBMS. Panggilan grup memerlukan dukungan dari vendor chipset, vendor middleware, dan operator seluler agar berfungsi dengan baik. Dokumentasi pengembang ada di developer.google.com .
Kemampuan SIM jarak jauh
Android 10 memperkenalkan kemampuan SIM jarak jauh yang memungkinkan aplikasi perpesanan pada perangkat host Android untuk mengirim pesan SMS melalui ponsel menggunakan mekanisme seperti Bluetooth. Untuk informasi selengkapnya, lihat dokumentasi referensi untuk metode getSubscriptionType
dan konstanta SUBSCRIPTION_TYPE_REMOTE_SIM
.
Beberapa eSIM
Di Android 10, kelas EuiccManager
mendukung perangkat dengan beberapa SIM (eSIM) tertanam , atau eUICC.
pembaruan eSIM
Untuk perangkat yang menjalankan Android 10 yang mendukung eSIM, larik ID slot eUICC yang tidak dapat dilepas harus ditentukan. Perangkat juga harus mendukung IRadio HAL v1.4 dan IRadioConfig HAL v1.2. Untuk informasi selengkapnya, lihat Menerapkan Persyaratan eSIM dan Modem .
5G Tidak Mandiri (NSA)
Android 10 menambahkan dukungan untuk 5G non-standalone (NSA) . 5G NSA merupakan solusi untuk jaringan 5G dimana jaringan tersebut didukung oleh infrastruktur 4G yang sudah ada. Di Android 10, perangkat dapat menampilkan ikon 5G di bilah status saat perangkat terhubung ke jaringan 5G.
Saran akun telepon
Android 10 memperkenalkan layanan saran akun telepon , yang memungkinkan saran untuk akun telepon ditampilkan kepada pengguna saat melakukan panggilan.
Pembawa
Memigrasikan pengaturan Jaringan Seluler
Android 10 menyusun ulang kode UI pengaturan Jaringan Seluler dan memindahkannya dari tumpukan Telepon ke tumpukan Pengaturan. Untuk mendukung kode yang dimigrasikan, ubah nilai konfigurasi setelan Jaringan Seluler berikut dari sumber daya Android ke sumber daya CarrierConfig
:
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
Pengidentifikasi perangkat
Pengenal perangkat tetap (IMEI/MEID, IMSI, dan serial build) dilindungi oleh izin istimewa dengan akses yang juga diberikan ke aplikasi pemilik perangkat dan profil. Karena nomor seri IMSI dan SIM disediakan oleh operator, akses ke pengidentifikasi ini diberikan ke paket dengan hak istimewa operator.
Wifi
Pilihan jaringan
Android terus mengevaluasi kualitas jaringan yang terhubung dan menilai kualitas jaringan yang tersedia. Android 10 telah memperbarui algoritme dan prosedur untuk memilih dan beralih di antara jaringan Wi-Fi .
Pemindaian offload jaringan pilihan Wi-Fi
Android 10 memperkenalkan metode API opsional bernama setDeviceMobilityState()
di WifiManager
yang meningkatkan interval antara pemindaian network offload (PNO) pilihan saat perangkat tidak bergerak untuk mengurangi penggunaan daya.
Wi-Fi Operator
Di Android 10, perangkat dengan fitur Wi-Fi operator secara otomatis terhubung ke jaringan Wi-Fi operator yang dikonfigurasi (jaringan dengan sertifikat kunci publik).
Koneksi Mudah Wi-Fi
Di Android 10, perangkat dapat menggunakan Wi-Fi Easy Connect , yang menggunakan protokol penyediaan perangkat (DPP) yang diperkenalkan oleh Wi-Fi Alliance (WFA), untuk menyediakan dan mengonfigurasi perangkat Wi-Fi.
Mode latensi rendah Wi-Fi
Android 10 memperkenalkan mode latensi rendah Wi-Fi , yang mengonfigurasi chip Wi-Fi untuk mengurangi latensi.
Server DHCP yang diperbarui
Sebagai bagian dari pembentukan payung layanan "Server IP", dnsmasq
sedang dihapus. Android 10 menggantikan penggunaan fungsional server DHCPv4 dengan komponen terpisah, terutama yang ditulis dalam Java agar lebih terintegrasi dengan bidang kontrol kerangka kerja Java. Ini meningkatkan keamanan dan kemampuan untuk diperbarui untuk server DHCP. Untuk detail lebih lanjut, lihat packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java
.
Tidak ada tindakan yang diperlukan untuk menerapkan perubahan ini: semua perangkat yang dirilis dan ditingkatkan ke Android 10 menggunakan DhcpServer
secara default. Jika Anda memiliki penyesuaian ke server DHCP, Anda dapat kembali ke perilaku Android 9 dengan menyetel pengaturan global tether_enable_legacy_dhcp_server=1
. DhcpServer
baru disertakan dalam modul komponen jaringan, sehingga penyesuaian apa pun ke fungsionalitas server DHCP harus di-upstream.
WPA3 dan Wi-Fi Ditingkatkan Terbuka
Android 10 menambahkan dukungan untuk Wi-Fi Protected Access 3 (WPA3) dan standar keamanan Wi-Fi Enhanced Open untuk memberikan privasi dan ketahanan yang lebih baik terhadap serangan yang diketahui.
Wi-Fi Langsung
Wi-Fi Direct , juga dikenal sebagai Wi-Fi P2P, memungkinkan perangkat pendukung untuk menemukan dan terhubung satu sama lain secara langsung menggunakan protokol Wi-Fi Direct tanpa akses jaringan internet atau seluler.
Peningkatan pengacakan MAC
Dari Android 10, pengacakan MAC diaktifkan secara default untuk mode klien, SoftAp, dan Wi-Fi Direct. Perangkat harus menyediakan opsi untuk mengaktifkan atau menonaktifkan pengacakan MAC untuk setiap SSID di UI sistem.
Passpoint R2
Android 10 memperkenalkan dukungan untuk fitur Passpoint R2 . Passpoint R2 mengimplementasikan pendaftaran online (OSU), metode standar untuk menyediakan profil Passpoint baru. Android 10 mendukung penyediaan profil EAP-TTLS menggunakan SOAP-XML.
NFC
NFC aman
NFC Aman memungkinkan emulasi kartu NFC off-host diaktifkan hanya saat layar perangkat tidak terkunci. Menerapkan fitur ini memberi pengguna opsi untuk mengaktifkan NFC Aman untuk keamanan yang lebih baik.
Android Beam tidak digunakan lagi
Di Android 10, Android Beam tidak lagi diperlukan dan antarmuka serta metode berikut tidak digunakan lagi.
Antarmuka:
-
NfcAdapter.CreateBeamUrisCallback
-
NfcAdapter.CreateNdefMessageCallback
-
NfcAdapter.OnNdefPushCompleteCallback
Metode:
-
createBeamUris
-
invokeBeam
-
isNdefPushEnabled
-
setBeamPushUris
-
setBeamPushUrisCallback
-
setNdefPushMessage
-
setNdefPushMessageCallback
-
setOnNdefPushCompleteCallback
-
createNdefMessage
-
onNdefPushComplete
Untuk menggunakan Android Beam, laporkan konstanta fitur android.sofware.nfc.beam
.
grafis
Kontrol Permukaan
Android 10 menambahkan ASurfaceControl
, cara baru SurfaceFlinger
untuk menerima buffer.
Implementasi grafis
Lapisan OpenGL ES
Android 10 memperkenalkan sistem pelapisan untuk GLES.
EGL 1.5
Android 10 mengimplementasikan antarmuka EGL 1.5 . Untuk informasi tentang fitur baru di EGL 1.5, lihat Spesifikasi Khronos Releases EGL 1.5 .
Vulkan
Android 10 menyertakan dukungan untuk grafis Vulkan 1.1. Platform ini juga mendukung VK_KHR_swapchain
v70, sehingga aplikasi Vulkan dapat membuat VkImage
yang didukung oleh memori swapchain.
Tingkat penyegaran kinerja
Android 10 menambahkan dukungan untuk kecepatan refresh kinerja. Fitur ini dimatikan secara default.
Interaksi
Otomotif
Audio otomotif
Di Android 10, konteks Audio HAL dipetakan ke AudioAttributes.usage
untuk mengidentifikasi suara. Android mendukung satu instance AUDIO_DEVICE_OUT_BUS
per konteks. IAudioControl
HAL menyediakan ekstensi khusus kendaraan ke Audio HAL .
Navigasi gestural
Android 10 memperkenalkan opsi untuk navigasi sistem yang sepenuhnya gestur. Untuk informasi tentang cara mempersiapkan aplikasi untuk menggunakan fitur ini, lihat halaman Navigasi gestur di situs Pengembang Android.
Jaringan saraf
Android 10 memperkenalkan pembaruan pada Neural Networks API dan Neural Networks HAL. Untuk ringkasan perubahan, lihat Jaringan saraf .
Dokumentasi Neural Networks baru dan yang diperbarui untuk Android 10:
- Ringkasan
- AHardwareBuffer
- Eksekusi Burst dan Antrian Pesan Cepat
- Cache Kompilasi
- Penemuan dan Penugasan Perangkat
- Ekstensi Vendor
Sensor
Sensor HAL 2.0
Sensor HAL 2.0 mendukung penggunaan antrean pesan cepat (FMQ) untuk mengirim peristiwa sensor dari HAL ke dalam Kerangka Sensor Android.
Sensor Mati
Android 10 menyertakan setelan developer untuk mematikan semua sensor di perangkat. Fitur ini membantu pengembang menguji fungsionalitas aplikasi mereka dalam situasi di mana sensor tersebut menjadi tidak tersedia, dan juga memberi pengguna cara untuk mengontrol sensor di perangkat mereka.
Jika perangkat Anda menggunakan implementasi default SensorService
, CameraService
, dan AudioPolicyService
, maka tidak diperlukan penyesuaian tambahan untuk desain referensi. Jika Anda memiliki sensor lain, lihat Penyesuaian untuk detail selengkapnya tentang mendukung fitur ini.
Media
Komponen media yang dapat diperbarui
Android 10 menyediakan komponen media yang dapat diperbarui yang memungkinkan pembaruan komponen sistem modular terkait media melalui infrastruktur Google Play Store atau melalui mekanisme over-the-air (OTA) yang disediakan mitra.
DRM media
Android 10 meningkatkan utilitas dan kegunaan MediaDrm
Java dan NDK API.
Penguraian kode
Android 10 mendukung decoding AV1 SW.
Izin
Android 10 menyediakan konfigurasi izin tambahan untuk transparansi dan privasi pengguna.
Penyedia kontak dan informasi afinitas
Mulai Android 10, data terkait afinitas kontak, yang dikelola oleh komponen Penyedia Kontak , diakses secara berbeda dibandingkan di Android 9 dan yang lebih rendah. Perubahan terkait aksesibilitas data ini meningkatkan privasi pengguna di semua perangkat Android 10 yang menggunakan komponen Penyedia Kontak. Basis data yang mendasarinya tidak lagi berisi data afinitas kontak. Oleh karena itu, aplikasi tidak dapat menulis atau membaca darinya.
Perubahan di Android 10 diharapkan berdampak besar pada API. Jika aplikasi Anda mengandalkan fitur usang yang disebutkan di Penyedia Kontak dan Informasi Afinitas, Anda mungkin ingin memperbarui aplikasi untuk mengimbangi perubahan apa pun. Selain itu, jika Anda menggunakan Penyedia Kontak versi bercabang, Anda harus memperbarui Penyedia Kontak Anda.
Izin lokasi tiga negara bagian
Izin lokasi tiga negara bagian di Android 10 memberi pengguna lebih banyak kontrol atas cara aplikasi mengakses lokasi perangkat mereka.
Pengingat akses lokasi latar belakang
Android 10 memiliki fitur pengingat lokasi akses latar belakang , yang meningkatkan transparansi tentang seberapa banyak akses yang dimiliki aplikasi ke lokasi perangkat dan membantu pengguna mempertahankan kontrol atas akses tersebut.
Batasi lokasi oportunistik
Saat aplikasi meminta lokasi perangkat, aplikasi dapat menunggu respons permintaan atau, dengan menggunakan pendengar lokasi aktif, mendapatkan pembaruan lokasi oportunistik. Mulai Android 10, untuk mendapatkan pembaruan lokasi oportunistik , pengembang harus menentukan bahwa mereka memerlukan pembaruan lokasi pasif dari kelas FusedLocationProviderClient
.
Peluncuran aplikasi latar belakang
Di Android 10, aplikasi yang tidak memiliki hak istimewa tanpa jendela yang terlihat tidak dapat diluncurkan sendiri secara otomatis ke latar depan. Perubahan ini menekan popup iklan dan pengambilalihan berbahaya. Tidak ada tindakan yang diperlukan untuk mengaktifkan ini.
Kotak pasir aplikasi
Di Android 10, aplikasi memiliki tampilan mentah sistem file yang terbatas, tanpa akses langsung ke jalur seperti /sdcard/DCIM
. Namun, aplikasi mempertahankan akses mentah penuh ke jalur khusus paketnya, seperti yang dikembalikan oleh metode apa pun yang berlaku seperti Context.getExternalFilesDir()
. Aplikasi masih memiliki akses mentah penuh ke jalur khusus paketnya.
Gunakan panduan sandbox aplikasi untuk berbagi file guna memberikan perincian berbagi data yang sesuai.
Batasi akses papan klip aplikasi
Di Android 10, akses papan klip telah diubah sehingga konten papan klip tidak dapat ditonton dengan memanggil ClipboardManager.getPrimaryClip
atau dengan menambahkan pendengar onPrimaryClipChanged
untuk pemberitahuan saat papan klip berubah. Ini meningkatkan privasi pengguna dan menonaktifkan aplikasi malvertizing dari memodifikasi clipboard.
Di Android 10, akses baca hanya diperbolehkan ke aplikasi saat ini dengan fokus input, atau ke keyboard saat ini. Panggilan pendengar ClipboardManager.onPrimaryClipChanged()
sekarang hanya diaktifkan untuk aplikasi yang memenuhi batasan tersebut. ClipboardManager.getPrimaryClip
dan ClipboardManager.getPrimaryClipDescription
mengembalikan null
jika aplikasi yang meminta bukan editor metode input (IME) default, atau tidak memiliki fokus input.
Izin runtime termasuk pengenalan aktivitas
Pengguna sekarang melihat dialog pengenalan aktivitas saat aplikasi mengakses lokasi perangkat di latar belakang. Izin waktu proses yang dibatasi secara ketat harus dimasukkan dalam daftar putih dengan benar di Android 10.
MANAGE_DEVICE_ADMINS izin
Android 10 mengubah izin MANAGE_DEVICE_ADMINS
dari tanda tangan atau hak istimewa menjadi tanda tangan saja. Ini berarti bahwa hanya aplikasi bertanda platform yang dapat menyetel aplikasi lain sebagai admin perangkat.
Berbagi peningkatan API
Android 10 menyediakan sejumlah fitur API Platform Android baru yang terkait dengan berbagi . Jika Anda telah mengubah kode Share Sheet dalam implementasi Anda, pastikan implementasi Anda mendukung fitur-fitur baru ini. Jika Anda belum mengubah kode Share Sheet dalam implementasi Anda, Anda tidak perlu melakukan apa pun untuk mendukung fitur baru ini.
Waktu Proses Android (ART)
Konfigurasi yang Ditandatangani
Fitur Signed Config memungkinkan konfigurasi penyematan pembatasan antarmuka non-SDK di APK. Ini memungkinkan penghapusan antarmuka non-SDK tertentu dari daftar hitam, sehingga AndroidX dapat menggunakannya dengan aman. Dengan perubahan ini, AndroidX dapat menambahkan dukungan untuk fitur baru pada versi Android yang lebih lama.
Pertunjukan
Lapisan abstraksi grup C
Android 10 includes a cgroup abstraction layer and task profiles, which developers can use to describe a set of restrictions to apply to a thread or a process.
Low Memory Killer Daemon (lmkd)
Android 10 supports a new lmkd
mode that uses kernel pressure stall information (PSI) monitors for memory pressure detection.
Power
Platform power management
In Android 10, Doze mode can be enabled on always-on devices as well as on battery-powered devices.
Routine battery saver
Android 10 introduces a new battery saver schedule option called based on routine . Routine battery saver allows an app chosen by the OEM to provide signals to the system for more intelligent battery saver scheduling. This option requires configuration, and is optional to implement.
Power stats HAL
In Android 10, IPowerStats.hal
replaces the power stats collection APIs in IPower.hal
. While the power HAL still supports the APIs, they'll be migrated exclusively to the power stats HAL in the future.
The power stats HAL includes new APIs to support the collection of data from on-device power measurement, for supported devices. The existing power stats collection APIs are also updated to improve flexibility. The power hinting APIs remain in power HAL and aren't changing.
Thermal mitigation
The thermal framework in Android 10 abstracts device interfaces for the thermal subsystem temperature sensor, including CPU, GPU, battery, skin, and cooling device. The framework introduces a polling interface to query thermal status to initiate throttling, and a callback interface to send a message to the user when a threshold is exceeded.
Android 10 provides the new data types through the IThermalService
interface using these three new methods:
-
getCurrentThermalStatus()
returns the current thermal status of the device as an integer, unless the device is undergoing throttling. -
addThermalStatusListener()
adds a listener. -
removeThermalStatusListener()
removes a previously added listener.
Apps add and remove listeners and access temperature status in the PowerManager
class. Only a trusted system service such as an Android API or device manufacturer API can access information about associated causal events. Device manufacturers or SoC makers must implement thermal HAL 2.0
to enable the full functionality of the new thermal framework.
For a thermal mitigation implementation example, see the Reference implementation .
Updates
APEX file format
Android Pony EXpress (APEX) is a new container format used in the install flow for modular system components.
Dynamic partitions
Dynamic partitions introduce a userspace partitioning system to Android, allowing partitions to be created, resized, or destroyed during OTA updates. Device makers don't have to worry about the individual sizes of partitions, such as system
, vendor
, and product
. Instead, one big super
partition is allocated, and subpartitions can be sized dynamically within it.
Dynamic system updates
Dynamic system updates (DSU) allows you to make an Android system image that users can download from the internet and try out without the risk of corrupting the current system image.
Multiuser backup and restore
Android 10 supports backup and restore functionality for all users on a device. Previously, backup and restore was only available for the system user. Backup and restore for nonsystem users is turned off by default as it has only partial coverage for settings, wallpaper, and system components.
Overlayfs
Users working with userdebug
or eng
builds expect to be able to efficiently remount the system partition as read-write and then add or modify any number of files without reflashing the system image. You can use Overlayfs
, which automatically sets up backing storage for a writable file system as an upper reference, and mounts over the lower. These actions happen in the adb disable-verity
and adb remount
requests. For more details, see the Overlayfs README in AOSP.
Shared library support in recovery mode
In Android 10, shared libraries are available in the recovery partition, which eliminates the need for all recovery mode executables to be static. The shared libraries are located under the /system/lib
(or /system/lib64
for 64-bit devices) directory in the partition.
To add a new shared library to the recovery partition, add recovery_available: true
or recovery: true
to Android.bp
of the shared library. The former installs the library to both the system and recovery partitions, while the latter installs it only to the recovery partition.
Shared library support can't be built with Android's make-based build system. To convert an existing static executable for the recovery mode to a dynamic one, remove LOCAL_FORCE_STATIC_EXECUTABLE := true
in Android.mk
or static_executable: true
(in Android.bp
).
User Data Checkpoint (UDC)
Android 10 introduces the User Data Checkpoint (UDC) feature , which allows Android to roll back to its previous state when an Android over-the-air (OTA) update fails.