Android 10 untuk Developer

Android 10 dibuat dengan tiga tema penting. Pertama, Android 10 membentuk terdepan dalam inovasi seluler dengan machine learning yang canggih dan dukungan untuk perangkat baru seperti perangkat foldable dan ponsel berkemampuan 5G. Selanjutnya, Android 10 memiliki fokus utama pada privasi dan keamanan, dengan hampir 50 fitur yang memberi pengguna perlindungan, transparansi, dan kontrol yang lebih baik. Terakhir, Android 10 memperluas kontrol kesehatan digital pengguna sehingga individu dan keluarga dapat menemukan keseimbangan yang lebih baik dengan teknologi.

Berikut adalah hal yang tersedia di Android 10 untuk developer dan cara menggunakannya saat ini.

Inovasi dan pengalaman baru

Dengan Android 10, Anda dapat memanfaatkan inovasi hardware dan software terbaru untuk menciptakan pengalaman aplikasi yang luar biasa bagi pengguna.

Dengan Android 10, Anda dapat mengoptimalkan aplikasi untuk perangkat foldable dan perangkat layar besar lainnya.

Perangkat foldable

Dengan dukungan multi-aplikasi yang kuat, Android 10 memperluas multitasking di seluruh jendela aplikasi dan memberikan kontinuitas layar untuk mempertahankan status aplikasi saat perangkat dilipat atau dibentangkan. Android 10 menambahkan sejumlah peningkatan pada onResume dan onPause untuk mendukung multi-resume dan memberi tahu aplikasi Anda saat fitur tersebut memiliki fokus. Tindakan ini juga mengubah cara kerja atribut manifes resizeableActivity untuk membantu Anda mengelola cara aplikasi ditampilkan di perangkat foldable dan layar besar. Untuk membantu membangun untuk perangkat foldable, Anda dapat mengonfigurasi emulator perangkat foldable sebagai perangkat virtual (AVD) di Android Studio. Untuk detail tentang cara mengoptimalkan aplikasi untuk perangkat foldable, lihat panduan developer.

Jaringan 5G

5G menjanjikan kecepatan yang secara konsisten lebih cepat dan latensi yang lebih rendah, Android 10 menambahkan dukungan platform untuk 5G dan memperluas API yang ada untuk membantu Anda memanfaatkan peningkatan ini. Anda dapat menggunakan API konektivitas untuk mendeteksi apakah perangkat memiliki koneksi bandwidth tinggi dan memeriksa apakah koneksi berbayar atau tidak. Dengan dukungan tersebut, aplikasi dan game Anda dapat menyesuaikan pengalaman yang kaya dan imersif untuk pengguna melalui 5G.

Smart Reply pada notifikasi

Android 10 menggunakan ML di perangkat untuk menyarankan tindakan kontekstual dalam notifikasi, seperti smart reply untuk pesan atau membuka peta untuk alamat dalam notifikasi. Aplikasi Anda dapat langsung memanfaatkan fitur ini, tanpa Anda perlu melakukan apa pun. Smart reply dan tindakan yang disediakan sistem disisipkan langsung ke dalam notifikasi secara default. Anda masih dapat memberikan balasan dan tindakan sendiri jika menginginkannya. Anda cukup memilih untuk tidak menggunakan Smart Reply berdasarkan notifikasi menggunakan setAllowGeneratedReplies() dan setAllowSystemGeneratedContextualActions().

Smart Reply dapat menyarankan tindakan berdasarkan konten notifikasi.

Tema Gelap

Android 10 menambahkan tema gelap di seluruh sistem yang ideal untuk cahaya redup dan membantu menghemat baterai. Pengguna dapat mengaktifkan tema gelap baru di seluruh sistem dengan membuka Setelan atau mengaktifkan Penghemat Baterai. Tindakan ini akan mengubah UI sistem menjadi gelap, dan mengaktifkan tema gelap aplikasi pendukung. Anda dapat membuat tema gelap kustom untuk aplikasi atau memilih fitur Force Dark baru yang memungkinkan sistem membuat versi gelap secara dinamis dari tema yang ada. Anda juga dapat memanfaatkan fitur DayNight AppCompat untuk menawarkan tema gelap bagi pengguna di Android versi lama. Lihat panduan developer untuk mengetahui informasi selengkapnya.

