Halaman ini merangkum fitur utama dalam rilis Android 10, dan menyediakan link ke informasi tambahan. Ringkasan fitur ini disusun berdasarkan lokasi dokumentasi fitur di situs ini.
Build
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 library Java bersama mereka sendiri guna mempertahankan kompatibilitas
mundur untuk API mereka.
Arsitektur
Komponen sistem modular
Android 10 membuat beberapa komponen sistem Android menjadi modular dan memungkinkan komponen tersebut diupdate di luar siklus rilis Android normal. Beberapa modul meliputi:
- Android Runtime
- Conscrypt
- Penyelesai DNS
- DocumentsUI
- ExtServices
- Media
- ModuleMetadata
- Jaringan
- PermissionController
- Data Zona Waktu
Hardware abstraction layer (HAL)
Android 10 menambahkan dukungan untuk HAL agar dimatikan secara otomatis saat tidak memiliki klien.
Kernel
ABI
Android 10 menyertakan dukungan untuk utilitas pemantauan ABI baru untuk membantu membandingkan, melacak, dan memitigasi perubahan ABI kernel yang memengaruhi kompatibilitas dengan modul kernel.
Android 10 juga memperkenalkan pemeriksa penggunaan ABI berbasis simbol. Pemeriksa dapat mendeteksi biner bawaan yang sudah usang pada waktu build, sehingga developer library bersama dapat mengetahui biner bawaan mana yang mungkin rusak akibat perubahan mereka dan biner bawaan mana yang harus dibangun ulang.
Daemon Live-Lock Android
Android 10 menyertakan Android Live-Lock Daemon (llkd), yang dirancang untuk mendeteksi dan mengurangi kebuntuan kernel.
vDSO32 di ARM64
Android 10 mendukung penggunaan vDSO32 pada kernel 64-bit, yang memberikan peningkatan masa pakai baterai sebesar 0,4 persen dan peningkatan performa lainnya.
Entri fstab untuk partisi yang dipasang lebih awal
Android 10 mewajibkan perangkat menentukan entri fstab
untuk
partisi yang dipasang lebih awal
menggunakan file fstab
di ramdisk tahap pertama.
HIDL
Membongkar BroadcastQueue
Android 10 menyertakan BroadcastQueue
offload baru
ke antrean latar belakang dan latar depan yang ada. Antrean pelepasan memiliki
perilaku prioritas dan waktu tunggu yang sama dengan antrean latar belakang. Untuk mencegah pemblokiran antrean latar belakang, tempat siaran yang lebih menarik atau terlihat oleh pengguna dapat terjadi, antrean pelepasan menangani siaran BOOT_COMPLETED
, yang diproses oleh banyak aplikasi dan dapat memerlukan waktu yang lama untuk diselesaikan.
Saat ini, antrean pelepasan hanya menangani siaran BOOT_COMPLETED
, tetapi
berpotensi menangani siaran panjang lainnya.
Layanan SystemSuspend
Android 10 menggantikan thread di libsuspend
yang bertanggung jawab untuk memulai penangguhan sistem dengan
layanan HIDL SystemSuspend. Implementasi ini menawarkan fungsi yang setara dengan versi sebelumnya sekaligus memanfaatkan manfaat dari infrastruktur HIDL Android.
safe_union di HIDL
Android 10 memperkenalkan
safe_union
, jenis gabungan
yang diberi tag secara eksplisit, di HIDL.
Konfigurasi
HAL ConfigStore
Android 10 menghentikan penggunaan HAL ConfigStore karena konsumsi memori yang tinggi dan penggunaan yang sulit, serta mengganti HAL dengan properti sistem.
API Skema File Konfigurasi
Platform Android berisi banyak 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 seluruh dua partisi, dan oleh karena itu, skema harus ditentukan secara eksplisit dan harus berkembang dengan cara yang kompatibel mundur. Sebelum
Android 10, platform tidak menyediakan mekanisme untuk
mewajibkan penentuan dan penggunaan skema XML, atau untuk mencegah perubahan yang tidak kompatibel
dalam skema. Android 10 menyediakan mekanisme ini, yang disebut Config File Schema API.
Properti sistem sebagai API
Properti sistem yang diakses di seluruh
partisi diskemakan ke dalam file deskripsi sysprop
, dan API untuk mengakses
properti dihasilkan sebagai fungsi konkret untuk C++ dan class untuk Java.
Objek antarmuka vendor (VINTF)
VINTF
Perubahan pada VINTF di Android 10 mencakup:
- Menghentikan penggunaan tag versi AVB
- Menambahkan informasi kernel dalam paket OTA
- Membangun manifes ODM secara resmi
- Menambahkan matriks kompatibilitas produk
- Mengaitkan entri manifes dengan modul HAL dalam sistem build
Bootloader
Ramdisk
Di Android 10, sistem file root tidak lagi disertakan dalam ramdisk.img
dan digabungkan ke system.img
.
Membangun partisi ODM
Android 10 menyertakan dukungan untuk
mem-build partisi odm
menggunakan sistem build Android. Anda dapat menggunakan partisi /odm
terpisah untuk penyesuaian, yang memungkinkan Anda menggunakan satu image vendor untuk beberapa SKU hardware. Hal ini memungkinkan produsen desain asli (ODM) menyesuaikan paket dukungan papan (BSP) vendor system-on-chip (SoC) untuk perangkat spesifik mereka (papan mereka). Mereka dapat menerapkan modul kernel untuk komponen khusus papan, daemon khusus papan, atau fitur mereka sendiri di lapisan abstraksi hardware (HAL). Mereka juga dapat mengganti atau menyesuaikan komponen SoC.
Versi header gambar boot
Android 10 mengupdate header image booting ke versi 2, yang mencakup bagian untuk menyimpan image blob pohon perangkat (DTB). Pengujian VTS Android 10 memverifikasi bahwa semua perangkat yang diluncurkan dengan Android 10 menggunakan header image booting versi 2 dan menyertakan image DTB yang valid sebagai bagian dari image booting/pemulihan.
Image 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 Advanced Configuration and Power Interface (ACPI) untuk mendeskripsikan semua perangkat yang tidak dapat ditemukan. Android 10 dan yang lebih tinggi menyertakan dukungan untuk arsitektur yang menggunakan ACPI, bukan blob DeviceTree untuk overlay (DTBO).
AIDL Stabil
Android 10 menambahkan dukungan untuk Android Interface Definition Language (AIDL) yang stabil, cara baru untuk melacak application program interface (API)/application binary interface (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.
Tampilan
Pemutaran video HDR
Android 10 mendukung pemutaran HDR10, VP9, dan HDR10+.
Klasifikasi teks
Klasifikasi teks menggunakan teknik machine learning untuk membantu developer 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 lama tidak mendukung rendering Zawgyi karena tidak kompatibel dengan Unicode. Android 10 mengatasi masalah ini dengan menyertakan font Unicode yang dapat merender Unicode Burma dan Zawgyi secara bersamaan. Tidak ada pekerjaan implementasi yang diperlukan untuk mendukung rendering font Zawgyi di perangkat yang diluncurkan dengan Android 10. Jika perangkat Anda memiliki penerapan kustom untuk mendukung Zawgyi, Anda dapat:
- Kembalikan perubahan tersebut dan gunakan metode yang didukung platform.
- Pertahankan font Zawgyi umum di sistem Anda dan gunakan kode lokal
my-qaag
difonts.xml
Anda. Untuk mengetahui informasi selengkapnya, lihat catatan rilis CLDR Unicode tentang 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 merepresentasikan halaman detail aplikasi dalam setelan sistem.
Untuk mengetahui informasi selengkapnya tentang logika yang digunakan untuk menampilkan ikon aplikasi, termasuk jenis
aplikasi yang ikon aplikasinya tidak ditampilkan, lihat dokumentasi untuk
getActivityList()
dalam referensi API.
Setelan
Untuk meningkatkan aksesibilitas, Android 10 menyertakan setelan waktu tunggu yang dapat disesuaikan pengguna. Perubahan API dan Setelan hadir dengan Android 10. Jika Anda menyesuaikan Setelan, pastikan fitur ini didukung. Jika Anda memiliki elemen UI yang waktunya habis di perangkat Anda, gunakan API waktu tunggu di elemen tersebut. Untuk mengetahui informasi selengkapnya, lihat Pedoman aksesibilitas developer Android.
Kompatibilitas
Compatibility Definition Document (CDD) Android
Compatibility Definition Document Android 10 melakukan iterasi pada versi sebelumnya dengan update untuk fitur baru dan perubahan pada persyaratan untuk fungsi yang dirilis sebelumnya.
Pengujian
Compatibility Test Suite (CTS)
CTS Android memiliki halaman catatan rilis terpisah yang mencantumkan banyak perubahan penting untuk Android 10.
Download CTS
Paket CTS yang mendukung Android 10 tersedia di halaman
Download CTS. Kode sumber untuk
pengujian yang disertakan dapat disinkronkan dengan tag android-cts-10_r1
di
struktur open source.
APEX shim CTS
Android 10 memperkenalkan paket bernama CtsShimApex
, yang harus diinstal sebelumnya di perangkat untuk menulis pengujian CTS bagi pengelolaan APEX.
Mode tes otomatis
Mode platform pengujian CTS membantu developer mengotomatiskan pengujian untuk perangkat atau sekumpulan 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 CTS Verifier untuk Aplikasi Instan
Pengujian audio pro Pemverifikasi CTS
Android 10 menambahkan pengujian CTS Verifier untuk kepatuhan Pro Audio.
Uji MIDI CTS Verifier
Di Android 10, uji MIDI CTS Verifier menguji fungsi MIDI dengan antarmuka MIDI USB, antarmuka MIDI Bluetooth, dan jalur perangkat MIDI virtual.
Interpretasi pengujian CTS
Android 10 memperbarui mekanisme untuk menafsirkan hasil CTS.
Vendor Test Suite (VTS)
Pengujian VTS dengan ramdisk debug
Di Android 10, image sistem generik (GSI) yang digunakan untuk
menjalankan pengujian kepatuhan CTS-on-GSI/VTS berubah dari jenis build userdebug menjadi user,
karena GSI ditandatangani untuk rilis. Namun, perintah adb root
yang memberikan izin root host ke perangkat Android yang sedang diuji tidak tersedia dalam build pengguna. Hal ini menjadi masalah karena VTS memerlukan adb root
untuk dijalankan.
Debug ramdisk diperkenalkan untuk memungkinkan
adb root
, jika perangkat tidak terkunci. Hal ini menyederhanakan alur pengujian dengan menggunakan kembali build pengguna yang sama system.img
(baik GSI maupun system.img
OEM).
Validasi Hardware Composer
Android 10 menambahkan class pengujian VTS baru untuk validasi Hardware Composer melalui antarmuka readback
di IComposerClient.hal
.
Jika vendor tidak menerapkan readback
, pengujian akan lulus secara otomatis.
Proses Debug
Memuat library bersama dengan pemuat class yang berbeda
Di Android 9 dan yang lebih lama, aplikasi memuat library bersama Java yang ditautkan di pemuat class aplikasi. Di Android 10, framework menggunakan
pemuat class yang berbeda dengan pemuat class aplikasi untuk memuat library bersama Java yang ditautkan melalui uses-library
atau uses-static-library
.
Secara umum, aplikasi tidak boleh mengandalkan penggunaan loader class tertentu, sehingga perubahan ini tidak akan merusak perilaku aplikasi. Namun, jika aplikasi mengandalkan penggunaan satu loader class, perilaku tersebut akan rusak. Selain itu, visibilitas package-private class dalam paket yang sama masih didukung, tetapi tidak didukung dalam library bersama.
Produsen perangkat mungkin melihat masalah kompatibilitas aplikasi saat menguji perangkat mereka yang menjalankan Android 10.
Fitur keamanan
Untuk daftar lengkap penyempurnaan yang terkait dengan keamanan dan privasi saja, lihat halaman Peningkatan keamanan dan privasi Android 10.
Autentikasi wajah
Autentikasi wajah memungkinkan pengguna membuka kunci perangkat hanya dengan melihat bagian depan perangkat. Android 10 menambahkan dukungan untuk stack autentikasi wajah baru yang dapat memproses frame kamera dengan aman, menjaga keamanan dan privasi selama autentikasi wajah di hardware yang didukung. Android 10 juga menyediakan cara mudah bagi penerapan yang sesuai dengan keamanan untuk 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. Perangkat tepercaya tidak dapat lagi membuka kunci perangkat yang terkunci dan hanya dapat membuat perangkat tetap tidak terkunci selama maksimal empat jam.
Enkripsi
OEMCrypto
Android 10 menggunakan OEMCrypto API versi 15.
Pengujian
BoundsSanitizer
Android 10 men-deploy BoundsSanitizer (BoundSan) di Bluetooth dan codec. BoundSan menggunakan sanitizer batas UBSan. Mitigasi ini diaktifkan di tingkat per modul. Layanan ini membantu menjaga keamanan komponen penting Android dan tidak boleh dinonaktifkan. BoundSan diaktifkan dalam codec berikut:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
libaac
libxaac
Sanitasi Overflow Bilangan Bulat
Android 10 mengaktifkan Integer Overflow Sanitization (IntSan) di codec software. Pastikan performa pemutaran dapat diterima untuk codec apa pun yang tidak didukung di hardware perangkat. IntSan diaktifkan di codec berikut:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
Memori execute-only
Secara default, bagian kode yang dapat dieksekusi untuk biner sistem AArch64 ditandai hanya dapat dieksekusi (tidak dapat dibaca) sebagai mitigasi hardening terhadap serangan penggunaan kembali kode just-in-time. Kode yang mencampur data dan kode serta kode yang sengaja memeriksa bagian ini (tanpa memetakan ulang segmen memori sebagai dapat dibaca terlebih dahulu) tidak lagi berfungsi. Aplikasi dengan SDK target Android 10 (level API 29 atau yang lebih tinggi) akan terpengaruh jika aplikasi mencoba membaca bagian kode library sistem yang diaktifkan memori hanya untuk eksekusi (XOM) di memori tanpa menandai bagian tersebut sebagai dapat dibaca terlebih dahulu.
Scudo
Scudo adalah pengalokasi memori mode pengguna dinamis yang dirancang agar lebih tangguh terhadap kerentanan terkait heap. Library ini menyediakan primitif alokasi dan dealokasi C standar, serta primitif C++.
ShadowCallStack
ShadowCallStack
(SCS) adalah mode
instrumentasi LLVM yang melindungi dari penimpaan alamat kembali (seperti buffer stack overflow) dengan menyimpan alamat kembali fungsi ke instance ShadowCallStack
yang dialokasikan secara terpisah dalam prolog fungsi non-leaf dan memuat alamat kembali dari instance ShadowCallStack
dalam epilog fungsi.
Audio
HAL Audio
Android 10 menyertakan kemampuan baru berikut untuk HAL audio.
AudioSource
AudioFormat
AudioChannelMask
Persyaratan tambahan ditambahkan untuk penerapan HAL dan subsistem audio.
Efek pra-pemrosesan
Android menyediakan
efek pra-pemrosesan, seperti
pengurang gema akustik, kontrol penguatan otomatis, dan peredam bising.
Android 10 menyertakan persyaratan baru untuk pengambilan gambar dengan
VOICE_COMMUNICATION
.
Pengelola kebijakan audio
Android 10 menyertakan pemfaktoran ulang signifikan pada pengelola kebijakan audio untuk memberikan lebih banyak fleksibilitas dalam mendukung kasus penggunaan otomotif yang kompleks.
Audio resolusi tinggi
Android 10 menyertakan peningkatan berikut untuk audio resolusi tinggi.
- Dukungan float
- Dukungan frekuensi 192 KHz
- Dukungan delapan saluran
- Pencantuman informasi waktu
Perekaman serentak
Android 10 meningkatkan pengalaman pengguna perekaman serentak yang memerlukan lebih dari satu perekaman audio aktif terjadi 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 serupa dengan tangkapan layar, tetapi untuk audio.
Kasus penggunaan utamanya adalah untuk memungkinkan aplikasi streaming merekam audio yang sedang diputar oleh game.
Capture API 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 mengetahui ringkasan perubahan pada API kamera, HAL kamera, dan modul kamera yang diperkenalkan di Android 10, lihat Update kamera Android 10.
Peningkatan privasi framework kamera
Android 10 memperkenalkan peningkatan privasi pada framework kamera. Untuk menghindari pemaparan informasi kamera statis yang berpotensi sensitif di
CameraCharacteristics
tanpa izin pengguna, aplikasi harus mendapatkan izin
CAMERA
untuk mengambil metadata statis dengan tag yang sensitif terhadap privasi menggunakan metode
getCameraCharacteristics
.
Untuk mendapatkan daftar kunci karakteristik kamera yang memerlukan izin CAMERA
, panggil metode getKeysNeedingPermission
.
Kueri konfigurasi ulang sesi
Android 10 menambahkan fitur kueri konfigurasi ulang sesi, yang memungkinkan peningkatan performa melalui kontrol yang lebih baik atas logika konfigurasi ulang parameter sesi internal.
API pengelolaan buffer HAL3 Kamera
Android 10 memperkenalkan API pengelolaan buffer HAL3 kamera opsional yang memungkinkan Anda menerapkan logika pengelolaan buffer untuk mencapai kompromi memori dan latensi pengambilan yang berbeda dalam implementasi HAL kamera.
Tombol kamera fisik dinamis HAL Kamera
Android 10 memperkenalkan tag metadata dinamis,
ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
,
yang menunjukkan kamera fisik yang aktif dan mendasar dari perangkat kamera logis. Untuk mengetahui informasi selengkapnya, lihat
Dukungan Multi-Kamera.
Dukungan untuk menyembunyikan kamera fisik
Di Android 10, HAL kamera dapat mengurangi jumlah kamera fisik yang dapat dibuka langsung oleh aplikasi. Untuk mengetahui 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 library yang tersedia untuk vendor, libcamera2_vendor
. Library ini mirip dengan
library Camera NDK,
dengan beberapa modifikasi kecil.
Konfigurasi streaming
Android 10 menambahkan fitur yang memungkinkan vendor kamera mengiklankan streaming kamera yang direkomendasikan kepada klien kamera dan mendukung API untuk membuat kueri kombinasi streaming.
Persyaratan kombinasi streaming kamera
Perangkat yang menjalankan Android 10 tidak lagi diwajibkan untuk
mendukung kombinasi streaming dengan streaming subkamera fisik. Namun, perangkat yang menjalankan Android 10 dengan versi perangkat HAL kamera 3.5 harus mendukung isStreamCombinationSupported()
agar aplikasi dapat mengkueri apakah kombinasi streaming yang berisi streaming fisik didukung.
Untuk mengetahui informasi selengkapnya, lihat Dukungan Multi-Kamera.
Pencitraan HEIF
Android 10 menyediakan dukungan kamera native untuk gambar format file gambar efisiensi tinggi (HEIF), 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 memberikan dukungan tambahan untuk format aliran Y8, metadata statis array filter warna monokrom dan inframerah dekat (NIR), serta fungsi DngCreator
untuk kamera monokrom.
Konektivitas
Panggilan dan pesan
Nomor darurat dan panggilan darurat
Android 10 memberikan dukungan yang lebih baik untuk panggilan darurat. Dalam keadaan darurat, perangkat yang mendukung 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, pemadam kebakaran, dan ambulans.
API panggilan grup
API panggilan grup adalah ekstensi dari eMBMS API yang ditambahkan di Android 9. API baru menentukan standar bagi aplikasi untuk bergabung dan menyiarkan 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 developer ada di developer.google.com.
Kemampuan SIM jarak jauh
Android 10 memperkenalkan kemampuan SIM jarak jauh yang memungkinkan aplikasi pesan di perangkat host Android mengirim pesan SMS melalui ponsel menggunakan mekanisme seperti Bluetooth. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi untuk metode getSubscriptionType
dan konstanta SUBSCRIPTION_TYPE_REMOTE_SIM
.
Beberapa eSIM
Di Android 10, class EuiccManager
mendukung perangkat dengan beberapa SIM tertanam (eSIM), atau eUICC.
update eSIM
Untuk perangkat yang menjalankan Android 10 yang mendukung eSIM, array ID slot eUICC yang tidak dapat dilepas harus ditentukan. Perangkat juga harus mendukung IRadio HAL v1.4 dan IRadioConfig HAL v1.2. Untuk mengetahui informasi selengkapnya, lihat Menerapkan eSIM dan Persyaratan HAL.
5G Non-Standalone (NSA)
Android 10 menambahkan dukungan untuk 5G non-standalone (NSA). 5G NSA adalah solusi untuk jaringan 5G yang didukung oleh infrastruktur 4G yang ada. Di Android 10, perangkat dapat menampilkan ikon 5G di status bar saat perangkat terhubung ke jaringan 5G.
Saran akun telepon
Android 10 memperkenalkan layanan saran akun telepon, yang memungkinkan saran akun telepon ditampilkan kepada pengguna saat melakukan panggilan.
Operator
Memigrasikan setelan Jaringan Seluler
Android 10 merekonstruksi kode UI setelan Jaringan Seluler dan memindahkannya dari stack Telephony ke stack Setelan. Untuk mendukung
kode yang dimigrasikan, ubah nilai konfigurasi setelan Jaringan Seluler
berikut dari resource Android menjadi resource 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
ID perangkat
ID perangkat tetap (IMEI/MEID, IMSI, dan nomor seri build) dilindungi oleh izin istimewa dengan akses juga diberikan ke aplikasi pemilik perangkat dan profil. Karena IMSI dan nomor seri SIM disediakan oleh operator, akses ke ID ini diberikan ke paket dengan hak istimewa operator.
Wi-Fi
Pilihan jaringan
Android terus mengevaluasi kualitas jaringan yang terhubung dan menilai kualitas jaringan yang tersedia. Android 10 telah mengupdate algoritma dan prosedur untuk memilih dan beralih antar-jaringan Wi-Fi.
Pemindaian offload jaringan pilihan Wi-Fi
Android 10 memperkenalkan metode API opsional bernama
setDeviceMobilityState()
di WifiManager
yang meningkatkan interval antara pemindaian
pengalihan jaringan pilihan (PNO)
saat perangkat tidak bergerak untuk mengurangi penggunaan daya.
Wi-Fi Operator
Di Android 10, perangkat dengan fitur Wi-Fi operator akan otomatis terhubung ke jaringan Wi-Fi operator yang dikonfigurasi (jaringan dengan sertifikat kunci publik).
Wi-Fi Easy Connect
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, yang terutama ditulis dalam Java untuk berintegrasi lebih baik dengan bidang kontrol framework Java. Tindakan ini meningkatkan keamanan dan kemampuan update untuk server DHCP. Untuk detail selengkapnya, lihat
packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java
.
Tidak ada tindakan yang diperlukan untuk menerapkan perubahan ini: semua perangkat yang merilis dan mengupgrade ke Android 10 menggunakan DhcpServer
secara default.
Jika Anda memiliki penyesuaian pada server DHCP, Anda dapat kembali ke perilaku Android 9 dengan menyetel setelan global tether_enable_legacy_dhcp_server=1
.
DhcpServer
baru disertakan dalam modul komponen jaringan, sehingga setiap penyesuaian pada fungsi server DHCP harus di-upstream.
WPA3 dan Wi-Fi Enhanced Open
Android 10 menambahkan dukungan untuk standar keamanan Wi-Fi Protected Access 3 (WPA3) dan Wi-Fi Enhanced Open untuk memberikan privasi dan ketahanan yang lebih baik terhadap serangan yang diketahui.
Wi-Fi Direct
Wi-Fi Direct, juga dikenal sebagai Wi-Fi P2P, memungkinkan perangkat yang kompatibel untuk saling menemukan dan terhubung secara langsung menggunakan protokol Wi-Fi Direct tanpa akses internet atau jaringan seluler.
Peningkatan pengacakan MAC
Mulai 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 menerapkan pendaftaran online (OSU), metode standar untuk menyediakan profil Passpoint baru. Android 10 mendukung penyediaan profil EAP-TTLS menggunakan SOAP-XML.
NFC
Amankan NFC
NFC Aman memungkinkan emulasi kartu NFC di luar host diaktifkan hanya saat layar perangkat tidak dikunci. Dengan menerapkan fitur ini, pengguna memiliki opsi untuk mengaktifkan NFC Aman guna meningkatkan keamanan.
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
createNdefMessageCallback
onNdefPushCompleteCallback
Untuk menggunakan Android Beam, laporkan konstanta fitur
android.sofware.nfc.beam
.
Grafik
ASurfaceControl
Android 10 menambahkan
ASurfaceControl
, cara baru bagi
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 mengetahui informasi tentang fitur baru di EGL 1.5, lihat Khronos Merilis Spesifikasi 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.
Rasio refresh performa
Android 10 menambahkan dukungan untuk kecepatan refresh performa. Fitur ini dinonaktifkan secara default.
Interaksi
Otomotif
Audio otomotif
Di Android 10, konteks HAL Audio dipetakan ke
AudioAttributes.usage
untuk mengidentifikasi suara. Android mendukung satu instance
AUDIO_DEVICE_OUT_BUS
per konteks. IAudioControl
HAL menyediakan
ekstensi khusus kendaraan ke HAL Audio.
Navigasi gestur
Android 10 memperkenalkan opsi untuk navigasi sistem gestur sepenuhnya. Untuk mengetahui informasi tentang cara menyiapkan aplikasi agar dapat menggunakan fitur ini, lihat halaman Navigasi gestur di situs Android Developer.
Jaringan neural
Android 10 memperkenalkan update pada Neural Networks API dan Neural Networks HAL. Untuk ringkasan perubahan, lihat Jaringan neural.
Dokumentasi Neural Networks baru dan yang diperbarui untuk Android 10:
- Ringkasan
- AHardwareBuffer
- Eksekusi Burst dan Antrean Pesan Cepat
- Caching Kompilasi
- Penemuan dan Penugasan Perangkat
- Ekstensi Vendor
Sensor
HAL Sensor 2.0
Sensors HAL 2.0 mendukung penggunaan antrean pesan cepat (FMQ) untuk mengirim peristiwa sensor dari HAL ke Android Sensors Framework.
Sensor nonaktif
Android 10 menyertakan setelan developer untuk menonaktifkan semua sensor di perangkat. Fitur ini membantu developer menguji fungsi aplikasi mereka dalam situasi saat sensor tersebut tidak tersedia, dan juga memberi pengguna cara untuk mengontrol sensor di perangkat mereka.
Jika perangkat Anda menggunakan implementasi default SensorService
,
CameraService
, dan AudioPolicyService
, tidak ada penyesuaian tambahan yang
diperlukan untuk desain referensi. Jika Anda memiliki sensor lain, lihat
Penyesuaian untuk mengetahui detail selengkapnya
tentang dukungan untuk fitur ini.
Media
Komponen media yang dapat diupdate
Android 10 menyediakan komponen media yang dapat diupdate yang memungkinkan update komponen sistem modular terkait media melalui infrastruktur Google Play Store atau melalui mekanisme over-the-air (OTA) yang disediakan partner.
Media DRM
Android 10 meningkatkan kegunaan dan utilitas
MediaDrm
Java dan NDK API.
Mendekode
Android 10 mendukung dekode SW AV1.
Izin
Android 10 menyediakan konfigurasi izin tambahan untuk transparansi dan privasi pengguna.
Informasi penyedia kontak dan afinitas
Mulai Android 10, data terkait afinitas kontak, yang dikelola oleh komponen Penyedia Kontak, diakses secara berbeda dibandingkan di Android 9 dan yang lebih lama. Perubahan terkait aksesibilitas data ini meningkatkan privasi pengguna di semua perangkat Android 10 yang menggunakan komponen Penyedia Kontak. Database pokok tidak lagi berisi data afinitas kontak. Oleh karena itu, aplikasi tidak dapat menulis ke atau membaca dari perangkat tersebut.
Perubahan di Android 10 diperkirakan akan berdampak besar pada API. Jika aplikasi Anda mengandalkan fitur yang tidak digunakan lagi yang disebutkan dalam Informasi Afinitas dan Penyedia Kontak, Anda mungkin perlu mengupdate aplikasi untuk mengompensasi perubahan apa pun. Selain itu, jika Anda menggunakan versi bercabang dari Penyedia Kontak, Anda harus mengupdate Penyedia Kontak Anda.
Izin akses lokasi tiga status
Izin akses lokasi tiga status di Android 10 memberi pengguna kontrol lebih besar atas cara aplikasi mengakses lokasi perangkat mereka.
Pengingat akses lokasi latar belakang
Android 10 memiliki pengingat akses lokasi di latar belakang, yang meningkatkan transparansi terkait seberapa banyak akses yang dimiliki aplikasi ke lokasi perangkat dan membantu pengguna mempertahankan kontrol atas akses tersebut.
Membatasi lokasi oportunistik
Saat aplikasi meminta lokasi perangkat, aplikasi dapat menunggu respons
permintaan atau, dengan menggunakan pemroses lokasi aktif, mendapatkan update lokasi
oportunistis. Mulai Android 10, untuk mendapatkan
update lokasi oportunistik,
developer harus menentukan bahwa mereka memerlukan update lokasi pasif dari
kelas FusedLocationProviderClient
.
Peluncuran aplikasi latar belakang
Di Android 10, aplikasi yang tidak memiliki hak istimewa tanpa jendela yang terlihat tidak dapat meluncurkan dirinya sendiri secara otomatis ke latar depan. Perubahan ini akan menekan pop-up iklan dan pengambilalihan berbahaya. Anda tidak perlu melakukan tindakan apa pun untuk mengaktifkan fitur ini.
Sandbox aplikasi
Di Android 10, aplikasi memiliki tampilan mentah terbatas dari sistem file, tanpa akses langsung ke jalur seperti /sdcard/DCIM
. Namun, aplikasi
mempertahankan akses mentah penuh ke jalur khusus paketnya, seperti yang ditampilkan oleh metode
yang berlaku seperti
Context.getExternalFilesDir()
.
Aplikasi tetap memiliki akses mentah penuh ke jalur khusus paketnya.
Gunakan pedoman berbagi file untuk sandbox aplikasi guna memberikan perincian berbagi data yang sesuai.
Membatasi akses papan klip aplikasi
Di Android 10, akses papan klip telah berubah sehingga konten papan klip tidak dapat dipantau dengan memanggil
ClipboardManager.getPrimaryClip
atau dengan menambahkan
onPrimaryClipChangedListener
listener untuk notifikasi saat papan klip berubah. Hal ini meningkatkan privasi pengguna dan menonaktifkan aplikasi malvertising agar tidak mengubah papan klip.
Di Android 10, akses baca hanya diizinkan untuk
aplikasi saat ini dengan fokus input, atau untuk keyboard saat ini. Panggilan
ClipboardManager.onPrimaryClipChanged()
pendengar kini hanya diaktifkan untuk aplikasi yang memenuhi batasan tersebut.
ClipboardManager.getPrimaryClip
dan ClipboardManager.getPrimaryClipDescription
menampilkan null
jika aplikasi yang meminta bukan editor metode input (IME) default, atau tidak memiliki fokus input.
Izin runtime mencakup pengenalan aktivitas
Pengguna kini melihat dialog pengenalan aktivitas saat aplikasi mengakses lokasi perangkat di latar belakang. Izin waktu proses yang dibatasi secara ketat harus diizinkan dengan benar di Android 10.
Izin MANAGE_DEVICE_ADMINS
Android 10 mengubah izin
MANAGE_DEVICE_ADMINS
dari tanda tangan atau hak istimewa menjadi hanya tanda tangan. Artinya, hanya aplikasi yang ditandatangani platform yang dapat menetapkan aplikasi lain sebagai admin perangkat.
Peningkatan Sharing API
Android 10 menyediakan sejumlah fitur API Platform Android baru yang terkait dengan berbagi. Jika Anda telah mengubah kode Lembar Berbagi dalam penerapan, pastikan penerapan Anda mendukung fitur baru ini. Jika Anda belum mengubah kode Lembar Berbagi dalam penerapan, Anda tidak perlu melakukan apa pun untuk mendukung fitur baru ini.
Android Runtime (ART)
Konfigurasi Bertanda Tangan
Fitur Konfigurasi Bertanda Tangan memungkinkan penyematan konfigurasi pembatasan antarmuka non-SDK dalam APK. Hal 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 di versi Android yang lebih lama.
Performa
Lapisan abstraksi Cgroup
Android 10 menyertakan lapisan abstraksi cgroup dan profil tugas, yang dapat digunakan developer untuk menjelaskan serangkaian batasan yang akan diterapkan pada thread atau proses.
Low Memory Killer Daemon (lmkd)
Android 10 mendukung
mode lmkd
baru yang menggunakan monitor informasi
kernel pressure stall (PSI) untuk deteksi tekanan memori.
Daya
Pengelolaan daya platform
Di Android 10, mode Istirahatkan dapat diaktifkan di perangkat always-on dan perangkat yang ditenagai baterai.
Penghemat baterai rutin
Android 10 memperkenalkan opsi jadwal penghemat baterai baru yang disebut berdasarkan rutinitas. Penghemat baterai rutin memungkinkan aplikasi yang dipilih oleh OEM memberikan sinyal ke sistem untuk penjadwalan penghemat baterai yang lebih cerdas. Opsi ini memerlukan konfigurasi, dan bersifat opsional untuk diterapkan.
HAL statistik daya
Di Android 10,
IPowerStats.hal
menggantikan API pengumpulan statistik daya di
IPower.hal
.
Meskipun HAL daya masih mendukung API, API tersebut akan dimigrasikan secara eksklusif ke HAL statistik daya pada masa mendatang.
HAL statistik daya mencakup API baru untuk mendukung pengumpulan data dari pengukuran daya di perangkat, untuk perangkat yang didukung. API pengumpulan statistik daya yang ada juga diupdate untuk meningkatkan fleksibilitas. Petunjuk daya API tetap berada di HAL daya dan tidak berubah.
Mitigasi termal
Framework termal di Android 10 mengabstraksi antarmuka perangkat untuk sensor suhu subsistem termal, termasuk CPU, GPU, baterai, kulit, dan perangkat pendingin. Framework ini memperkenalkan antarmuka polling untuk mengkueri status termal guna memulai pembatasan, dan antarmuka callback untuk mengirim pesan kepada pengguna saat batas terlampaui.
Android 10 menyediakan jenis data baru melalui
antarmuka IThermalService
menggunakan tiga metode baru ini:
getCurrentThermalStatus()
menampilkan status termal perangkat saat ini sebagai bilangan bulat, kecuali jika perangkat sedang mengalami pembatasan.addThermalStatusListener()
menambahkan pemroses.removeThermalStatusListener()
menghapus pemroses yang sebelumnya ditambahkan.
Aplikasi menambahkan dan menghapus pemroses serta mengakses status suhu di kelas
PowerManager
. Hanya layanan sistem tepercaya seperti Android API atau API produsen perangkat yang dapat mengakses informasi tentang peristiwa kausal terkait. Produsen
perangkat atau pembuat SoC harus menerapkan thermal HAL 2.0
untuk mengaktifkan fungsi
lengkap framework termal baru.
Untuk contoh penerapan mitigasi termal, lihat Implementasi referensi.
Update
Format file APEX
Android Pony EXpress (APEX) adalah format penampung baru yang digunakan dalam alur penginstalan untuk komponen sistem modular.
Partisi dinamis
Partisi dinamis memperkenalkan sistem partisi ruang pengguna ke Android, sehingga partisi dapat dibuat, diubah ukurannya, atau dihapus selama update OTA. Produsen perangkat tidak perlu mengkhawatirkan ukuran partisi individual, seperti system
, vendor
, dan product
. Sebagai gantinya, partisi super
besar dialokasikan, dan subpartisi
dapat diukur ukurannya secara dinamis di dalamnya.
Update sistem dinamis
Update sistem dinamis (DSU) memungkinkan Anda membuat image sistem Android yang dapat didownload pengguna dari internet dan dicoba tanpa risiko merusak image sistem saat ini.
Pencadangan dan pemulihan multi-pengguna
Android 10 mendukung fungsi pencadangan dan pemulihan untuk semua pengguna di perangkat. Sebelumnya, pencadangan dan pemulihan hanya tersedia untuk pengguna sistem. Pencadangan dan pemulihan untuk pengguna non-sistem dinonaktifkan secara default karena hanya memiliki cakupan sebagian untuk setelan, wallpaper, dan komponen sistem.
Overlayfs
Pengguna yang bekerja dengan build userdebug
atau eng
berharap dapat memasang ulang partisi sistem secara efisien sebagai baca-tulis, lalu menambahkan atau mengubah sejumlah file tanpa mem-flash ulang image sistem. Anda dapat menggunakan Overlayfs
, yang
secara otomatis menyiapkan penyimpanan pendukung untuk sistem file yang dapat ditulis sebagai referensi
atas, dan memasang di atas yang lebih rendah. Tindakan ini terjadi dalam permintaan
adb disable-verity
dan adb remount
. Untuk mengetahui detail selengkapnya, lihat
README Overlayfs
di AOSP.
Dukungan pustaka bersama dalam mode pemulihan
Di Android 10, library bersama tersedia di partisi pemulihan, sehingga tidak perlu lagi membuat semua executable mode pemulihan menjadi statis. Pustaka bersama terletak di direktori
/system/lib
(atau /system/lib64
untuk perangkat 64-bit) di partisi.
Untuk menambahkan library bersama baru ke partisi pemulihan, tambahkan
recovery_available: true
atau recovery: true
ke Android.bp
library
bersama. Yang pertama menginstal library ke partisi sistem dan pemulihan, sedangkan yang kedua menginstalnya hanya ke partisi pemulihan.
Dukungan library bersama tidak dapat dibangun dengan sistem build berbasis make Android.
Untuk mengonversi executable statis yang ada untuk mode pemulihan menjadi executable dinamis, hapus LOCAL_FORCE_STATIC_EXECUTABLE := true
di Android.mk
atau static_executable: true
(di Android.bp
).
Checkpoint Data Pengguna (UDC)
Android 10 memperkenalkan fitur Titik Pemeriksaan Data Pengguna (UDC), yang memungkinkan Android di-roll back ke status sebelumnya jika update over-the-air (OTA) Android gagal.