Halaman ini merangkum fitur utama dalam rilis Android 9, dan menyediakan link ke informasi tambahan. Ringkasan fitur ini disusun berdasarkan lokasi dokumentasi fitur di situs ini. Lihat Pembaruan situs Agustus 2018 untuk mendapatkan panduan tentang pemindahan dan penggantian nama bagian.
Build
Generic System Image (GSI)
Generic System Image (GSI) adalah image sistem dengan konfigurasi yang disesuaikan untuk perangkat Android. Generic System Image (GSI) mencakup detail tentang perbedaan antara GSI untuk perangkat yang diluncurkan dengan Android 9 dan perangkat yang diupgrade ke Android 9.
Arsitektur
Hardware abstraction layer (HAL)
Kompatibilitas mundur framework HIDL
Verifikasi kompatibilitas mundur framework HIDL adalah metode untuk memverifikasi kompatibilitas mundur framework.
HAL yang tersedia secara dinamis
HAL yang tersedia secara dinamis mendukung penonaktifan dinamis subsistem hardware Android saat tidak digunakan atau tidak diperlukan.
HIDL
HIDL MemoryBlock
HIDL MemoryBlock adalah lapisan abstrak
yang dibangun di hidl_memory
, HIDL @1.0::IAllocator
, dan HIDL @1.0::IMapper
. Dirancang untuk layanan HIDL yang memiliki beberapa blok memori yang berbagi heap memori tunggal.
Overlay device tree
Overlay terkompresi
Android 9 dan yang lebih tinggi menyertakan dukungan untuk overlay terkompresi dalam gambar overlay blob pohon perangkat (DTBO) saat menggunakan header tabel pohon perangkat versi 1.
Pembaruan DTO
Android 9 dan yang lebih tinggi mengharuskan bootloader meneruskan blob pohon perangkat terpadu ke kernel sebelum mengubah properti yang ditentukan dalam overlay pohon perangkat (DTO).
Versi header gambar DTBO
Android 9 dan yang lebih baru menyertakan kolom versi di header gambar DTBO.
Verifikasi DTBO
Android 9 dan yang lebih baru memerlukan partisi DTBO. Untuk menambahkan node atau membuat perubahan pada properti di DT SoC, bootloader harus secara dinamis meng-overlay DT khusus perangkat di atas DT SoC. Untuk mengetahui informasi selengkapnya, lihat Mengompilasi & Memverifikasi.
Kepatuhan kernel
Android 9 dan yang lebih tinggi menyertakan persyaratan yang memengaruhi kernel, antarmukanya, dan penggunaan DTBO. Untuk informasi selengkapnya, lihat halaman berikut:
- Rilis & Update Kernel Stabil
- Kernel Umum Android
- Persyaratan Kernel Modular
- Persyaratan Antarmuka
- Overlay Pohon Perangkat
NDK Vendor
Perubahan desain
Untuk mengetahui informasi tentang perubahan desain VNDK di Android 9 dan yang lebih tinggi, lihat halaman berikut:
- Vendor Native Development Kit (VNDK)
- Dukungan Sistem Build VNDK
- VNDK Definition Tool
- Direktori, Aturan, dan sepolicy
- Ekstensi VNDK
- Namespace Penaut
Pemeriksa ABI
Halaman Stabilitas ABI menjelaskan pemeriksa antarmuka biner aplikasi (ABI), yang memastikan bahwa perubahan yang dilakukan pada library VNDK mempertahankan kepatuhan ABI.
Snapshot VNDK
Image sistem dapat menggunakan snapshot VNDK untuk menyediakan library VNDK yang benar ke image vendor meskipun image sistem dan vendor dibangun dari versi Android yang berbeda.
Objek antarmuka vendor (objek VINTF)
Halaman berikut di bagian Objek Antarmuka Vendor menjelaskan update di Android 9 dan yang lebih tinggi:
Jadwal penghentian penggunaan HIDL
Halaman berikut menjelaskan cara Android menghentikan penggunaan dan menghapus HAL HIDL:
Bootloader
Partisi produk
Android 9 dan yang lebih tinggi mendukung pembuatan
partisi /product
menggunakan
sistem build Android. Sebelumnya, Android 8.x menerapkan pemisahan komponen khusus system-on-chip (SoC) dari partisi /system
ke partisi /vendor
tanpa mengkhususkan ruang untuk komponen khusus OEM yang dibuat dari sistem build Android.
Kepatuhan alasan booting kanonis
Halaman Alasan Booting Kanonis menjelaskan perubahan pada spesifikasi alasan booting bootloader di Android 9 dan yang lebih tinggi.
Sistem sebagai root
Semua perangkat yang diluncurkan dengan Android 9 dan yang lebih tinggi harus menggunakan
system-as-root, yang menggabungkan ramdisk.img
ke dalam system.img
(juga dikenal sebagai no-ramdisk), yang pada gilirannya dipasang
sebagai rootfs.
Versi header gambar boot
Di Android 9 dan yang lebih tinggi, header image booting berisi kolom untuk menunjukkan versi header. Bootloader harus memeriksa kolom versi ini dan mengurai header dengan tepat.
DTBO dalam pemulihan
Untuk mencegah kegagalan OTA karena ketidakcocokan antara image pemulihan dan partisi DTBO di perangkat non-A/B, image pemulihan harus berisi informasi dari image DTBO.
Tampilan
Potongan layar
Potongan layar memungkinkan developer aplikasi membuat pengalaman imersif dari tepi ke tepi sekaligus memberikan ruang bagi sensor penting di bagian depan perangkat.
Memutar saran
Pembaruan pada perilaku rotasi layar Android 9 dan yang lebih tinggi mencakup dukungan untuk kontrol yang menghadap pengguna untuk menyematkan rotasi layar ke lanskap atau potret, meskipun posisi perangkat berubah.
Transisi aplikasi yang disinkronkan
Transisi aplikasi yang disinkronkan memungkinkan animasi transisi aplikasi baru.
Klasifikasi teks (sebelumnya TEXTCLASSIFIER)
Android 9 dan yang lebih tinggi menyertakan layanan Pengklasifikasi Teks, yang merupakan cara yang direkomendasikan untuk menerapkan klasifikasi teks, dan penerapan layanan default.
Warna gamut yang bervariasi
Android 9 dan yang lebih tinggi menyertakan dukungan untuk warna gamut lebar, termasuk:
- Rentang dinamis tinggi (HDR)
- Memproses konten dalam ruang warna BT2020, tetapi bukan sebagai ruang data target akhir
Untuk menggunakan warna gamut lebar, stack tampilan penuh perangkat (seperti layar, composer hardware, GPU) harus mendukung warna gamut lebar atau format buffer. Perangkat tidak diwajibkan untuk menyatakan dukungan terhadap konten gamut lebar meskipun hardware mendukungnya. Namun, warna gamut lebar harus diaktifkan untuk memanfaatkan sepenuhnya hardware. Untuk menghindari pengalaman visual yang tidak konsisten, warna gamut lebar tidak boleh dinonaktifkan selama runtime.
Kompatibilitas
Dokumen Definisi Kompatibilitas Android
Compatibility Definition Document (CDD) Android 9 melakukan iterasi pada versi sebelumnya dengan update untuk fitur baru dan perubahan pada persyaratan untuk fungsi yang dirilis sebelumnya.
Setelan
Widget aplikasi yang lebih baik
Framework widget aplikasi Android menawarkan peningkatan visibilitas ke dalam interaksi pengguna, khususnya saat pengguna menghapus atau menambahkan widget secara manual. Fungsi ini tersedia secara default di Launcher3.
Produsen perlu mengupdate aplikasi peluncur mereka (yang disertakan dengan perangkat) untuk mendukung fitur ini jika tidak didasarkan pada Launcher3. OEM harus mendukung kolom widgetFeatures baru di peluncur default mereka.
Perhatikan bahwa fitur ini hanya berfungsi secara menyeluruh jika peluncur menerapkannya seperti yang diharapkan. AOSP menyertakan contoh penerapan. Lihat Change-Id AOSP Iccd6f965fa3d61992244a365efc242122292c0ca untuk contoh kode yang diberikan.
Notifikasi perubahan status perangkat ke penginstal paket
Siaran sistem yang dilindungi dapat dikirim ke aplikasi yang memiliki izin
INSTALL_PACKAGES
setiap kali ada perubahan pada properti seperti
lokalitas atau kepadatan tampilan. Penerima dapat didaftarkan dalam manifes, dan proses akan aktif untuk menerima siaran. Hal ini berguna bagi penginstal paket yang ingin menginstal komponen tambahan aplikasi saat terjadi perubahan tersebut, yang jarang terjadi, karena perubahan konfigurasi yang memenuhi syarat untuk memicu siaran ini jarang terjadi.
Kode sumber notifikasi perubahan status perangkat terletak di lokasi berikut di bagian platform/frameworks/base
:
api/system-current.txt
core/java/android/content/Intent.java
core/res/AndroidManifest.xml
services/core/java/com/android/server/am/ActivityManagerService.java
Arsitektur informasi
Perubahan pada arsitektur informasi untuk aplikasi Setelan memberikan lebih banyak fungsi dan penerapan yang lebih mudah.
Pengujian
Atest
Alat command line Atest memungkinkan Anda membuat, menginstal, dan menjalankan pengujian Android secara lokal, sehingga mempercepat penayangan ulang pengujian tanpa memerlukan pengetahuan tentang opsi command line Trade Federation.
Compatibility Test Suite (CTS)
Download CTS
Paket Compatibility Test Suite (CTS) yang mendukung Android 9 tersedia di halaman
Download CTS. Kode sumber untuk
pengujian yang disertakan dapat disinkronkan dengan tag android-cts-9.0_r1
di
struktur open source.
Opsi CTS
Untuk Android 9, CTS v2 mendapatkan perintah dan argumen berikut:
run retry
mencoba ulang semua pengujian yang gagal atau tidak dijalankan dari sesi sebelumnya.‘--shard-count
membagi CTS yang berjalan menjadi beberapa bagian independen dengan jumlah tertentu, untuk dijalankan di beberapa perangkat secara paralel.
Selain itu, perintah --retry-type
yang sebelumnya tidak didokumentasikan telah ditambahkan ke referensi perintah konsol CTS v2 yang sama.
Layanan Elemen Pengaman (SE)
Layanan Secure Element memeriksa elemen pengaman yang didukung platform global dengan mengidentifikasi apakah perangkat memiliki implementasi SE HAL dan jika ya, berapa banyak. Ini digunakan sebagai dasar untuk menguji API dan implementasi elemen aman yang mendasarinya.
Kotak penggabungan sensor
Kotak sensor fusion digunakan dalam pengujian sensor fusion Camera Image Test Suite (Camera ITS) dan pengujian sinkronisasi multi-kamera serta menyediakan lingkungan pengujian yang konsisten untuk mengukur akurasi stempel waktu kamera dan sensor lainnya untuk ponsel Android. Lihat halaman berikut untuk mengetahui informasi selengkapnya:
- Panduan Memulai Cepat Sensor Fusion Box memberikan langkah-langkah untuk menyiapkan pengujian sensor fusion dan sensor fusion box untuk pertama kalinya.
- Perakitan Kotak Penggabungan Sensor memberikan langkah-langkah untuk merakit kotak penggabungan sensor.
ITS-in-a-box dengan ruang pandang lebar
ITS-in-a-box dengan ruang pandang lebar adalah sistem otomatis yang dirancang untuk menguji sistem kamera dengan ruang pandang lebar (WFoV) dan ruang pandang reguler (RFoV) di Camera ITS.
Vendor Test Suite
Arsitektur pengontrol host
Arsitektur pengontrol host Vendor Test Suite (VTS) adalah arsitektur framework pengujian VTS yang terintegrasi dengan layanan penyediaan pengujian berbasis cloud.
Pengujian HAL yang mendukung nama layanan
Pengujian HAL yang mendukung nama layanan VTS mendukung pengambilan nama layanan instance HAL tertentu berdasarkan perangkat tempat pengujian VTS berjalan.
Pemeriksaan kemampuan pengujian HAL
Pemeriksaan kemampuan pengujian HAL VTS mencakup metode runtime untuk menggunakan konfigurasi perangkat guna mengidentifikasi pengujian VTS mana yang harus dilewati untuk target perangkat tersebut.
Infrastruktur pengujian otomatis
Infrastruktur pengujian otomatis adalah infrastruktur VTS untuk pengujian otomatis VTS, CTS, atau pengujian lainnya di perangkat partner yang menjalankan image sistem generik (GSI) AOSP.
Proses Debug
Telemetri lanjutan
Di Android, telemetri adalah proses pengumpulan informasi penggunaan dan diagnostik secara otomatis tentang perangkat, sistem Android, dan aplikasi. Pada versi Android sebelumnya, stack telemetri terbatas dan tidak mencatat informasi yang diperlukan untuk mengidentifikasi dan menyelesaikan masalah keandalan sistem serta masalah perangkat atau aplikasi. Hal ini membuat identifikasi penyebab utama masalah menjadi sulit, bahkan tidak mungkin.
Android 9 menyertakan fitur telemetri statsd
, yang mengatasi kekurangan ini dengan mengumpulkan data yang lebih baik secara lebih cepat. statsd
mengumpulkan
penggunaan aplikasi, statistik baterai dan proses, serta error. Data dianalisis dan digunakan untuk meningkatkan kualitas produk, hardware, dan layanan.
Untuk detail selengkapnya, lihat frameworks/base/cmds/statsd/
.
Fitur keamanan
Penandatanganan aplikasi
Skema tanda tangan APK v3 mendukung rotasi kunci APK.
Dukungan biometrik
Android 9 menyertakan class publik
BiometricPrompt
,
yang dapat digunakan aplikasi untuk mengintegrasikan dukungan autentikasi biometrik secara
agnostik terhadap perangkat dan modalitas. Untuk mengetahui informasi selengkapnya tentang cara mengintegrasikan stack biometrik Anda untuk menyertakan BiometricPrompt
, lihat
Biometrik.
Analisis dinamis
Android 9 menyertakan dukungan untuk lebih banyak alat mitigasi dan analisis eksploitasi.
Integritas alur kontrol (CFI)
Integritas alur kontrol (CFI) adalah mekanisme keamanan yang melarang perubahan pada grafik alur kontrol asli dari biner yang dikompilasi, sehingga serangan semacam itu menjadi jauh lebih sulit dilakukan.
CFI Kernel
Selain CFI sistem, yang diaktifkan secara default, Android 9 dan yang lebih tinggi menyertakan dukungan untuk integritas alur kontrol (CFI) kernel.
Enkripsi
Enkripsi berbasis file
Enkripsi berbasis file (FBE) diupdate agar berfungsi dengan penyimpanan yang dapat diadaptasi. Perangkat baru harus menggunakan enkripsi berbasis file, bukan enkripsi disk penuh.
Enkripsi metadata
Android 9 dan yang lebih baru menyertakan dukungan untuk enkripsi metadata jika dukungan hardware tersedia. Dengan enkripsi metadata, satu kunci yang ada saat waktu booting menggunakan enkripsi berbasis file untuk mengenkripsi konten yang tidak dienkripsi.
Keystore
Android 9 dan yang lebih tinggi menyertakan Keymaster 4, yang memiliki fitur ini.
StrongBox
Android 9 dan yang lebih tinggi menyertakan dukungan untuk kunci Android Keystore yang disimpan dan digunakan di CPU terpisah secara fisik yang dibuat khusus untuk aplikasi dengan keamanan tinggi, seperti elemen aman (SE) tersemat. StrongBox Keymaster adalah implementasi Keymaster HAL dalam hardware pengaman diskret. StrongBox memiliki:
- CPU diskret
- Penyimpanan aman integral
- Generator angka acak sebenarnya berkualitas tinggi
- Kemasan yang tahan perusakan
- Ketahanan terhadap serangan side-channel
Impor kunci yang aman
Untuk mengimpor kunci secara aman ke Keymaster 4, kunci yang dibuat di luar perangkat dienkripsi dengan spesifikasi otorisasi yang menentukan cara penggunaan kunci.
Dukungan 3DES
Keymaster 4 menyertakan 3DES untuk kompatibilitas dengan sistem lama yang menggunakan 3DES.
Pengikatan versi
Untuk mendukung struktur modular Treble dan memutus binding system.img
ke boot.img
, Keymaster 4 mengubah model binding versi kunci
agar memiliki tingkat patch terpisah untuk setiap partisi. Hal ini memungkinkan setiap partisi diupdate secara terpisah sambil tetap memberikan perlindungan rollback.
Android Protected Confirmation API
Perangkat yang didukung yang diluncurkan dengan Android 9 yang diinstal memberikan kemampuan kepada developer untuk menggunakan
Android Protected Confirmation API.
Dengan API ini, aplikasi dapat menggunakan instance
ConfirmationPrompt
untuk menampilkan dialog kepada pengguna, meminta mereka menyetujui pernyataan singkat. Pernyataan ini memungkinkan aplikasi untuk menegaskan bahwa pengguna ingin menyelesaikan transaksi sensitif, misalnya melakukan pembayaran.
SELinux
Sandbox SELinux per aplikasi
Sandbox aplikasi memiliki perlindungan dan kasus pengujian baru untuk memastikan bahwa semua aplikasi non-hak istimewa yang menargetkan Android 9 dan yang lebih tinggi menjalankan sandbox SELinux individual.
Perubahan SELinux Treble
Update ke SELinux Treble di Android 9 dan yang lebih tinggi didokumentasikan di beberapa halaman di bagian SELinux.
Inisialisasi vendor
Vendor init menutup celah
dalam pemisahan sistem/vendor Treble dengan menggunakan
domain SELinux terpisah untuk menjalankan perintah /vendor
dengan izin khusus vendor.
Properti sistem
Android 9 membatasi properti sistem
agar tidak dibagikan antara partisi system
dan vendor
secara tidak perlu dan
menyediakan metode untuk memastikan konsistensi antara properti sistem yang dibagikan.
Pengujian atribut SELinux
Android 9 menyertakan
pengujian waktu build
baru yang memastikan semua file di lokasi tertentu memiliki
atribut yang sesuai.
Misalnya, semua file di sysfs
memiliki atribut sysfs_type
yang diperlukan.
Audio
Efek audio resolusi tinggi
Update pada efek audio resolusi tinggi mencakup konversi pemrosesan efek dari format int16 ke float dan peningkatan pada jumlah trek output klien serentak, memori klien/server maksimum, dan total trek campuran.
Kamera
Kamera USB eksternal
Android 9 dan yang lebih tinggi mendukung penggunaan kamera USB plug-and-play (yaitu, webcam) menggunakan Android Camera2 API standar dan antarmuka HIDL kamera.
Pelacakan gerakan
Perangkat kamera dapat mengiklankan kemampuan pelacakan gerakan.
Dukungan multi-kamera
Dukungan multi-kamera mencakup dukungan API untuk perangkat multi-kamera melalui perangkat kamera logis baru yang terdiri dari dua atau lebih perangkat kamera fisik yang mengarah ke arah yang sama.
Parameter sesi
Menerapkan parameter sesi dapat mengurangi penundaan dengan memungkinkan klien kamera mengonfigurasi secara aktif subset parameter permintaan yang mahal sebagai bagian dari fase inisialisasi sesi pengambilan.
Buffer satu produsen, beberapa konsumen
Transportasi buffer kamera produsen tunggal, beberapa konsumen adalah serangkaian metode yang memungkinkan klien kamera menambahkan dan menghapus output secara dinamis saat sesi pengambilan aktif dan streaming kamera sedang berlangsung.
Konektivitas
Panggilan dan pesan
Menerapkan paket data
Android 9 dan yang lebih tinggi memberikan dukungan yang lebih baik bagi operator yang menerapkan paket data menggunakan SubscriptionPlan API.
Aplikasi panggilan pihak ketiga
Android 9 dan yang lebih tinggi menyediakan API yang memungkinkan aplikasi panggilan pihak ketiga (3P) untuk menangani panggilan operator masuk serentak dan mencatat panggilan dalam log panggilan sistem.
Operator
Identifikasi operator
Di Android 9, AOSP menambahkan database ID operator untuk membantu identifikasi operator. Database ini meminimalkan logika duplikat dan pengalaman aplikasi yang terfragmentasi dengan menyediakan cara umum untuk mengidentifikasi operator.
eSIM
SIM tersemat (eSIM atau eUICC) adalah teknologi terbaru yang memungkinkan pengguna perangkat seluler mendownload profil operator dan mengaktifkan layanan operator tanpa memiliki kartu SIM fisik. Di Android 9 dan yang lebih tinggi, framework Android menyediakan API standar untuk mengakses eSIM dan mengelola profil langganan di eSIM. Untuk informasi selengkapnya, lihat:
Dukungan multi-SIM untuk setelan IMS
Android 9 dan yang lebih tinggi memberikan peningkatan pada setelan pengguna untuk subsistem multimedia IP (IMS). Anda dapat menyiapkan voiceover LTE (VoLTE), panggilan video, dan panggilan Wi-Fi berdasarkan per-langganan, bukan membagikan setelan ini di semua langganan.
Siaran status SIM
Di Android 9 dan yang lebih tinggi, Intent.ACTION_SIM_STATE_CHANGED
tidak digunakan lagi, dan dua siaran terpisah untuk status kartu dan status penerapan kartu ditambahkan, yaitu TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED
dan TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED
.
Dengan perubahan ini, penerima yang hanya perlu mengetahui apakah kartu ada tidak perlu memproses perubahan status aplikasi, dan penerima yang hanya perlu mengetahui apakah aplikasi kartu siap tidak perlu memproses perubahan status kartu.
Dua siaran baru adalah @SystemApis dan tidak tetap. Hanya penerima dengan izin READ_PRIVILEGED_PHONE_STATE
yang dapat menerima siaran.
Intent tidak disiarkan ulang saat Anda membuka kunci perangkat. Penerima yang
bergantung pada siaran yang dikirim sebelum Anda membuka kunci harus menggunakan directBootAware
,
atau mereka harus mengkueri status setelah pengguna membuka kunci. Status dapat dikueri menggunakan
API yang sesuai di TelephonyManager, getSimCardState()
dangetSimApplicationState()
.
Wi-Fi
Wi-Fi Operator
Fitur Wi-Fi operator memungkinkan perangkat terhubung secara otomatis ke jaringan Wi-Fi yang diterapkan operator. Di area dengan kemacetan tinggi atau dengan cakupan seluler minimal seperti stadion atau stasiun kereta bawah tanah, Wi-Fi operator membantu meningkatkan konektivitas dan mengalihkan traffic.
Pengacakan MAC
Pengacakan MAC memungkinkan perangkat menggunakan alamat MAC acak saat mencari jaringan baru saat ini tidak terhubung dengan jaringan. Di Android 9 dan yang lebih tinggi, opsi developer dapat diaktifkan untuk membuat perangkat menggunakan alamat MAC acak saat terhubung ke jaringan Wi-Fi.
Aktifkan Wi‑Fi secara otomatis
Jika fitur Aktifkan Wi-Fi secara otomatis diaktifkan, Wi-Fi akan otomatis diaktifkan kembali setiap kali perangkat berada di dekat jaringan Wi-Fi tersimpan dengan indikator kekuatan sinyal relatif yang diterima (RSSI) yang cukup tinggi.
Waktu round-trip Wi-Fi
Waktu perjalanan pulang pergi (RTT) Wi-Fi memungkinkan perangkat mengukur jarak ke perangkat lain yang mendukung, baik titik akses (AP) maupun perangkat peer Wi-Fi Aware (jika Wi-Fi Aware didukung di perangkat). Fitur ini dibangun berdasarkan protokol IEEE 802.11mc, dan memungkinkan aplikasi menggunakan akurasi dan deteksi lokasi yang ditingkatkan.
Peningkatan pemberian skor Wi-Fi
Model pemberian skor Wi-Fi yang ditingkatkan dengan cepat dan akurat menentukan kapan perangkat harus keluar dari jaringan Wi-Fi yang terhubung atau masuk ke jaringan Wi-Fi baru. Model ini memberikan pengalaman yang andal dan lancar bagi pengguna dengan menghindari gangguan konektivitas.
Tinjau dan sesuaikan nilai RSSI di resource config.xml
, terutama yang berikut:
config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
Koneksi bersamaan STA/AP Wi-Fi
Kesesuaian STA/AP Wi-Fi adalah kemampuan perangkat untuk beroperasi dalam mode stasiun (STA) dan titik akses (AP) secara bersamaan. Untuk perangkat yang mendukung Wi-Fi simultan dual band (DBS), hal ini membuka kemampuan seperti tidak mengganggu Wi-Fi STA saat pengguna ingin mengaktifkan hotspot (SoftAP).
Peningkatan WiFiStateMachine
WifiStateMachine
adalah class utama yang digunakan untuk mengontrol aktivitas Wi-Fi, mengoordinasikan
input pengguna (mode operasi: hotspot, pemindaian, koneksi, atau nonaktif), dan mengontrol tindakan jaringan Wi-Fi (seperti memindai atau menghubungkan).
Di Android 9 dan yang lebih tinggi, kode framework Wi-Fi dan penerapan WifiStateMachine
diubah arsitekturnya, sehingga ukuran kode berkurang, logika kontrol Wi-Fi lebih mudah diikuti, perincian kontrol ditingkatkan, serta cakupan dan kualitas pengujian unit ditingkatkan.
Pada tingkat tinggi,WifiStateMachine
memungkinkan Wi-Fi berada dalam salah satu dari empat status:
- Mode klien (dapat terhubung dan memindai)
- Mode hanya pindai
- Mode SoftAP (hotspot Wi-Fi)
- Dinonaktifkan (Wi-Fi sepenuhnya nonaktif)
Setiap mode Wi-Fi memiliki persyaratan yang berbeda untuk menjalankan layanan dan harus disiapkan secara konsisten, hanya menangani peristiwa yang relevan dengan pengoperasiannya. Penerapan baru membatasi kode ke peristiwa yang terkait dengan mode tersebut, sehingga mengurangi waktu proses penelusuran bug dan risiko munculnya bug baru karena kompleksitas. Selain penanganan eksplisit untuk fungsi mode, pengelolaan thread ditangani secara konsisten dan penggunaan saluran asinkron dihilangkan sebagai mekanisme sinkronisasi.
Pembaruan izin Wi-Fi
Di Android 9 dan yang lebih tinggi, izin aplikasi CHANGE_WIFI_STATE
diaktifkan
secara default. Anda dapat menonaktifkan izin untuk aplikasi apa pun di halaman setelan di Setelan > Aplikasi & notifikasi > Akses aplikasi khusus > Kontrol Wi-Fi.
Aplikasi harus dapat menangani kasus saat izin CHANGE_WIFI_STATE
tidak diberikan.
Untuk memvalidasi perilaku ini, jalankan pengujian roboelectric dan manual.
Untuk pengujian manual:
- Buka Setelan > Aplikasi & notifikasi > Akses aplikasi khusus > Kontrol Wi-Fi.
- Pilih dan nonaktifkan izin untuk aplikasi Anda.
- Pastikan aplikasi Anda dapat menangani skenario saat izin
CHANGE_WIFI_STATE
tidak diberikan.
Penghentian penggunaan WPS
Karena masalah keamanan, Wi-Fi Protected Setup (WPS) di WiFiManager
tidak digunakan lagi dan dinonaktifkan di Android 9 dan yang lebih tinggi. Namun, WiFiDirect
masih menggunakan
WPS di supplicant WPA.
Grafik
Implementasi
Vulkan 1.1 API
Android 9 dan yang lebih tinggi mendukung penerapan Vulkan 1.1 Graphics API.
Alat WinScope untuk pelacakan transisi jendela
Android 9 dan yang lebih tinggi menyertakan alat WinScope untuk melacak transisi jendela. WinScope menyediakan infrastruktur dan alat untuk merekam dan menganalisis status pengelola jendela selama dan setelah transisi. Alat ini memungkinkan perekaman dan penelusuran transisi jendela, sekaligus merekam semua status pengelola jendela yang relevan ke file rekaman aktivitas. Anda dapat menggunakan data ini untuk memutar ulang dan menelusuri transisi.
Kode sumber alat WinScope terletak di
platform/development/tools/winscope
.
Interaksi
Audio otomotif
Audio Otomotif menjelaskan arsitektur audio untuk penerapan Android terkait otomotif.
HAL Neural Networks (NN) menentukan abstraksi berbagai akselerator. Driver untuk akselerator ini harus sesuai dengan HAL ini.
HAL Kendaraan
Properti Kendaraan menjelaskan perubahan pada antarmuka HAL kendaraan.
Pemilihan satelit GNSS
Saat menggunakan HAL sistem navigasi satelit global (GNSS) baru (v1.1+), Framework Android memantau setelan Android. Partner dapat mengubah setelan dari layanan Google Play atau update sistem lainnya. Setelan ini memberi tahu GNSS HAL jika satelit GNSS tertentu tidak boleh digunakan. Hal ini dapat berguna jika terjadi error satelit atau konstelasi GNSS yang persisten, atau untuk bereaksi lebih cepat terhadap masalah penerapan HAL GNSS yang mungkin terjadi saat mencampur konstelasi menggunakan sistem waktu dan peristiwa eksternal yang berbeda, seperti rollover detik kabisat, hari, atau nomor minggu.
Model hardware GNSS
Di Android 9, GNSS HAL versi 1.1 atau yang lebih tinggi dapat meneruskan informasi tentang API hardware ke platform. Platform perlu
menerapkan antarmuka IGnssCallback
dan meneruskan handle ke HAL. HAL GNSS meneruskan informasi model hardware melalui metode
LocationManager#getGnssHardwareModelName()
. Produsen perangkat harus bekerja sama dengan penyedia HAL GNSS mereka untuk memberikan informasi ini jika memungkinkan.
Izin
Mengonfigurasi pembaruan kontrol akses diskresioner
Mengonfigurasi Kontrol Akses Diskresioner (DAC) berisi pembaruan pada mekanisme ID Android (AID) untuk memperluas kemampuan sistem file.
Mengizinkan izin aplikasi dengan hak istimewa
Di Android 9 dan yang lebih tinggi, jika ada izin yang harus ditolak, edit XML untuk menggunakan tag deny-permission
, bukan tag permission
yang digunakan dalam rilis sebelumnya.
Data
Peningkatan estimasi bandwidth
Android 9 memberikan dukungan yang lebih baik untuk estimasi bandwidth. Aplikasi Android dapat membuat setelan resolusi yang lebih sesuai untuk panggilan video dan streaming video jika dapat mengakses bandwidth data yang tersedia.
Pada perangkat yang menjalankan Android 6.0 atau yang lebih tinggi, pemanggil yang menginginkan perkiraan bandwidth untuk jaringan seluler memanggil
ConnectivityManager.requestBandwidthUpdate()
,
dan framework dapat memberikan perkiraan bandwidth downlink.
Namun, di perangkat yang menjalankan Android 9 atau yang lebih tinggi, callback
onCapabilitiesChanged()
akan otomatis diaktifkan saat ada perubahan signifikan pada perkiraan
bandwidth, dan memanggil requestBandwidthUpdate()
tidak akan berpengaruh; getLinkDownstreamBandwidthKbps()
dan
getLinkUpstreamBandwidthKbps()
yang terkait akan diisi dengan informasi terbaru yang diberikan oleh lapisan fisik.
Selain itu, perangkat dapat memeriksa bandwidth sel LTE melalui
ServiceState.getCellBandwidths()
.
Hal ini memungkinkan aplikasi menentukan jumlah bandwidth (frekuensi) yang tersedia
di sel tertentu. Informasi bandwidth sel tersedia melalui menu tersembunyi sehingga penguji lapangan dapat memeriksa informasi terbaru.
Pemantauan traffic eBPF
Alat traffic jaringan eBPF menggunakan kombinasi penerapan ruang kernel dan pengguna untuk memantau penggunaan jaringan di perangkat sejak perangkat terakhir kali di-boot. Alat ini menyediakan fungsi tambahan seperti pemberian tag soket, pemisahan traffic latar depan/latar belakang, dan firewall per-UID untuk memblokir akses jaringan aplikasi, bergantung pada status perangkat.
Memulihkan ke API yang lebih rendah
Perangkat kini dapat dipulihkan dari versi sistem operasi mendatang. Fitur ini sangat berguna jika pengguna telah mengupgrade ponsel mereka, tetapi kemudian ponsel tersebut hilang atau rusak.
Jika OEM mengubah agen pencadangan untuk salah satu paket sistem (android, system, settings), agen tersebut harus menangani pemulihan set cadangan yang dibuat di platform versi yang lebih tinggi tanpa mengalami error dan dengan memulihkan setidaknya beberapa data.
Sebaiknya gunakan validator untuk memeriksa nilai yang tidak valid dari bagian data cadangan tertentu dan hanya memulihkan data yang valid, seperti dalam
core/java/android/provider/SettingsValidators.java
.
Fitur ini diaktifkan secara default. Dukungan SettingsBackupAgent untuk memulihkan dari
versi mendatang dapat dinonaktifkan melalui
Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION
. Tidak ada implementasi
tambahan yang diperlukan kecuali jika produsen perangkat memperluas salah satu
agen pencadangan yang disertakan dalam ROM (atau menambahkan agen kustom).
Fitur ini memungkinkan pemulihan sistem dari versi platform mendatang; namun, wajar untuk mengharapkan bahwa data yang dipulihkan tidak akan lengkap. Petunjuk berikut berlaku untuk agen pencadangan berikut:
PackageManagerBackupAgent mendukung versi data cadangan mendatang melalui pembuatan versi format; ekstensi di sini harus kompatibel dengan kode pemulihan saat ini atau mengikuti petunjuk dalam class, yang mencakup menaikkan konstanta yang tepat.
SystemBackupAgent menentukan
restoreAnyVersion = false
di Android 9 dan yang lebih tinggi. Tidak mendukung pemulihan dari versi API yang lebih tinggi.SettingsBackupAgent menentukan
restoreAnyVersion = true
di Android 9 dan yang lebih tinggi. Dukungan parsial tersedia melalui validator. Setelan dapat dipulihkan dari versi API yang lebih tinggi jika validator untuk setelan tersebut ada di OS target. Setiap penambahan setelan harus disertai dengan validatornya. Periksa kelas untuk mengetahui detailnya.Setiap agen pencadangan kustom yang disertakan dalam ROM harus meningkatkan kode versinya setiap kali perubahan yang tidak kompatibel dilakukan pada format data cadangan dan memastikan
restoreAnyVersion = false
(default) jika agennya tidak siap menangani data cadangan dari versi kode mendatang.
Enterprise
Peningkatan profil terkelola
Perubahan UX untuk profil terkelola memudahkan pengguna mengidentifikasi, mengakses, dan mengontrol profil terkelola.
Menjeda OTA
@SystemApi baru memungkinkan pemilik perangkat menjeda update OTA tanpa batas waktu, termasuk update keamanan.
Performa
Health 2.0
Android 9 dan yang lebih tinggi mencakup android.hardware.health
HAL 2.0, upgrade versi utama dari health@1.0 HAL. Untuk informasi selengkapnya, lihat halaman berikut:
Solusi penyimpanan dalam cache APK
Android 9 dan yang lebih tinggi menyertakan solusi penyimpanan dalam cache APK untuk penginstalan cepat aplikasi yang telah dimuat sebelumnya di perangkat yang mendukung partisi A/B. OEM dapat menempatkan aplikasi yang sudah dimuat sebelumnya dan aplikasi populer di cache APK yang sebagian besar disimpan di partisi B yang kosong pada perangkat baru dengan partisi A/B tanpa memengaruhi ruang data yang terlihat oleh pengguna.
Pengoptimalan yang dipandu profil
Android 9 dan yang lebih tinggi mendukung penggunaan pengoptimalan yang dipandu profil (PGO) Clang pada modul Android native yang memiliki aturan build blueprint.
Write-ahead logging
Mode khusus SQLiteDatabase yang disebut write-ahead logging (WAL) kompatibilitas memungkinkan database menggunakan
journal_mode=WAL
sambil mempertahankan maksimum satu koneksi per database.
Waktu booting
Android 9 mengubah pengoptimalan waktu booting seperti yang dijelaskan dalam Mengoptimalkan Waktu Booting.
Daya
Pembatasan latar belakang
Android 9 dan yang lebih tinggi menyertakan pembatasan latar belakang yang memungkinkan pengguna membatasi aplikasi yang dapat menguras daya baterai. Sistem juga dapat menyarankan untuk menonaktifkan aplikasi yang berdampak negatif terhadap kesehatan perangkat.
Perangkat tanpa baterai
Android 9 menangani perangkat tanpa baterai dengan lebih baik daripada di rilis sebelumnya. Android 9 menghapus kode untuk perangkat tanpa baterai yang secara default mengasumsikan bahwa baterai ada, terisi daya 100%, dan dalam kondisi baik dengan pembacaan suhu normal pada termistornya.