Android 10 dapat membuat tema gelap untuk aplikasi Anda secara dinamis dengan Force Dark.

Navigasi gestur

Navigasi gestur memberi aplikasi layar penuh untuk konten.

Android 10 memperkenalkan mode navigasi yang sepenuhnya menggunakan gestur, yang menghilangkan area menu navigasi dan memungkinkan aplikasi menggunakan layar penuh untuk memberikan pengalaman yang lebih kaya dan imersif. Hal ini mempertahankan navigasi Kembali, Beranda, dan Terbaru yang sudah dikenal melalui geser tepi, bukan tombol yang terlihat. Agar menyatu dengan lancar dengan navigasi gestur, Anda harus menggerakkan layar dari tepi ke tepi, menggambar di belakang menu navigasi untuk menciptakan pengalaman yang imersif. Untuk menerapkannya, aplikasi harus menggunakan setSystemUiVisibility() API yang ditampilkan di layar penuh, lalu menangani WindowInsets yang sesuai untuk memastikan bagian penting UI tidak terhalang. Mulai optimalkan aplikasi Anda sekarang, dan lihat rangkaian postingan blog kami untuk informasi selengkapnya.

Panel Setelan

Kini Anda dapat menampilkan setelan sistem utama langsung dalam konteks aplikasi, melalui Settings Panel API yang baru. Panel setelan adalah UI mengambang yang Anda panggil untuk menampilkan setelan yang mungkin diperlukan pengguna, seperti konektivitas internet, NFC, dan volume audio. Misalnya, browser dapat menampilkan panel dengan setelan konektivitas seperti Mode Pesawat, Wi-Fi (termasuk jaringan di sekitar), dan Data Seluler. Untuk menampilkan panel setelan, cukup aktifkan intent dengan salah satu tindakan Settings.Panel baru.

Berbagi pintasan

Berbagi Pintasan membuat berbagi menjadi lebih cepat dan mudah, sehingga memungkinkan pengguna beralih langsung ke aplikasi lain untuk berbagi konten. Developer dapat memublikasikan target berbagi yang meluncurkan aktivitas tertentu di aplikasi mereka dengan konten yang dilampirkan, dan ini ditampilkan kepada pengguna di UI berbagi. Karena telah dipublikasikan sebelumnya, UI berbagi akan dimuat seketika saat diluncurkan. Berbagi Pintasan mirip dengan Pintasan App dan menggunakan ShortcutInfo API yang sama. API ini juga didukung di library ShareTarget AndroidX. Lihat aplikasi contoh untuk mengetahui detailnya.

Berbagi pintasan memungkinkan pengguna melompat langsung ke aktivitas tertentu di aplikasi Anda dengan konten yang terlampir.

Privasi untuk pengguna

Privasi adalah fokus utama di Android 10, mulai dari perlindungan yang lebih kuat di platform hingga fitur baru yang didesain dengan mempertimbangkan privasi. Berdasarkan rilis sebelumnya, Android 10 menyertakan perubahan ekstensif untuk melindungi privasi dan memberi pengguna lebih banyak kontrol, dengan UI sistem yang lebih baik, izin yang lebih ketat, dan batasan pada aplikasi data yang dapat digunakan. Lihat perubahan privasi untuk mengetahui detail tentang cara mendukung perubahan privasi di aplikasi Anda.

Pengguna kini dapat memilih untuk memberikan akses ke lokasi saat aplikasi berada di latar depan.

Memberi pengguna kontrol yang lebih besar atas data lokasi - Pengguna memiliki kontrol yang lebih besar atas data lokasinya melalui opsi izin baru - pengguna kini dapat mengizinkan aplikasi untuk mengakses lokasi hanya saat aplikasi sedang digunakan (berjalan di latar depan). Untuk sebagian besar aplikasi, hal ini memberikan tingkat akses yang memadai, sedangkan bagi pengguna, hal ini merupakan peningkatan besar dalam transparansi dan kontrol. Untuk mempelajari perubahan lokasi lebih lanjut, lihat panduan developer atau postingan blog kami.

