Catatan rilis Android 10

Halaman ini merangkum fitur-fitur utama dalam rilis Android 10, dan menyediakan link ke informasi tambahan. Ringkasan fitur ini disusun berdasarkan lokasi dokumentasi fitur di situs ini.

Membangun

java_sdk_library

Android 10 memperkenalkan java_sdk_library , aturan build baru untuk memperbaiki masalah kompatibilitas pada pustaka Java bersama. Produsen perangkat dapat menggunakan mekanisme ini untuk pustaka Java bersama mereka guna menjaga kompatibilitas mundur untuk API mereka.

Arsitektur

Komponen sistem modular

Android 10 memodulasi beberapa komponen sistem Android dan memungkinkannya diperbarui di luar siklus rilis normal Android. Beberapa modul meliputi:

Lapisan abstraksi perangkat keras (HAL)

Android 10 menambahkan dukungan agar HAL dimatikan secara otomatis saat tidak ada klien.

Inti

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 ketinggalan zaman pada waktu pembuatan, sehingga pengembang perpustakaan bersama dapat mengetahui biner bawaan mana yang mungkin rusak karena perubahannya dan biner bawaan mana yang harus dibuat ulang.

Daemon Live-Lock Android

Android 10 menyertakan Android Live-Lock Daemon (llkd) , yang dirancang untuk menangkap 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 kinerja lainnya.

entri fstab untuk partisi yang dipasang awal

Android 10 mengharuskan perangkat menentukan entri fstab untuk partisi yang dipasang awal menggunakan file fstab di ramdisk tahap pertama.

TERSEMBUNYI

Bongkar Antrean Siaran

Android 10 menyertakan BroadcastQueue pembongkaran baru ke antrean latar belakang dan latar depan yang ada. Antrean pembongkaran memiliki prioritas dan perilaku batas waktu yang sama dengan antrean latar belakang. Untuk mencegah pemblokiran antrean latar belakang, tempat terjadinya siaran yang lebih menarik atau terlihat oleh pengguna, antrean pembongkaran menangani siaran BOOT_COMPLETED , yang didengarkan oleh banyak aplikasi dan membutuhkan waktu lama untuk diselesaikan. Antrian offload saat ini hanya menangani siaran BOOT_COMPLETED , namun berpotensi menangani siaran panjang lainnya.

Layanan SystemSuspend

Android 10 menggantikan thread di libsuspend yang bertanggung jawab untuk memulai penangguhan sistem dengan layanan SystemSuspend HIDL . Implementasi ini menawarkan fungsionalitas yang setara dengan versi sebelumnya sekaligus memanfaatkan manfaat infrastruktur Android HIDL.

safe_union di HIDL

Android 10 memperkenalkan safe_union , tipe gabungan yang diberi tag secara eksplisit, di HIDL.

Konfigurasi

KonfigurasiStore HAL

Android 10 tidak lagi menggunakan ConfigStore HAL karena konsumsi memori yang tinggi dan penggunaan yang sulit, serta menggantikan HAL dengan properti sistem .

Konfigurasikan API Skema File

Platform Android berisi sejumlah besar file XML untuk menyimpan data konfigurasi. Banyak file XML berada di partisi vendor , namun dibaca di partisi system . Dalam hal ini, skema file XML berfungsi sebagai antarmuka di kedua 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 penentuan 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 disusun menjadi file deskripsi sysprop , dan API untuk mengakses properti dihasilkan sebagai fungsi konkret untuk C++ dan kelas untuk Java.

Objek antarmuka vendor (VINTF).

VINTF

Perubahan pada VINTF di Android 10 meliputi:

  • Menghentikan penggunaan tag versi AVB
  • Menambahkan informasi kernel dalam paket OTA
  • Membangun ODM terwujud secara resmi
  • Menambahkan matriks kompatibilitas produk
  • Mengaitkan entri manifes dengan modul HAL di sistem build

Pemuat boot

Ramdisk

Di Android 10, sistem file root tidak lagi disertakan dalam ramdisk.img dan malah digabungkan ke dalam system.img .

