Android 10 untuk Developer

Android 10 dibuat dengan tiga tema penting. Pertama, Android 10 membentuk keunggulan inovasi seluler dengan machine learning canggih dan dukungan untuk perangkat yang sedang populer seperti perangkat foldable dan ponsel yang mendukung 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 juga memperluas kontrol kesehatan digital pengguna sehingga seseorang dan keluarga dapat menemukan keseimbangan yang lebih baik dengan teknologi.

Berikut adalah hal yang disajikan Android 10 untuk developer dan cara Anda dapat menggunakannya sekarang.

Inovasi dan pengalaman baru

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

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

Perangkat foldable

Berkat dukungan multi-aplikasi yang tangguh, Android 10 memperluas multitasking pada seluruh jendela aplikasi dan memberikan kontinuitas layar untuk menjaga status aplikasi saat perangkat terlipat atau terbuka. Android 10 menambahkan sejumlah peningkatan pada onResume dan onPause untuk mendukung multi-resume dan memberi tahu aplikasi Anda saat aplikasi memiliki fokus. Tindakan ini juga mengubah cara kerja atribut manifes resizeableActivity, untuk membantu Anda mengelola cara aplikasi ditampilkan di perangkat foldable dan layar berukuran besar. Untuk membantu mem-build perangkat foldable, Anda dapat mengonfigurasi emulator foldable sebagai perangkat virtual (AVD) di Android Studio. Untuk mengetahui detail tentang cara mengoptimalkan aplikasi bagi perangkat foldable, lihat panduan developer.

Jaringan 5G

5G menjanjikan kecepatan yang konsisten lebih tinggi 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 tersebut terukur. Dengan ini, aplikasi dan game Anda dapat menyesuaikan pengalaman yang beragam dan imersif bagi pengguna melalui 5G.

Smart Reply pada notifikasi

Android 10 menggunakan ML di perangkat untuk menyarankan tindakan kontekstual pada notifikasi, seperti balasan pintar untuk pesan atau membuka peta menuju suatu 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 bisa memberikan balasan dan tindakan sendiri jika mau. Anda cukup memilih untuk tidak menyertakan 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 yang mendukungnya. Anda dapat mem-build tema gelap kustom untuk aplikasi Anda 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 memberikan layar penuh konten bagi aplikasi.

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 lebih imersif. Hal ini mempertahankan navigasi Kembali, Beranda, dan Terkini yang ada melalui gestur geser tepi, bukan tombol yang terlihat. Agar menyatu secara lancar dengan navigasi gestur, Anda harus berpindah dari tepi ke tepi, menggambar di belakang menu navigasi untuk menciptakan pengalaman yang imersif. Untuk menerapkan hal ini, aplikasi harus menggunakan setSystemUiVisibility() API yang dimunculkan di layar penuh, lalu menangani WindowInsets seperti yang sesuai untuk memastikan potongan UI yang penting tidak tertutup. Mulai optimalkan aplikasi Anda sekarang, dan lihat rangkaian postingan blog kami untuk informasi selengkapnya.

Panel Setelan

Kini Anda dapat menampilkan setelan sistem utama secara 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 aktivitas berbagi jadi 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 langsung saat diluncurkan. Berbagi Pintasan mirip dengan Pintasan App dan menggunakan ShortcutInfo API yang sama. API ini juga didukung di library ShareTarget AndroidX. Lihat contoh aplikasi untuk mengetahui detailnya.

Dengan berbagi pintasan, pengguna dapat langsung beralih ke aktivitas tertentu di aplikasi Anda dengan konten yang dilampirkan.

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 menghadirkan perubahan yang luas untuk melindungi privasi dan memberikan kontrol lebih kepada pengguna, dengan UI sistem yang disempurnakan, izin yang lebih ketat, dan pembatasan pada aplikasi data yang dapat digunakan. Lihat perubahan privasi untuk mengetahui detail tentang cara mendukungnya di aplikasi Anda.

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

Memberi pengguna kontrol lebih atas data lokasi - Pengguna memiliki kontrol lebih atas data lokasinya melalui opsi izin baru -- pengguna kini dapat mengizinkan aplikasi mengakses lokasi hanya saat aplikasi sedang digunakan (berjalan di latar depan). Untuk sebagian besar aplikasi, hal ini memberikan level akses yang memadai, sementara 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 pemindaian jaringan telah mewajibkan izin akses lokasi sementara. Android 10 meningkatkan perlindungan di sekitar API tersebut dengan mewajibkan izin akses lokasi terperinci.

Mencegah pelacakan perangkat - Aplikasi tidak lagi dapat mengakses ID perangkat yang tidak dapat direset yang dapat digunakan untuk melacak, termasuk IMEI perangkat, nomor seri, dan ID yang serupa. Alamat MAC perangkat juga diacak saat terhubung ke jaringan Wi-Fi secara default. 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 menghadirkan sejumlah perubahan guna memberikan kontrol yang lebih pada pengguna atas file dalam penyimpanan eksternal dan data aplikasi di dalamnya. Aplikasi dapat menyimpan file-nya sendiri di sandbox pribadinya, tetapi harus menggunakan MediaStore untuk mengakses file media bersama dan menggunakan pemilih file sistem untuk mengakses file bersama dalam koleksi Download yang baru. Pelajari lebih lanjut di sini.

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