Melindungi data lokasi dalam pemindaian jaringan - Sebagian besar API untuk jaringan pemindaian sudah mewajibkan izin akses lokasi sementara. Android 10 meningkatkan perlindungan di sekitar API tersebut dengan mewajibkan izin akses lokasi halus.

Mencegah pelacakan perangkat - Aplikasi tidak lagi dapat mengakses ID perangkat yang tidak dapat direset dan dapat digunakan untuk melacak, termasuk IMEI atau nomor seri perangkat, dan ID serupa. Alamat MAC perangkat juga diacak saat terhubung ke jaringan Wi-Fi secara {i>default<i}. Baca praktik terbaik untuk membantu Anda memilih ID yang tepat untuk kasus penggunaan Anda, dan lihat detailnya di sini.

Mengamankan data pengguna dalam penyimpanan eksternal - Android 10 memperkenalkan sejumlah perubahan untuk memberi pengguna kontrol yang lebih besar atas file dalam penyimpanan eksternal dan data aplikasi di dalamnya. Aplikasi dapat menyimpan filenya sendiri di sandbox pribadinya, tetapi harus menggunakan MediaStore untuk mengakses file media bersama dan menggunakan pemilih file sistem untuk mengakses file bersama di koleksi Download baru. Pelajari lebih lanjut di sini.

Memblokir gangguan yang tidak diinginkan - Android 10 mencegah peluncuran aplikasi dari latar belakang yang tiba-tiba melompat ke latar depan dan mengambil alih fokus dari aplikasi lain. Pelajari lebih lanjut di sini.

Keamanan

Android 10 memperkenalkan sejumlah fitur yang menjaga keamanan pengguna dengan kemajuan dalam enkripsi, hardening platform, dan autentikasi. Baca selengkapnya tentang update keamanan Android 10 di sini.

Enkripsi penyimpanan - Semua perangkat kompatibel yang diluncurkan dengan Android 10 diperlukan untuk mengenkripsi data pengguna, dan agar lebih efisien, Android 10 menyertakan Adiantum, mode enkripsi baru kami.

TLS 1.3 secara default - Android 10 juga mengaktifkan TLS 1.3 secara default, sebuah revisi besar pada standar TLS dengan manfaat performa dan meningkatkan keamanan.

Hardening platform - Android 10 juga mencakup hardening untuk beberapa area yang penting keamanan platform.

Biometrik yang Lebih Baik - Android 10 memperluas framework BiometricPrompt untuk mendukung metode autentikasi pasif seperti wajah, serta menambahkan alur autentikasi implisit dan eksplisit. Dalam alur eksplisit, pengguna harus secara eksplisit mengonfirmasi transaksi di TEE selama autentikasi. Alur implisit dirancang untuk alternatif yang lebih ringan untuk transaksi dengan autentikasi pasif. Android 10 juga meningkatkan penggantian kredensial perangkat saat diperlukan. Pelajari lebih lanjut di sini.

Kamera dan media

Dynamic depth untuk foto

Aplikasi kini dapat meminta gambar Dynamic Depth, yang terdiri dari metadata JPEG dan XMP yang terkait dengan elemen terkait kedalaman, serta peta kedalaman dan keyakinan yang disematkan dalam file yang sama. Ini memungkinkan Anda menawarkan opsi blur khusus dan bokeh di aplikasi. Dynamic Depth adalah format terbuka untuk ekosistem dan kami bekerja sama dengan partner kami untuk menghadirkannya ke perangkat yang menjalankan Android 10 dan yang lebih baru.

Dengan gambar Dynamic Depth, Anda dapat menawarkan opsi blur dan bokeh khusus di aplikasi Anda.

Perekaman pemutaran audio

Kini, setiap aplikasi yang memutar audio dapat memungkinkan aplikasi lain merekam streaming audionya menggunakan API perekaman pemutaran audio baru. Selain mengaktifkan teks dan subtitel, API ini memungkinkan Anda mendukung kasus penggunaan populer seperti game live streaming. Kami telah membangun kemampuan baru ini dengan mempertimbangkan perlindungan privasi dan hak cipta, sehingga kemampuan aplikasi untuk merekam audio aplikasi lain terbatas, sehingga memberi aplikasi kontrol penuh atas apakah streaming audio mereka dapat direkam atau tidak. Baca selengkapnya di postingan blog ini.