Bangun partisi ODM

Android 10 menyertakan dukungan untuk membuat 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 vendor board-support (BSP) system-on-chip (SoC) ke perangkat spesifik mereka (board mereka). Mereka dapat mengimplementasikan modul kernel untuk komponen khusus board, daemon khusus board, atau fiturnya sendiri pada lapisan abstraksi perangkat keras (HAL). Mereka juga dapat mengganti atau menyesuaikan komponen SoC.

Versi header gambar boot

Android 10 memperbarui header gambar booting ke versi 2, yang mencakup bagian untuk menyimpan gambar blob pohon perangkat (DTB). Pengujian Android 10 VTS 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 boot/pemulihan.

Gambar pemulihan untuk perangkat non-A/B

Di Android 9 dan lebih tinggi, gambar pemulihan perangkat harus berisi informasi dari gambar overlay . Produsen perangkat dapat menggunakan DeviceTree atau Advanced Configuration and Power Interface (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.

Pindahkan 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 Burmese dan Zawgyi secara bersamaan. Tidak diperlukan implementasi apa pun 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 di fonts.xml Anda. Untuk informasi lebih lanjut, 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 getActivityList() di referensi API.

Pengaturan

Untuk meningkatkan aksesibilitas, Android 10 menyertakan pengaturan batas waktu yang dapat disesuaikan pengguna. Perubahan API dan Setelan hadir di Android 10. Jika Anda menyesuaikan Setelan, pastikan fitur ini didukung. Jika Anda memiliki elemen UI yang waktunya habis di perangkat Anda, gunakan API batas waktu tersebut. Untuk informasi selengkapnya, lihat pedoman aksesibilitas pengembang Android .

Kesesuaian

Dokumen Definisi Kompatibilitas Android (CDD)

Dokumen Definisi Kompatibilitas Android 10 mengulangi versi sebelumnya dengan pembaruan untuk fitur baru dan perubahan persyaratan untuk fungsi yang dirilis sebelumnya.

Tes

Rangkaian 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 bernama CtsShimApex , yang harus diinstal sebelumnya di perangkat agar dapat menulis pengujian CTS untuk pengelolaan APEX.

Mode uji harness

Mode test harness 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 Pemverifikasi CTS

Android 10 menambahkan pengujian CTS Verifier untuk kepatuhan Pro Audio .

Tes MIDI Pemverifikasi CTS

Di Android 10, pengujian MIDI CTS Verifier 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 .

Rangkaian Uji Vendor (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 ke tipe build pengguna, karena GSI ditandatangani dengan rilis. Namun, perintah adb root yang memberikan izin root host ke perangkat Android yang diuji tidak tersedia di versi pengguna. Ini menjadi masalah karena VTS memerlukan adb root untuk dijalankan.

Ramdisk debug diperkenalkan untuk memungkinkan adb root , jika perangkat tidak terkunci. Hal 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 Komposer Perangkat Keras melalui antarmuka readback di IComposerClient.hal . Jika vendor tidak menerapkan readback , pengujian akan lulus secara otomatis.

Men-debug

Muat perpustakaan bersama dengan pemuat kelas yang berbeda

Di Android 9 dan yang lebih rendah, aplikasi memuat pustaka bersama Java yang tertaut di pemuat kelas aplikasi. Di Android 10, framework ini menggunakan pemuat kelas yang berbeda dari pemuat kelas aplikasi untuk memuat pustaka bersama Java yang ditautkan melalui uses-library atau uses-static-library .

Secara umum, aplikasi tidak boleh bergantung pada penggunaan pemuat kelas tertentu, sehingga perubahan ini tidak akan merusak perilaku aplikasi. Namun, jika aplikasi mengandalkan penggunaan pemuat kelas tunggal, perilaku tersebut akan rusak. Selain itu, visibilitas kelas paket-pribadi dalam paket yang sama masih didukung, tetapi tidak didukung di perpustakaan 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 membuka kunci perangkat hanya dengan melihat bagian depan perangkat. 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 penerapan yang sesuai dengan keamanan guna mengaktifkan integrasi aplikasi untuk transaksi seperti perbankan online atau layanan lainnya.

Akses yang diperluas

Agen kepercayaan, mekanisme dasar yang digunakan oleh mekanisme autentikasi tersier seperti Smart Lock, hanya dapat memperluas pembukaan kunci di Android 10. Agen kepercayaan tidak lagi dapat membuka kunci perangkat yang terkunci dan hanya dapat membiarkan perangkat tetap terbuka kuncinya selama maksimal empat jam.

Enkripsi

OEMKripto

Android 10 menggunakan OEMCrypto API versi 15.

Pengujian

BatasPembersih

Android 10 menerapkan BoundsSanitizer (BoundSan) dalam 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 Integer

Android 10 mengaktifkan Integer Overflow Sanitization (IntSan) dalam codec perangkat lunak. Pastikan performa pemutaran dapat diterima untuk codec apa pun yang tidak didukung di perangkat keras perangkat. IntSan diaktifkan di codec berikut:

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

Memori hanya eksekusi

Secara default, bagian kode yang dapat dieksekusi untuk biner sistem AArch64 ditandai hanya eksekusi (tidak dapat dibaca) sebagai mitigasi yang lebih kuat terhadap serangan penggunaan kembali kode just-in-time. Kode yang menggabungkan data dan kode bersama-sama dan kode yang dengan sengaja memeriksa bagian ini (tanpa memetakan ulang segmen memori terlebih dahulu 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 heap. Ini menyediakan primitif alokasi dan dealokasi C standar, serta primitif C++.

ShadowCallStack

ShadowCallStack (SCS) adalah mode instrumentasi LLVM yang melindungi terhadap penimpaan alamat pengirim (seperti buffer overflows tumpukan) dengan menyimpan alamat pengirim 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 audio HAL 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 mengambil gambar dengan VOICE_COMMUNICATION .

Manajer kebijakan audio

Android 10 menyertakan pemfaktoran ulang yang signifikan pada 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 resolusi tinggi .

  • Dukungan mengambang
  • Dukungan frekuensi 192 KHz
  • Dukungan delapan saluran
  • Pencantuman informasi waktu

Penangkapan secara bersamaan

Android 10 meningkatkan pengalaman pengguna pengambilan gambar secara bersamaan yang memerlukan lebih dari satu pengambilan audio aktif secara bersamaan.

Tangkapan Pemutaran Audio

Android 10 berisi API baru bernama AudioPlaybackCapture , yang memberi aplikasi kemampuan untuk menyalin audio yang diputar oleh aplikasi lain. Fitur ini mirip dengan screen capture, namun untuk audio. Kasus penggunaan utamanya adalah mengaktifkan aplikasi streaming untuk menangkap audio yang sedang diputar 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 API AMidi NDK .

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 kamera. Untuk menghindari pengungkapan informasi kamera statis yang berpotensi sensitif di CameraCharacteristics tanpa izin pengguna, aplikasi harus mendapatkan izin CAMERA untuk mengambil metadata statis dengan tag sensitif privasi menggunakan metode getCameraCharacteristics .

Untuk mendapatkan daftar tombol karakteristik kamera yang memerlukan izin CAMERA , panggil metode getKeysNeedingPermission .

Kueri konfigurasi ulang sesi

Android 10 menambahkan fitur kueri konfigurasi ulang sesi , yang memungkinkan peningkatan kinerja melalui kontrol lebih besar terhadap logika konfigurasi ulang parameter sesi internal.

API manajemen buffer kamera HAL3

Android 10 memperkenalkan API manajemen buffer HAL3 kamera opsional yang memungkinkan Anda mengimplementasikan logika manajemen buffer untuk mencapai memori yang berbeda dan menangkap trade-off latensi dalam implementasi HAL kamera.

Sakelar kamera fisik dinamis HAL kamera

Android 10 memperkenalkan tag metadata dinamis, ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID , yang menunjukkan kamera fisik aktif yang mendasari 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 bisa langsung dibuka oleh suatu aplikasi. Untuk detail lebih lanjut, lihat Dukungan Multi-Kamera .

API VNDK Kamera2

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 dari vendor, libcamera2_vendor . Pustaka ini mirip dengan pustaka Camera NDK , dengan sedikit modifikasi.

Konfigurasi aliran

Android 10 menambahkan fitur yang memungkinkan vendor kamera mengiklankan aliran kamera yang direkomendasikan kepada klien kamera dan 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 perangkat kamera HAL versi 3.5 harus mendukung isStreamCombinationSupported() agar aplikasi dapat 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 efisiensi tinggi (HEIF) , yang menawarkan peningkatan kualitas gambar dan ukuran 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 rangkaian 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 lebih baik untuk panggilan darurat . Dalam keadaan darurat, perangkat dengan dukungan 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 API eMBMS yang ditambahkan di Android 9. API baru ini 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 dapat berfungsi dengan baik. Dokumentasi pengembang terletak di developer.google.com .

Kemampuan SIM jarak jauh

Android 10 memperkenalkan kemampuan SIM jarak jauh yang memungkinkan aplikasi perpesanan di perangkat host Android 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 tertanam (eSIM) , atau eUICC.

pembaruan eSIM

Untuk perangkat yang menjalankan Android 10 yang mendukung eSIM, rangkaian 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 HAL .

5G Non-Mandiri (NSA)

Android 10 menambahkan dukungan untuk 5G non-standalone (NSA) . 5G NSA merupakan solusi jaringan 5G yang mana 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 akun telepon ditampilkan kepada pengguna saat melakukan panggilan.

Pembawa

Migrasikan pengaturan Jaringan Seluler

Android 10 merancang ulang kode UI setelan Jaringan Seluler dan memindahkannya dari tumpukan Teleponi ke tumpukan Pengaturan. Untuk mendukung kode yang dimigrasi, ubah nilai konfigurasi pengaturan 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

Pengidentifikasi perangkat persisten (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 kepada 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 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 offload jaringan pilihan (PNO) saat perangkat tidak bergerak untuk mengurangi penggunaan daya.

Wi-Fi operator

Di Android 10, perangkat dengan fitur Wi-Fi operator 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, yang sebagian besar ditulis dalam Java agar lebih terintegrasi dengan bidang kontrol kerangka kerja Java. Hal ini meningkatkan keamanan dan kemampuan pembaruan 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 dirilis dan diupgrade 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 penyesuaian apa pun pada 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 menemukan dan terhubung satu sama lain 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.

Titik pas 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 off-host diaktifkan hanya ketika layar perangkat tidak terkunci. Penerapan fitur ini memberi pengguna opsi untuk mengaktifkan Secure NFC untuk meningkatkan keamanan.

Android Beam tidak digunakan lagi

Di Android 10, Android Beam tidak lagi diperlukan dan antarmuka serta metode berikut sudah tidak digunakan lagi.

Antarmuka:

Metode:

Untuk menggunakan Android Beam, laporkan konstanta fitur android.sofware.nfc.beam .

Grafik

Kontrol Permukaan

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 informasi tentang fitur baru di EGL 1.5, lihat Spesifikasi Khronos Merilis 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.

Kecepatan penyegaran kinerja

Android 10 menambahkan dukungan untuk kecepatan refresh kinerja. Fitur ini dinonaktifkan 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 gerakan

Android 10 memperkenalkan opsi untuk navigasi sistem gestur penuh. 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 perubahannya, lihat Jaringan neural .

Dokumentasi Neural Networks yang baru dan diperbarui untuk Android 10:

Sensor

Sensor HAL 2.0

Sensors HAL 2.0 mendukung penggunaan antrian pesan cepat (FMQs) untuk mengirim peristiwa sensor dari HAL ke dalam Android Sensors Framework.

Sensor mati

Android 10 menyertakan setelan pengembang untuk mematikan semua sensor di perangkat. Fitur ini membantu pengembang menguji fungsionalitas aplikasi mereka dalam situasi ketika 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 , maka tidak diperlukan penyesuaian tambahan pada 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.

Media DRM

Android 10 meningkatkan utilitas dan kegunaan MediaDrm Java dan NDK API.

Penguraian kode

Android 10 mendukung decoding AV1 SW.

Izin

Android 10 memberikan 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 pada Android 10 diperkirakan akan berdampak besar pada API. Jika aplikasi Anda mengandalkan fitur yang tidak digunakan lagi yang disebutkan dalam Penyedia Kontak dan Informasi Afinitas, Anda mungkin ingin memperbarui aplikasi Anda untuk mengimbangi perubahan apa pun. Selain itu, jika Anda menggunakan Penyedia Kontak versi bercabang, Anda harus memperbarui Penyedia Kontak Anda.

Izin lokasi Tristate

Izin lokasi tiga negara di Android 10 memberi pengguna kontrol lebih besar terhadap cara aplikasi mengakses lokasi perangkat mereka.

Pengingat akses lokasi latar belakang

Android 10 dilengkapi pengingat lokasi akses latar belakang , yang meningkatkan transparansi mengenai 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 pemroses 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 tanpa hak istimewa tanpa jendela yang terlihat tidak dapat diluncurkan secara otomatis ke latar depan. Perubahan ini menekan popup iklan dan pengambilalihan yang 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 tetap memiliki akses mentah penuh ke jalur khusus paketnya, sebagaimana dikembalikan oleh metode apa pun yang berlaku seperti Context.getExternalFilesDir() . Aplikasi masih memiliki akses mentah penuh ke jalur khusus paketnya.

Gunakan pedoman sandbox aplikasi untuk berbagi file guna memberikan rincian 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 onPrimaryClipChangedListener untuk pemberitahuan ketika papan klip berubah. Ini meningkatkan privasi pengguna dan menonaktifkan aplikasi malvertisasi agar tidak 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 masukan (IME) default, atau tidak memiliki fokus masukan.

Izin runtime mencakup pengenalan aktivitas

Pengguna kini melihat dialog pengenalan aktivitas saat aplikasi mengakses lokasi perangkat di latar belakang. Izin runtime yang sangat dibatasi harus dimasukkan ke dalam daftar putih 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 bertanda tangan platform yang dapat menyetel aplikasi lain sebagai admin perangkat.

Berbagi peningkatan API

Android 10 menyediakan sejumlah fitur API Platform Android baru terkait berbagi . Jika Anda telah mengubah kode Share Sheet dalam penerapan Anda, pastikan penerapan Anda mendukung 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 penyematan konfigurasi pembatasan antarmuka non-SDK di 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 fitur baru pada versi Android lama.

Pertunjukan

Lapisan abstraksi Cgroup

Android 10 menyertakan lapisan abstraksi cgroup dan profil tugas, yang dapat digunakan pengembang untuk menjelaskan serangkaian batasan yang akan diterapkan pada thread atau proses.

Daemon Pembunuh Memori Rendah (lmkd)

Android 10 mendukung mode lmkd baru yang menggunakan monitor informasi kios tekanan kernel (PSI) untuk mendeteksi tekanan memori.

Kekuatan

Manajemen daya platform

Di Android 10, mode Istirahatkan dapat diaktifkan pada perangkat yang selalu aktif maupun pada perangkat bertenaga 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 membutuhkan konfigurasi, dan opsional untuk diimplementasikan.

Statistik daya Hal

Di Android 10, IPowerStats.hal menggantikan API pengumpulan statistik daya di IPower.hal . Sementara kekuatan HAL masih mendukung API, mereka akan dimigrasi secara eksklusif ke statistik kekuatan Hal di masa depan.

Power Stats HAL mencakup API baru untuk mendukung pengumpulan data dari pengukuran daya on-device, untuk perangkat yang didukung. API Koleksi Statistik Daya yang ada juga diperbarui untuk meningkatkan fleksibilitas. Power yang mengisyaratkan API tetap dalam kekuatan Hal dan tidak berubah.

Mitigasi termal

Kerangka termal dalam Android 10 Abstracts Device Interfaces untuk sensor suhu subsistem termal, termasuk CPU, GPU, baterai, kulit, dan perangkat pendingin. Kerangka kerja memperkenalkan antarmuka polling untuk meminta status termal untuk memulai pelambatan, dan antarmuka panggilan balik untuk mengirim pesan kepada pengguna ketika ambang batas terlampaui.

Android 10 memberikan tipe data baru melalui antarmuka IThermalService menggunakan tiga metode baru ini:

Aplikasi menambah dan menghapus pendengar dan mengakses status suhu di kelas PowerManager . Hanya layanan sistem tepercaya seperti API Android atau API produsen perangkat yang dapat mengakses informasi tentang peristiwa kausal terkait. Produsen perangkat atau pembuat SOC harus mengimplementasikan thermal HAL 2.0 untuk memungkinkan fungsionalitas penuh dari kerangka termal baru.

Untuk contoh implementasi mitigasi termal, lihat implementasi referensi .

Pembaruan

Format File Apex

Android Pony Express (APEX) adalah format wadah baru yang digunakan dalam aliran instalasi untuk komponen sistem modular.

Partisi dinamis

Partisi dinamis memperkenalkan sistem partisi Userspace ke Android, memungkinkan partisi dibuat, diubah ukurannya, atau dihancurkan selama pembaruan OTA. Pembuat perangkat tidak perlu khawatir tentang ukuran masing -masing partisi, seperti system , vendor , dan product . Sebaliknya, satu partisi super besar dialokasikan, dan subpartisi dapat diukur secara dinamis di dalamnya.

Pembaruan sistem dinamis

Dynamic System Prevenpate (DSU) memungkinkan Anda untuk membuat gambar sistem Android yang dapat diunduh pengguna dari internet dan mencoba tanpa risiko merusak gambar sistem saat ini.

Multiuser Backup dan Kembalikan

Android 10 mendukung fungsi cadangan dan pemulihan untuk semua pengguna di perangkat. Sebelumnya, Backup dan Restore hanya tersedia untuk pengguna sistem. Pencadangan dan pemulihan untuk pengguna nonsystem dimatikan secara default karena hanya memiliki cakupan parsial untuk pengaturan, wallpaper, dan komponen sistem.

Hamparan

Pengguna yang bekerja dengan userdebug atau eng Builds berharap dapat secara efisien menghidupkan kembali partisi sistem sebagai baca-tulis dan kemudian menambah atau memodifikasi sejumlah file tanpa merenungkan gambar sistem. Anda dapat menggunakan Overlayfs , yang secara otomatis mengatur penyimpanan dukungan untuk sistem file yang dapat ditulis sebagai referensi atas, dan dipasang di atas yang lebih rendah. Tindakan-tindakan ini terjadi di adb disable-verity dan adb remount Request. Untuk detail lebih lanjut, lihat overlayfs readme di AOSP.

Dukungan perpustakaan bersama dalam mode pemulihan

Di Android 10, perpustakaan bersama tersedia di partisi pemulihan, yang menghilangkan kebutuhan semua yang dapat dieksekusi mode pemulihan menjadi statis. Perpustakaan bersama terletak di bawah direktori /system/lib (OR /system/lib64 untuk perangkat 64-bit) di partisi.

Untuk menambahkan pustaka bersama baru ke partisi pemulihan, tambahkan recovery_available: true atau recovery: true to Android.bp dari perpustakaan bersama. Yang pertama menginstal pustaka ke sistem sistem dan pemulihan, sedangkan yang terakhir menginstalnya hanya ke partisi pemulihan.

Dukungan perpustakaan bersama tidak dapat dibangun dengan sistem build berbasis Android. Untuk mengonversi statis yang dapat dieksekusi yang ada untuk mode pemulihan ke yang dinamis, hapus LOCAL_FORCE_STATIC_EXECUTABLE := true in Android.mk atau static_executable: true (di Android.bp ).

Pos Pemeriksaan Data Pengguna (UDC)

Android 10 memperkenalkan fitur pos pemeriksaan data pengguna (UDC) , yang memungkinkan Android untuk kembali ke keadaan sebelumnya ketika pembaruan Android Over-the-Air (OTA) gagal.