Keamanan

Android 10 memperkenalkan sejumlah fitur yang lebih menjaga keamanan pengguna dengan kecanggihan 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, suatu revisi besar pada standar TLS dengan keunggulan performa dan peningkatan keamanan.

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

Biometrik yang Disempurnakan - Android 10 memperluas framework BiometricPrompt untuk mendukung metode autentikasi pasif seperti wajah, dan menambahkan alur autentikasi implisit dan eksplisit. Pada 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 untuk kredensial perangkat jika diperlukan. Pelajari lebih lanjut di sini.

Kamera dan media

Dynamic depth untuk foto

Kini aplikasi dapat meminta gambar Dynamic Depth, yang terdiri dari JPEG, metadata XMP yang berkaitan dengan elemen terkait kedalaman, serta peta kedalaman dan keyakinan yang disematkan dalam file yang sama. Hal ini memungkinkan Anda menawarkan opsi blur khusus dan bokeh di aplikasi Anda. Dynamic Depth adalah format terbuka untuk ekosistem tersebut dan kami bekerja sama dengan partner untuk menghadirkannya pada perangkat yang menjalankan Android 10 dan versi 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 membiarkan aplikasi lain merekam streaming audionya menggunakan API perekaman pemutaran audio baru. Selain mengaktifkan teks dan subtitel, API memungkinkan Anda mendukung kasus penggunaan yang populer seperti game live streaming. Kami telah membuat kemampuan baru ini dengan mempertimbangkan perlindungan hak cipta dan privasi, sehingga kemampuan aplikasi untuk merekam audio aplikasi lain dapat dibatasi, dan aplikasi dapat memegang kendali penuh terhadap perekaman streaming audionya. 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 streaming konten video berkualitas tinggi ke perangkat Android menggunakan sedikit bandwidth. Selain itu, Android 10 mendukung encoding audio menggunakan Opus - codec terbuka bebas royalti yang dioptimalkan untuk streaming suara dan musik - dan HDR10+ untuk video rentang dinamis tinggi (HDR) pada perangkat yang mendukungnya. MediaCodecInfo API memperkenalkan cara yang lebih mudah untuk menentukan kemampuan rendering video dari perangkat Android. Untuk codec tertentu, Anda dapat memperoleh daftar ukuran dan frekuensi gambar yang didukung.

Native MIDI API

Untuk aplikasi yang melakukan pemrosesan audio di C++, Android 10 memperkenalkan MIDI API native untuk berkomunikasi dengan perangkat MIDI melalui NDK. API ini memungkinkan data MIDI diambil di dalam callback audio menggunakan pembacaan non-blocking, yang memungkinkan pemrosesan pesan MIDI dengan latensi rendah. Cobalah dengan aplikasi contoh dan kode sumber di sini.

Mikrofon terarah yang dapat di-zoom

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

Vulkan di mana saja

Android 10 memperluas dampak Vulkan dengan penerapan kami API lintas platform dengan overhead rendah untuk grafis 3D berperforma tinggi. Vulkan 1.1 kini menjadi persyaratan di semua perangkat 64-bit yang menjalankan Android 10 dan versi yang lebih baru, serta direkomendasikan untuk semua perangkat 32-bit. Kami telah melihat momentum signifikan pada dukungan Vulkan dalam ekosistem ini - di antara perangkat yang menjalankan Android N atau yang lebih baru, 53% mendukung Vulkan 1.0.3 atau yang lebih tinggi. Dengan persyaratan baru di Android 10, kami berharap dapat meningkatkan penerapan pada tahun mendatang.

Konektivitas

Penyempurnaan konektivitas internet dan peer-to-peer

Kami telah memfaktorkan ulang stack Wi-Fi untuk meningkatkan privasi dan performa, serta 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 berperforma tinggi dan latensi rendah. Hal ini dapat menjadi keuntungan besar jika latensi rendah penting bagi pengalaman pengguna, seperti game real-time, panggilan suara aktif, dan kasus penggunaan yang serupa. Platform ini bekerja 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 runtime ART membantu aplikasi Anda dimulai lebih cepat, mengonsumsi lebih sedikit memori, dan berjalan lebih lancar -- tanpa memerlukan pekerjaan dari Anda. Profil ART yang dikirimkan oleh Google Play memungkinkan ART mengompilasi bagian aplikasi Anda sebelum dijalankan. Saat runtime, Android 10 menambahkan Generational Garbage Collection ke Concurrent Copying (CC) Garbage Collector ART dari CV untuk menjadikan 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 peningkatan persentase 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 dengan berbagai optimasi performa. Hal ini menjadi dasar untuk mempercepat rentang model yang jauh lebih luas, seperti 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 dengan cara yang 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 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 menuju 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 agar tidak error, kami akan mengaktifkan pembatasan hanya jika 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 kompatibel dengan Treble dengan lebih cepat dan biaya lebih terjangkau.

Android 10 juga merupakan rilis pertama yang mendukung Project Mainline (yang secara resmi disebut update sistem Google Play), yaitu teknologi baru kami yang berfungsi menjaga keamanan pengguna Android serta menjaga perangkatnya tetap update 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 versi yang lebih baru, tanpa memerlukan update sistem lengkap dari produsen perangkat.

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

Memulai

Untuk mengetahui referensi developer lengkap untuk Android 10, buka developer.android.com/10.