Codec video dan audio baru

Android 10 menambahkan dukungan untuk codec video open source AV1, yang memungkinkan penyedia media melakukan streaming konten video berkualitas tinggi ke perangkat Android dengan lebih sedikit bandwidth. Selain itu, Android 10 mendukung encoding audio menggunakan Opus - codec terbuka dan bebas royalti yang dioptimalkan untuk streaming ucapan dan musik - serta HDR10+ untuk video rentang dinamis tinggi pada perangkat yang mendukungnya. MediaCodecInfo API memperkenalkan cara yang lebih mudah untuk menentukan kemampuan rendering video dari perangkat Android. Untuk codec tertentu, Anda bisa mendapatkan daftar ukuran dan kecepatan frame yang didukung.

Native MIDI API

Untuk aplikasi yang menjalankan pemrosesan audio di C++, Android 10 memperkenalkan MIDI API native untuk berkomunikasi dengan perangkat MIDI melalui NDK. Dengan API ini, data MIDI dapat diambil di dalam callback audio menggunakan pembacaan yang tidak memblokir, sehingga memungkinkan pemrosesan pesan MIDI berlatensi rendah. Cobalah dengan aplikasi contoh dan kode sumber di sini.

Mikrofon terarah yang dapat di-zoom

Android 10 memberi Anda lebih banyak kontrol atas perekaman audio melalui MikrofonDirection API baru. Anda dapat menggunakan API untuk menentukan arah pilihan mikrofon saat mengambil rekaman audio. Misalnya, saat pengguna mengambil video "selfie", Anda dapat meminta mikrofon depan untuk perekaman audio (jika ada). Selain itu, API ini juga memperkenalkan cara standar untuk mengontrol mikrofon yang dapat di-zoom, sehingga aplikasi Anda dapat memiliki kontrol atas dimensi kolom perekaman.

Vulkan di mana saja

Android 10 memperluas dampak Vulkan dengan implementasi kami API lintas platform dengan overhead rendah untuk grafis 3D berperforma tinggi. Vulkan 1.1 kini merupakan persyaratan di semua perangkat 64-bit yang menjalankan Android 10 dan yang lebih tinggi, serta rekomendasi untuk semua perangkat 32-bit. Kami sudah melihat momentum signifikan pada dukungan Vulkan dalam ekosistemnya, di antara perangkat yang menjalankan Android N atau yang lebih baru, 53% mendukung Vulkan 1.0.3 atau yang lebih baru. Dengan persyaratan baru di Android 10, kami memperkirakan tingkat adopsi akan semakin meningkat di tahun mendatang.

Konektivitas

Penyempurnaan konektivitas internet dan peer-to-peer

Kami telah memfaktorkan ulang stack Wi-Fi untuk meningkatkan privasi dan performa, dan juga untuk meningkatkan kasus penggunaan umum seperti mengelola perangkat IoT dan menyarankan koneksi internet, tanpa memerlukan izin akses lokasi. API koneksi jaringan memudahkan pengelolaan perangkat IoT melalui Wi-Fi lokal, untuk fungsi peer-to-peer seperti mengonfigurasi, mendownload, atau mencetak. API saran jaringan memungkinkan aplikasi menampilkan jaringan Wi-Fi pilihan kepada pengguna untuk konektivitas internet.

Mode performa Wi-Fi

Aplikasi kini dapat meminta Wi-Fi adaptif dengan mengaktifkan mode performa tinggi dan latensi rendah. Hal ini dapat menjadi manfaat besar jika latensi rendah penting bagi pengalaman pengguna, seperti game real-time, panggilan suara aktif, dan kasus penggunaan serupa. Platform ini bekerja sama dengan firmware perangkat untuk memenuhi persyaratan dengan konsumsi daya terendah. Untuk menggunakan mode performa baru, panggil WifiManager.WifiLock.createWifiLock() dengan WIFI_MODE_FULL_LOW_LATENCY atau WIFI_MODE_FULL_HIGH_PERF. Dalam mode ini, platform bekerja dengan firmware perangkat untuk memenuhi persyaratan dengan konsumsi daya terendah.

