Android 10 memperkenalkan fitur dan kemampuan yang hebat bagi pengguna dan developer. Dokumen ini memperjelas apa saja yang tersedia untuk developer.
Untuk mempelajari API, baca laporan perbedaan API atau buka referensi Android API — cari API yang "ditambahkan di API level 29". Pastikan juga untuk memeriksa perubahan perilaku Android 10 (untuk aplikasi yang menargetkan API level 29 dan untuk semua aplikasi), serta perubahan privasi, untuk mempelajari area mana saja dalam aplikasi Anda yang dapat terpengaruh oleh perubahan platform.
Penyempurnaan keamanan
Android 10 memperkenalkan sejumlah fitur keamanan, yang diringkas di bagian berikut.
Dialog autentikasi biometrik yang disempurnakan
Android 10 memperkenalkan peningkatan berikut pada dukungan autentikasi biometrik:
- Pemeriksaan untuk kemampuan autentikasi biometrik.
- Mekanisme penggantian yang memungkinkan pengguna melakukan autentikasi menggunakan PIN, pola, atau sandi perangkat mereka jika mereka tidak dapat melakukan autentikasi menggunakan input biometrik mereka.
- Petunjuk yang memberi tahu sistem agar tidak memerlukan konfirmasi pengguna setelah pengguna melakukan autentikasi menggunakan modalitas biometrik implisit. Misalnya, Anda dapat memberi tahu sistem bahwa tidak diperlukan konfirmasi lebih lanjut setelah pengguna melakukan autentikasi menggunakan autentikasi wajah.
Menjalankan kode DEX tersemat langsung dari APK
Mulai Android 10, Anda dapat memberi tahu platform agar menjalankan kode DEX tersemat langsung dari file APK aplikasi. Opsi ini dapat membantu mencegah serangan jika penyerang berhasil merusak kode yang dikompilasi secara lokal di perangkat.
Untuk mengetahui informasi selengkapnya, lihat Menjalankan kode DEX tersemat langsung dari APK.
Dukungan TLS 1.3
Android 10 menambahkan dukungan untuk TLS 1.3. TLS 1.3 adalah revisi utama pada standar TLS yang mencakup manfaat performa dan peningkatan keamanan. Tolok ukur kami menunjukkan bahwa koneksi aman dapat dibuat hingga 40% lebih cepat dengan TLS 1.3 dibandingkan dengan TLS 1.2.
Untuk mengetahui detail selengkapnya tentang penerapan TLS 1.3, lihat bagian TLS dalam halaman perubahan perilaku untuk semua aplikasi.
Conscrypt API Publik
Mulai Android 10, penyedia keamanan Conscrypt menyertakan API publik untuk fungsi TLS.
Kumpulan class di bagian
android.net.ssl berisi metode
statis untuk mengakses fungsi yang tidak tersedia dari API
javax.net.ssl generik. Nama untuk class ini dapat disimpulkan sebagai bentuk jamak
dari class javax.net.ssl yang sesuai. Misalnya, kode yang beroperasi pada
instance javax.net.ssl.SSLSocket dapat menggunakan metode dari
SSLSockets.
Fitur konektivitas
Android 10 menghadirkan beberapa penyempurnaan terkait jaringan dan konektivitas.
API sambungan jaringan Wi-Fi
Android 10 menambahkan dukungan untuk koneksi peer-to-peer. Fitur
ini memungkinkan aplikasi Anda meminta pengguna untuk mengubah titik akses yang
terhubung ke perangkat menggunakan
WifiNetworkSpecifier
untuk mendeskripsikan properti jaringan yang diminta. Koneksi peer-to-peer digunakan untuk tujuan non-penyediaan jaringan, seperti konfigurasi bootstrap untuk perangkat sekunder seperti hardware Chromecast dan Google Home.
Untuk informasi selengkapnya, lihat API Permintaan Jaringan Wi-Fi untuk konektivitas peer-to-peer.
API saran jaringan Wi-Fi
Android 10 menambahkan dukungan untuk aplikasi Anda agar meminta pengguna terhubung ke titik akses Wi-Fi. Anda dapat memberikan saran jaringan yang akan dihubungkan. Platform pada akhirnya akan memilih titik akses yang akan diterima berdasarkan input dari aplikasi Anda dan aplikasi lainnya.
Untuk mengetahui informasi selengkapnya tentang fitur ini, lihat Saran Wi-Fi.
Penyempurnaan pada mode Wi-Fi performa tinggi latensi rendah
Android 10 memungkinkan Anda memberikan petunjuk ke modem yang mendasarinya untuk meminimalkan latensi.
Android 10 memperluas API kunci Wi-Fi untuk mendukung mode performa tinggi dan mode latensi rendah secara efektif. Penghemat daya Wi-Fi dinonaktifkan untuk mode performa tinggi dan latensi rendah, dan pengoptimalan latensi lebih lanjut dapat diaktifkan dalam mode latensi rendah, bergantung pada dukungan modem.
Mode latensi rendah hanya diaktifkan saat aplikasi yang memperoleh penguncian berjalan di latar depan dan layar menyala. Mode latensi rendah sangat membantu untuk aplikasi game seluler real-time.
Pencarian khusus pada resolver DNS
Android 10 menambahkan dukungan native untuk pencarian DNS khusus menggunakan
pencarian cleartext dan mode DNS-over-TLS. Sebelumnya, DNS resolver platform hanya mendukung data A dan AAAA, yang hanya memungkinkan pencarian alamat IP yang terkait dengan nama, tetapi tidak mendukung jenis data lainnya.
DnsResolver API menyediakan resolusi asinkron umum, yang memungkinkan Anda mencari SRV, NAPTR, dan jenis data lainnya. Perhatikan bahwa penguraian respons diserahkan ke aplikasi.
Untuk aplikasi berbasis NDK, lihat android_res_nsend.
Wi-Fi Easy Connect
Android 10 memungkinkan Anda menggunakan Easy Connect untuk menyediakan kredensial Wi-Fi
ke perangkat peer, sebagai pengganti WPS yang tidak digunakan lagi.
Aplikasi dapat mengintegrasikan Easy Connect ke dalam alur penyiapan dan penyediaannya menggunakan
intent
ACTION_PROCESS_WIFI_EASY_CONNECT_URI.
Untuk mengetahui informasi selengkapnya tentang fitur ini, lihat Wi-Fi Easy Connect.
API koneksi Wi-Fi Langsung
Class API WifiP2pConfig dan WifiP2pManager memiliki update di Android 10
untuk mendukung kemampuan pembuatan koneksi cepat ke Wi-Fi Langsung menggunakan
informasi yang telah ditentukan. Informasi ini dibagikan melalui saluran samping, seperti
Bluetooth atau NFC.
Contoh kode berikut menunjukkan cara membuat grup menggunakan informasi yang telah ditentukan:
Kotlin
val manager = getSystemService(Context.WIFI_P2P_SERVICE) as WifiP2pManager val channel = manager.initialize(this, mainLooper, null) // prefer 5G band for this group val config = WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build() // create a non-persistent group on 5GHz manager.createGroup(channel, config, null)
Java
WifiP2pManager manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); Channel channel = manager.initialize(this, getMainLooper(), null); // prefer 5G band for this group WifiP2pConfig config = new WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build(); // create a non-persistent group on 5GHz manager.createGroup(channel, config, null);
Untuk bergabung ke grup menggunakan kredensial, ganti manager.createGroup() dengan
berikut:
Kotlin
manager.connect(channel, config, null)
Java
manager.connect(channel, config, null);
Saluran Berorientasi Koneksi (CoC) Bluetooth LE
Android 10 memungkinkan aplikasi Anda menggunakan koneksi BLE CoC untuk mentransfer aliran data yang lebih besar antara dua perangkat BLE. Antarmuka ini mengabstraksi Bluetooth dan mekanisme konektivitas untuk menyederhanakan implementasi.
Fitur telepon
Android 10 menyertakan beberapa peningkatan terkait telepon.
Peningkatan kualitas panggilan
Android 10 menambahkan kemampuan untuk mengumpulkan informasi tentang kualitas panggilan IP Multimedia Subsystem (IMS) yang sedang berlangsung, termasuk kualitas ke dan dari jaringan, pada perangkat yang mendukung fitur tersebut.
Penyaringan panggilan dan nomor penelepon
Android 10 menyediakan cara bagi aplikasi Anda untuk mengidentifikasi panggilan yang tidak
ada dalam buku alamat pengguna sebagai potensi panggilan telepon spam, dan untuk menolak panggilan telepon spam
secara otomatis atas nama pengguna. Informasi tentang panggilan yang diblokir ini dicatat sebagai panggilan yang diblokir di log panggilan untuk memberikan transparansi yang lebih baik kepada pengguna saat mereka melewatkan panggilan tak terjawab. Penggunaan API ini menghilangkan persyaratan
untuk mendapatkan izin READ_CALL_LOG dari pengguna guna menyediakan fungsi penyaringan panggilan
dan ID penelepon.
API layanan pengalihan panggilan
Android 10 mengubah cara penanganan intent panggilan. Siaran
NEW_OUTGOING_CALL tidak digunakan lagi dan diganti dengan
API CallRedirectionService. CallRedirectionService API menyediakan
antarmuka bagi Anda untuk mengubah panggilan keluar yang dilakukan oleh platform Android. Misalnya, aplikasi pihak ketiga mungkin membatalkan panggilan dan mengalihkan rutenya melalui VoIP.
Penyempurnaan dalam pembuatan file di penyimpanan eksternal
Selain memperkenalkan penyimpanan terbatas, Android 10 menambahkan kemampuan berikut yang terkait dengan penyimpanan eksternal:
- Anda dapat menggunakan flag
IS_PENDINGuntuk memberi aplikasi Anda akses eksklusif ke file media saat ditulis ke disk. - Jika Anda mengetahui lokasi spesifik tempat file seharusnya disimpan, Anda dapat memberikan petunjuk kepada sistem untuk tempat penyimpanan file yang baru ditulis.
- Setiap perangkat penyimpanan eksternal memiliki nama volume unik.
Media dan grafis
Android 10 memperkenalkan fitur dan API media dan grafis baru berikut ini:
Berbagi input audio
Android 10 menambahkan kemampuan yang memungkinkan dua aplikasi berbagi input audio secara bersamaan. Untuk mengetahui informasi selengkapnya, lihat Berbagi input audio.
Perekaman pemutaran audio
Android 10 memberikan kemampuan pada aplikasi untuk merekam pemutaran audio dari aplikasi lain. Untuk mengetahui informasi selengkapnya, lihat Perekaman pemutaran.
Seekbar dalam notifikasi MediaStyle
Mulai Android 10, notifikasi MediaStyle menampilkan status progres. Panel pencarian menampilkan
progres pemutaran dari
PlaybackState.getPosition(),
dan dalam beberapa kasus, panel pencarian dapat digunakan untuk mencari lokasi dalam program
yang sedang diputar. Tampilan dan perilaku seekbar dikontrol oleh aturan berikut:
- Seekbar akan muncul jika ada
MediaSessionyang aktif dan durasinya (ditentukan olehMediaMetadata.METADATA_KEY_DURATION) lebih besar dari nol. Artinya, panel tidak akan muncul untuk streaming yang tidak tentu seperti livestream dan siaran radio. - Jika sesi mengimplementasikan
ACTION_SEEK_TO, pengguna dapat menarik seekbar untuk mengontrol lokasi pemutaran.
Native MIDI API
Android Native MIDI API (AMidi) memberi developer aplikasi kemampuan untuk mengirim dan menerima data MIDI dengan kode C/C++, yang terintegrasi lebih erat dengan logika audio/kontrol C/C++ mereka dan meminimalkan kebutuhan akan JNI.
Untuk informasi selengkapnya, lihat API MIDI Bawaan Android.
Penyempurnaan MediaCodecInfo
Android 10 menambahkan metode ke
MediaCodecInfo yang menampilkan lebih banyak
informasi tentang codec.
Untuk mengetahui informasi selengkapnya, lihat Codec media.
Thermal API
Jika menjadi terlalu panas, perangkat dapat men-throttle CPU dan/atau GPU, dan hal ini dapat memengaruhi aplikasi dan game secara tidak terduga. Aplikasi yang menggunakan grafik yang rumit, komputasi yang berat, atau aktivitas jaringan yang berkelanjutan cenderung akan mengalami masalah, dan masalah tersebut dapat bervariasi di berbagai perangkat berdasarkan frekuensi chipset dan core, tingkat integrasi, serta kemasan dan faktor bentuk perangkat.
Di Android 10, aplikasi dan game dapat menggunakan Thermal API untuk memantau perubahan pada perangkat dan melakukan tindakan untuk mempertahankan penggunaan daya yang lebih rendah guna memulihkan suhu normal. Aplikasi mendaftarkan pemroses di PowerManager, yang digunakan sistem untuk melaporkan status termal yang sedang berlangsung, mulai dari ringan dan sedang hingga parah, kritis, darurat, dan nonaktif.
Saat perangkat melaporkan tekanan termal, aplikasi dan game dapat membantu dengan menghentikan aktivitas berkelanjutan untuk mengurangi penggunaan daya dengan berbagai cara. Misalnya, aplikasi streaming dapat mengurangi resolusi/kecepatan bit atau traffic jaringan, aplikasi kamera dapat menonaktifkan flash atau penyempurnaan gambar yang intensif, game dapat mengurangi kecepatan frame atau teselasi poligon, aplikasi media dapat mengurangi volume speaker, dan aplikasi peta dapat menonaktifkan GPS.
Thermal API memerlukan lapisan HAL perangkat baru—saat ini didukung di perangkat Pixel yang menjalankan Android 10 dan kami bekerja sama dengan partner pembuat perangkat untuk menghadirkan dukungan luas ke ekosistem secepat mungkin.
Kamera dan gambar
Android 10 memperkenalkan fitur baru berikut ini terkait kamera dan gambar:
Dukungan kamera monokrom
Versi Android pertama yang memperkenalkan kemampuan kamera monokrom adalah Android 9 (API level 28). Android 10 menambahkan beberapa penyempurnaan untuk dukungan kamera monokrom:
- Dukungan format streaming Y8 untuk meningkatkan efisiensi memori.
- Dukungan untuk pengambilan gambar DNG RAW monokrom.
- Pengenalan enumerasi CFA MONO dan NIR untuk membedakan antara kamera monokrom biasa dan kamera inframerah dekat.
Anda dapat menggunakan fitur ini untuk mengambil gambar monokrom native. Perangkat multi-kamera logis dapat menggunakan kamera monokrom sebagai sub-kamera fisik untuk mencapai kualitas gambar yang lebih baik dalam kondisi cahaya redup.
Format Dynamic Depth
Mulai Android 10, kamera dapat menyimpan data kedalaman untuk gambar dalam file terpisah, menggunakan skema baru yang disebut Dynamic Depth Format (DDF). Aplikasi dapat meminta gambar JPG dan metadata kedalamannya, menggunakan informasi tersebut untuk menerapkan blur yang diinginkan dalam pascapemrosesan tanpa mengubah data gambar asli.
Untuk membaca spesifikasi format ini, lihat Format Kedalaman Dinamis.
Format File Gambar Efisiensi Tinggi
Format High Efficiency Image File (HEIF) adalah format gambar dan video standar yang memperkenalkan encoding berkualitas lebih tinggi dan ukuran file yang lebih kecil jika dibandingkan dengan format file lainnya.
Untuk mengetahui informasi selengkapnya tentang format file, lihat HEIC.
Penyempurnaan pada multi-kamera
Android 10 meningkatkan penggabungan beberapa kamera menjadi satu kamera logis, fitur yang diperkenalkan di Android 9 (level API 28). Berikut ini ditambahkan ke Camera2 API:
isSessionConfigurationSupported(SessionConfiguration sessionConfig)—memungkinkan Anda membuat kueri apakah konfigurasi sesi yang diteruskan dapat digunakan untuk membuat sesi pengambilan gambar kamera atau tidak.LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID—memungkinkan Anda menentukan ID kamera fisik aktif yang mendukung perangkat kamera logis. Anda dapat menggunakan ID yang ditampilkan untuk meminta streaming logis dan streaming subkamera fisik guna mencapai efisiensi daya yang lebih baik.
API layanan aksesibilitas
Android 10 memperkenalkan fitur dan API layanan aksesibilitas baru berikut:
Tanda kunci entri AccessibilityNodeInfo
Mulai Android 10, Anda dapat memanggil
isTextEntryKey()
untuk menentukan apakah AccessibilityNodeInfo tertentu mewakili tombol entri teks
yang merupakan bagian dari keyboard atau keypad.
Respons lisan dialog aksesibilitas
Jika pengguna perlu melakukan pintasan aksesibilitas untuk memulai layanan aksesibilitas, Android 10 memungkinkan dialog disertai dengan perintah text-to-speech jika layanan memintanya.
Pintasan aksesibilitas saat navigasi gestur diaktifkan
Saat fitur navigasi gestur diaktifkan di Android 10, tombol aksesibilitas tidak terlihat atau tidak dapat dipilih. Untuk mengakses menu layanan aksesibilitas, pengguna harus melakukan salah satu gestur berikut:
- Geser ke atas dengan dua jari.
- Geser ke atas dengan dua jari dan tahan.
Pintasan aksesibilitas untuk keyboard fisik
Di Android 10, pengguna dapat memicu pintasan aksesibilitas pada keyboard fisik dengan menekan Control+Alt+Z.
Penyempurnaan pengontrol keyboard virtual
Di Android 10, layanan aksesibilitas dapat meminta agar keyboard virtual ditampilkan meskipun perangkat mendeteksi keyboard fisik terpasang. Pengguna bisa mengganti perilaku ini.
Waktu tunggu aksesibilitas yang ditetapkan pengguna
Android 10 memperkenalkan API
getRecommendedTimeoutMillis(). Metode ini memberikan dukungan untuk waktu tunggu yang ditentukan pengguna untuk elemen UI interaktif dan
non-interaktif. Nilai yang ditampilkan dipengaruhi oleh preferensi pengguna dan API layanan aksesibilitas.
Penyempurnaan IsiOtomatis
Android 10 menyertakan penyempurnaan berikut ini untuk layanan IsiOtomatis.
Permintaan IsiOtomatis terkait kompatibilitas
Anda dapat menggunakan flag
FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST
untuk menentukan apakah permintaan isi otomatis dibuat melalui mode
kompatibilitas.
Menyimpan nama pengguna dan sandi secara bersamaan
Anda dapat mendukung kasus saat aplikasi menggunakan beberapa aktivitas untuk
menampilkan nama pengguna, sandi, dan kolom lainnya menggunakan
flag
SaveInfo.FLAG_DELAY_SAVE.
Interaksi pengguna dengan UI Penyimpanan
Anda dapat menampilkan dan menyembunyikan kolom sandi dalam dialog simpan dengan menetapkan pemroses tindakan pada dialog dan mengubah visibilitas tampilan jarak jauh sandi yang sesuai.
Dukungan untuk memperbarui set data
IsiOtomatis bisa memperbarui sandi yang sudah ada. Misalnya, jika pengguna telah menyimpan sandi, dan mereka menyimpan sandi baru, Isi Otomatis akan meminta pengguna untuk memperbarui sandi yang ada, bukan menyimpan sandi baru.
Penyempurnaan Klasifikasi Kolom
Android 10 menyertakan penyempurnaan berikut ini pada API Klasifikasi Kolom.
Konstruktor UserData.Builder
Konstruktor
UserData.Builder
telah berubah agar lebih selaras dengan pola Builder.
Mengizinkan pemetaan satu Nilai ke beberapa jenis ID Kategori
Saat menggunakan
UserData.Builder di
Android 10, Anda kini dapat memetakan nilai ke beberapa jenis ID kategori. Dalam
rilis sebelumnya, pengecualian ditampilkan jika nilai ditambahkan lebih dari sekali.
Dukungan yang lebih baik untuk nomor kartu kredit
Klasifikasi kolom kini dapat mendeteksi angka empat digit sebagai empat digit terakhir nomor kartu kredit.
Dukungan untuk klasifikasi kolom khusus aplikasi
Android 10 menambahkan
FillResponse.setUserData(),
yang memungkinkan Anda menetapkan data pengguna khusus aplikasi selama durasi sesi.
Hal ini membantu layanan isi otomatis mendeteksi jenis kolom dengan konten khusus aplikasi.
Kontrol UI dan sistem
Android 10 menghadirkan penyempurnaan berikut ini untuk antarmuka pengguna:
Mendukung batas PopFrame JFMTI
Android 10 menambahkan dukungan untuk kemampuan
can_pop_frames
dalam implementasi Android JVMTI. Saat melakukan proses debug, fitur ini
memungkinkan Anda menjalankan ulang fungsi setelah menjeda di titik henti sementara dan menyesuaikan
lokal, global, atau implementasi fungsi. Untuk mengetahui informasi selengkapnya, lihat
halaman referensi Pop Frame Oracle.
Surface control API
Android 10 menyediakan
API SurfaceControl
untuk akses tingkat rendah ke compositor sistem
(SurfaceFlinger). Bagi
sebagian besar pengguna, SurfaceView adalah cara yang tepat untuk memanfaatkan compositor. SurfaceControl API dapat berguna dalam kasus tertentu, misalnya:
- Sinkronisasi beberapa permukaan
- Penyematan permukaan lintas proses
- Pengelolaan masa aktif level rendah
SurfaceControl API tersedia dalam binding
SDK dan NDK.
Implementasi NDK menyertakan API untuk pertukaran buffer secara manual dengan
compositor. Hal ini memberikan alternatif bagi pengguna yang menghadapi batasan BufferQueue.
Deteksi perender hung WebView
Android 10 memperkenalkan class abstrak
WebViewRenderProcessClient, yang dapat digunakan aplikasi untuk mendeteksi apakah
WebView menjadi tidak responsif. Untuk
menggunakan class ini:
- Tentukan subclass Anda sendiri dan terapkan metode
onRenderProcessResponsive()danonRenderProcessUnresponsive(). - Lampirkan instance
WebViewRenderProcessClientAnda ke satu atau beberapa objekWebView. - Jika
WebViewmenjadi tidak responsif, sistem akan memanggil metodeonRenderProcessUnresponsive()klien, dengan meneruskanWebViewdanWebViewRenderProcess. (JikaWebViewadalah proses tunggal, parameterWebViewRenderProcessakan bernilai null.) Aplikasi Anda dapat mengambil tindakan yang sesuai, seperti menampilkan kotak dialog kepada pengguna yang menanyakan apakah mereka ingin menghentikan proses rendering.
Jika WebView tetap tidak responsif, sistem akan memanggil onRenderProcessUnresponsive()
secara berkala (tidak lebih dari sekali setiap lima detik), tetapi tidak melakukan tindakan lain.
Jika WebView menjadi responsif
kembali, sistem akan memanggil onRenderProcessResponsive() sekali saja.
Panel setelan
Android 10 memperkenalkan Panel Setelan, API yang memungkinkan aplikasi menampilkan setelan kepada pengguna dalam konteks aplikasi mereka. Hal ini mencegah pengguna harus membuka Setelan untuk mengubah hal-hal seperti NFC atau Data seluler agar dapat menggunakan aplikasi.
Misalnya, pengguna membuka browser web saat perangkatnya dalam mode pesawat. Sebelum Android 10, aplikasi hanya dapat menampilkan pesan umum yang meminta pengguna membuka Setelan untuk memulihkan konektivitas. Dengan Android 10, aplikasi browser dapat menampilkan panel inline yang menampilkan setelan konektivitas utama seperti mode pesawat, Wi-Fi (termasuk jaringan di sekitar), dan data seluler. Dengan panel ini, pengguna dapat memulihkan konektivitas tanpa keluar dari aplikasi.
Untuk menampilkan panel setelan, aktifkan intent dengan salah satu tindakan
Settings.Panel berikut:
Kotlin
val panelIntent = Intent(Settings.Panel.settings_panel_type) startActivityForResult(panelIntent)
Java
Intent panelIntent = new Intent(Settings.Panel.settings_panel_type); startActivityForResult(panelIntent);
settings_panel_type dapat berupa salah satu dari:
ACTION_INTERNET_CONNECTIVITY- Menampilkan setelan yang terkait dengan konektivitas internet, seperti Mode pesawat, Wi-Fi, dan Data Seluler.
ACTION_WIFI- Menampilkan setelan Wi-Fi, tetapi tidak menampilkan setelan konektivitas lainnya. Hal ini berguna untuk aplikasi yang memerlukan koneksi Wi-Fi untuk melakukan upload atau download dalam jumlah besar.
ACTION_NFC- Menampilkan semua setelan yang terkait dengan komunikasi nirkabel jarak dekat (NFC).
ACTION_VOLUME- Menampilkan setelan volume untuk semua streaming audio.
Peningkatan fitur berbagi
Android 10 menghadirkan sejumlah penyempurnaan untuk fitur berbagi.
Sharing Shortcuts API
Sharing Shortcuts API menggantikan Direct Share API.
Daripada mengambil hasil secara reaktif sesuai permintaan, Sharing Shortcuts API
memungkinkan aplikasi memublikasikan target berbagi langsung terlebih dahulu. Berikut cara kerja
ShortcutManager.
Karena kedua API ini serupa, kami telah memperluas ShortcutInfo API untuk mempermudah penggunaan kedua fitur tersebut. Dengan Sharing Shortcuts API, Anda dapat langsung menetapkan
kategori atau orang ke target berbagi. Target berbagi akan tetap ada dalam sistem
hingga aplikasi yang sama mengupdatenya atau aplikasi di-uninstal.
Mekanisme Berbagi Langsung yang lama masih berfungsi, tetapi aplikasi yang menggunakannya memiliki prioritas lebih rendah daripada aplikasi yang menggunakan Sharing Shortcuts API.
ShortcutInfo.Builder
menambahkan dan meningkatkan metode untuk memberikan info tambahan tentang target berbagi.
Target berbagi langsung
Anda dapat memublikasikan pintasan dinamis sebagai Target Berbagi Langsung. Lihat Memublikasikan target berbagi langsung.
ShortcutManagerCompat
adalah API AndroidX baru yang memberikan kompatibilitas mundur dengan DirectShare API lama. Ini
adalah cara yang direkomendasikan untuk memublikasikan target berbagi.
Melihat pratinjau teks
Saat membagikan konten teks, aplikasi dapat menampilkan pratinjau opsional konten di UI Sharesheet.
Lihat Menambahkan pratinjau rich text
Pelajari lebih lanjut
Untuk mengetahui informasi selengkapnya tentang cara aplikasi dapat membagikan data, lihat Mengirimkan data sederhana ke aplikasi lain dan Menerima data sederhana dari aplikasi lain
Tema gelap
Android 10 menawarkan Tema gelap yang berlaku untuk UI sistem Android dan aplikasi yang berjalan di perangkat. Untuk mengetahui informasi selengkapnya, lihat Tema gelap.
Jenis layanan latar depan
Android 10 memperkenalkan atribut manifes XML
foregroundServiceType, yang Anda sertakan dalam definisi beberapa layanan
tertentu. Anda dapat menetapkan beberapa jenis layanan latar depan untuk layanan tertentu, meskipun hal ini jarang sesuai.
Tabel berikut menunjukkan berbagai jenis layanan latar depan dan layanan yang sesuai untuk mendeklarasikan jenis tertentu:
| Jenis layanan latar depan | Contoh kasus penggunaan untuk layanan yang seharusnya menyatakan jenis ini |
|---|---|
connectedDevice
| Memantau pelacak kebugaran perangkat wearable |
dataSync
| Mendownload file dari jaringan |
location
| Melanjutkan tindakan yang dimulai pengguna |
mediaPlayback
| Memutar buku audio, podcast, atau musik |
mediaProjection
| Merekam video dari tampilan perangkat dalam waktu singkat |
phoneCall
| Menangani panggilan telepon yang sedang berlangsung |
Kotlin
Android 10 menyertakan update berikut ini untuk pengembangan Kotlin.
Anotasi nullability untuk API libcore
Android 10 meningkatkan cakupan anotasi nullability di SDK untuk API libcore. Anotasi ini memungkinkan developer aplikasi yang menggunakan analisis nullability Kotlin atau Java di Android Studio untuk mendapatkan informasi nullness saat berinteraksi dengan API ini.
Biasanya, pelanggaran kontrak nullability di Kotlin menyebabkan error kompilasi. Untuk memastikan kompatibilitas dengan kode yang ada, hanya anotasi
@RecentlyNullable dan @RecentlyNonNull yang ditambahkan. Artinya,
pelanggaran nullability akan menghasilkan peringatan, bukan error.
Selain itu, anotasi @RecentlyNullable atau @RecentlyNonNull yang
ditambahkan di Android 9 akan berubah menjadi @Nullable dan @NonNull.
Artinya, di Android 10 dan yang lebih tinggi, pelanggaran nullability
akan menyebabkan error, bukan peringatan.
Untuk informasi selengkapnya tentang perubahan anotasi, lihat Android Pie SDK kini lebih cocok untuk Kotlin di Blog Developer Android.
NDK
Android 10 menyertakan perubahan NDK berikut ini.
Proses debug yang lebih baik untuk kepemilikan deskriptor file
Android 10 menambahkan fdsan, yang membantu Anda menemukan dan memperbaiki masalah kepemilikan deskriptor file dengan lebih mudah.
Bug yang terkait dengan kesalahan penanganan kepemilikan deskriptor file, yang cenderung muncul sebagai use-after-close dan double-close, serupa dengan bug alokasi memori use-after-free dan double-free, tetapi cenderung jauh lebih sulit untuk didiagnosis dan diperbaiki. fdsan berupaya mendeteksi dan/atau mencegah kesalahan pengelolaan deskriptor file dengan menerapkan kepemilikan deskriptor file.
Untuk mengetahui informasi selengkapnya tentang error yang terkait dengan masalah ini, lihat Error yang terdeteksi oleh fdsan. Untuk mengetahui informasi selengkapnya tentang fdsan, lihat halaman Googlesource tentang fdsan.
ELF TLS
Aplikasi yang di-build menggunakan NDK dengan level API minimum 29 dapat menggunakan ELF TLS,
bukan emutls. Dukungan penaut dinamis dan statis telah ditambahkan untuk mendukung
metode penanganan variabel thread-lokal ini.
Untuk aplikasi yang dibuat untuk level API 28 dan yang lebih rendah, peningkatan telah diterapkan
untuk libgcc/compiler-rt guna mengatasi beberapa masalah emutls.
Untuk mengetahui informasi selengkapnya, lihat Perubahan Android untuk developer NDK.
Runtime
Android 10 menghadirkan perubahan berikut ini untuk waktu proses.
Pemicuan pembersihan sampah memori berbasis Mallinfo
Jika objek Java platform kecil mereferensikan objek besar di heap C++, objek C++ sering kali hanya dapat diklaim kembali saat objek Java dikumpulkan dan, misalnya, diselesaikan. Pada rilis sebelumnya, platform memperkirakan ukuran banyak objek C++ yang terkait dengan objek Java. Estimasi ini tidak selalu akurat dan terkadang menyebabkan peningkatan penggunaan memori yang signifikan, karena platform gagal melakukan pembersihan sampah memori saat seharusnya dilakukan.
Di Android 10, pembersih sampah memori (GC) melacak ukuran total
heap yang dialokasikan oleh malloc() sistem, sehingga memastikan bahwa alokasi malloc()
yang besar selalu disertakan dalam penghitungan pemicu GC. Aplikasi yang menyisipkan
sejumlah besar alokasi C++ dengan eksekusi Java mungkin akan mengalami peningkatan
frekuensi pembersihan sampah memori sebagai hasilnya. Aplikasi lainnya mungkin mengalami sedikit penurunan.
Pengujian dan proses debug
Android 10 menyertakan peningkatan berikut ini untuk pengujian dan proses debug.
Peningkatan pelacakan sistem pada perangkat
Mulai Android 10, Anda dapat menentukan batas ukuran dan durasi pelacakan saat melakukan pelacakan sistem di perangkat. Saat Anda menentukan salah satu nilai, sistem akan melakukan pelacakan panjang, yang secara berkala menyalin buffer rekaman aktivitas ke file tujuan saat rekaman aktivitas direkam. Trace selesai saat batas ukuran atau durasi yang Anda tentukan tercapai.
Gunakan parameter tambahan ini untuk menguji kasus penggunaan yang berbeda dari yang akan Anda uji dengan pelacakan standar. Misalnya, Anda mungkin mendiagnosis bug performa yang hanya terjadi setelah aplikasi berjalan dalam jangka waktu yang lama. Dalam hal ini, Anda dapat merekam rekaman aktivitas yang panjang selama satu hari penuh, lalu menganalisis penjadwal CPU, aktivitas disk, thread aplikasi, dan data lainnya dalam laporan untuk membantu Anda menentukan penyebab bug.
Di Android 10 dan yang lebih baru, file rekaman aktivitas disimpan dalam format yang dapat dibuka dengan Perfetto, sebuah project open source untuk instrumentasi dan pelacakan performa. Anda dapat mengonversi file rekaman aktivitas Perfetto ke dalam format Systrace.
Penyempurnaan TextClassifier
Android 10 menyediakan fungsi klasifikasi teks tambahan di antarmuka
TextClassifier.
Deteksi bahasa
Metode
detectLanguage()
berfungsi mirip dengan metode klasifikasi yang sudah ada sebelumnya. Metode ini
menerima objek
TextLanguage.Request
dan menampilkan objek
TextLanguage.
Objek TextLanguage terdiri dari daftar pasangan berurutan. Setiap pasangan
berisi lokalitas dan skor keyakinan yang sesuai untuk klasifikasi.
Tindakan percakapan yang disarankan
Metode
suggestConversationActions()
berfungsi mirip dengan metode klasifikasi yang ada. Metode ini menerima objek
ConversationActions.Request
dan menampilkan objek
ConversationActions.
Objek ConversationActions
terdiri dari daftar
objek ConversationAction. Setiap objek ConversationAction menyertakan potensi
tindakan yang disarankan dan skor keyakinannya.
Smart reply/tindakan di notifikasi
Android 9 memperkenalkan kemampuan untuk menampilkan balasan yang disarankan dalam notifikasi. Android 10 memperluas fitur ini dengan kemampuan untuk menyertakan tindakan berbasis intent yang disarankan. Selain itu, platform ini dapat membuat saran ini secara otomatis. Aplikasi masih dapat memberikan saran sendiri, atau memilih tidak menggunakan saran yang dihasilkan sistem.API yang digunakan untuk membuat balasan ini adalah bagian dari
TextClassifier,
dan juga telah diekspos langsung kepada developer di Android 10.
Baca bagian tentang peningkatan TextClassifier
untuk mengetahui informasi selengkapnya.
Jika aplikasi Anda memberikan saran sendiri, platform tidak akan membuat
saran otomatis. Jika tidak ingin notifikasi aplikasi menampilkan
balasan atau tindakan yang disarankan, Anda dapat memilih untuk tidak menggunakan balasan
dan tindakan yang dihasilkan sistem dengan menggunakan
setAllowGeneratedReplies()
dan
setAllowSystemGeneratedContextualActions().