Dasar-dasar Android

Pengoptimalan ART

Peningkatan pada runtime ART membantu aplikasi Anda dimulai lebih cepat, mengonsumsi lebih sedikit memori, dan berjalan lebih lancar -- tanpa memerlukan pekerjaan apa pun dari Anda. Profil ART yang dikirimkan oleh Google Play memungkinkan ART mengompilasi bagian aplikasi Anda terlebih dahulu bahkan sebelum dijalankan. Saat runtime, Android 10 menambahkan Generational Garbage Pengumpulan ke Concurrent Menyalin (CC) Garbage Collector ART untuk membuat pembersihan sampah memori lebih efisien dalam hal waktu dan CPU, mengurangi jank, dan membantu aplikasi berjalan lebih baik di perangkat kelas bawah.

Diagram ini menunjukkan persentase peningkatan waktu startup untuk aplikasi tertentu saat diuji menggunakan profil Play.

Neural Networks API 1.2

Kami telah menambahkan 60 operasi baru termasuk ARGMAX, ARGMIN, LSTM terkuantisasi, bersama berbagai pengoptimalan performa. Hal ini menjadi dasar untuk mempercepat rentang model yang jauh lebih luas, seperti model untuk deteksi objek dan segmentasi gambar. Kami bekerja sama dengan vendor hardware dan framework machine learning populer seperti TensorFlow untuk mengoptimalkan dan meluncurkan dukungan untuk NNAPI 1.2.

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. Kini di Android 10, aplikasi dan game dapat menggunakan Thermal API untuk memantau perubahan pada perangkat dan mengambil tindakan untuk membantu memulihkan suhu ke normal. Misalnya, aplikasi streaming dapat mengurangi resolusi/kecepatan bit atau traffic jaringan, aplikasi kamera dapat menonaktifkan flash atau peningkatan kualitas gambar yang intensif, atau game dapat mengurangi kecepatan frame atau teselasi poligon. Baca selengkapnya di sini.

Kompatibilitas melalui API publik

Android 10 terus memperluas pembatasan pada antarmuka non-SDK agar aplikasi secara bertahap beralih hanya menggunakan API publik. Jika antarmuka yang saat ini Anda gunakan dibatasi, Anda dapat meminta API publik baru untuk antarmuka tersebut. Untuk membantu Anda melakukan transisi dan mencegah aplikasi Anda rusak, kami mengaktifkan pembatasan hanya saat aplikasi Anda menargetkan Android 10 (API 29). Untuk detail selengkapnya tentang pembatasan, lihat panduan developer.

Update lebih cepat, kode baru

Android 10 dibuat untuk update yang lebih cepat melalui Project Treble, yang menyediakan antarmuka yang konsisten dan dapat diuji antara Android dan kode perangkat yang mendasarinya dari pembuat perangkat dan produsen silikon. Melalui Treble, produsen perangkat dapat membawa Android 10 ke perangkat yang sesuai dengan Treble dengan lebih cepat dan biaya lebih rendah.

Android 10 juga merupakan rilis pertama yang mendukung Project Mainline (yang secara resmi disebut update sistem Google Play), teknologi baru kami untuk mengamankan pengguna Android dan menjaga perangkat mereka tetap terbaru dengan perubahan kode penting - langsung dari Google Play. Dengan update sistem Google Play, kami dapat mengupdate komponen internal tertentu di semua perangkat yang menjalankan Android 10 dan yang lebih tinggi, tanpa memerlukan update sistem lengkap dari produsen perangkat.

Bagi developer, kami berharap update di Android 10 ini dapat membantu mendorong konsistensi implementasi platform secara luas di seluruh perangkat, dan seiring waktu menghadirkan keseragaman yang lebih besar yang akan mengurangi biaya pengembangan dan pengujian Anda.

Mulai

Referensi developer yang lengkap untuk Android 10 dapat dilihat di developer.android.com/10.