Diposting oleh Dave Burke, VP of Engineering
Pekan lalu di Mobile World Congress, kami melihat bahwa ekosistem developer Android, device makers, dan silicon partners terus menghadirkan pengalaman menakjubkan bagi pengguna di seluruh dunia.

Memandang ke depan, hari ini kami berbagi preview developer pertama Android P, versi terbaru Android. Ini adalah build dasar awal khusus untuk developer -- Anda adalah peninjau dan penguji kami yang paling tepercaya ;-) Masukan awal dari komunitas developer sangat penting dalam membantu kami mengembangkan platform untuk memenuhi kebutuhan Anda. Kami berharap supaya Anda mencoba fitur dan API baru di P, dan seperti biasa, kami bergantung pada ide dan masukan awal Anda, jadi tolong berikan kami masukan Anda!

Preview developer pertama Android P ini baru permulaan - kami memiliki lebih banyak untuk dibagikan di Google I/O pada bulan Mei, nantikan terus!

Fitur baru untuk dicoba di aplikasi Anda


Berikut adalah beberapa fitur menarik yang terdapat di preview pertama Android P yang perlu Anda coba dan berikan masukan.

Pemosisian dalam ruangan dengan Wi-Fi RTT


Pemosisian dalam ruangan yang akurat merupakan tantangan dari dulu yang membuka peluang baru untuk layanan berbasis lokasi. Android P menambahkan dukungan platform untuk protokol WiFi IEEE 802.11mc -- juga dikenal sebagai WiFi Round-Trip-Time (RTT) -- agar Anda dapat memanfaatkan pemosisian dalam ruangan di aplikasi Anda.

Pada perangkat Android P dengan dukungan hardware, izin lokasi, dan lokasi diaktifkan, aplikasi Anda bisa menggunakan RTT API untuk mengukur jarak ke WiFi Access Points (AP) terdekat. Perangkat tidak perlu terhubung ke AP untuk menggunakan RTT, dan untuk menjaga privasi, hanya ponsel yang bisa menentukan jarak, bukan AP.

Dengan mengetahui jarak ke 3 atau beberapa AP, Anda bisa menghitung posisi perangkat dengan akurasi 1 sampai 2 meter. Dengan akurasi ini, Anda bisa membangun pengalaman baru seperti navigasi dalam bangunan; layanan berbasis lokasi yang bagus seperti kontrol suara yang jelas (mis., 'Hidupkan lampu ini'); dan informasi berbasis lokasi (mis., 'Adakah penawaran khusus untuk produk ini?').

Dukungan cutout tampilan


Kini aplikasi bisa memanfaatkan sepenuhnya layar perangkat terbaru dengan konten fullscreen. Kami telah menambahkan cutout tampilan ke dalam platform, bersama dengan API yang bisa Anda gunakan untuk mengelola bagaimana konten Anda ditampilkan.

Dukungan cutout bekerja secara mulus untuk aplikasi, dengan sistem yang akan mengelola tinggi status bar untuk memisahkan konten Anda dari cutout. Bila Anda memiliki konten imersif serta penting, Anda juga bisa menggunakan API baru untuk memeriksa bentuk cutout dan meminta layout full-screen di sekelilingnya. Anda bisa memeriksa apakah perangkat saat ini memiliki cutout dengan memanggil getDisplayCutout(), lalu menentukan lokasi dan bentuk area cutout menggunakan DisplayCutout. Atribut layout jendela baru, layoutInDisplayCutoutMode, memungkinkan Anda memberi tahu sistem bagaimana dan kapan menata konten Anda relatif terhadap area cutout. Detail selengkapnya bisa dilihat di sini.

Untuk mempermudah dalam membangun dan menguji dukungan cutout di aplikasi Anda, kami telah menambahkan Developer Option yang menyimulasikan cutout pada perangkat apa pun. Kami sarankan untuk menguji aplikasi yang sudah ada dengan display cutout diaktifkan untuk memastikan konten Anda ditampilkan dengan benar.

Aplikasi dengan konten imersif bisa menampilkan konten fullscreen pada perangkat dengan cutout tampilan.

Notifikasi perpesanan yang disempurnakan


Di Android P, kami memberi prioritas pada peningkatan visibilitas dan fungsi dalam notifikasi. Cobalah gaya notifikasi MessagingStyle baru -- yang bisa menandai siapa pengirim pesan dan bagaimana Anda dapat membalasnya. Anda bisa menampilkan percakapan, menyematkan foto dan stiker, bahkan menyarankan smart reply. Lihat detail di sini.
Dalam notifikasi MessagingStyle Anda sekarang bisa menampilkan percakapan dan smart reply [kiri] bahkan menyematkan gambar dan stiker [kanan].

Multi-camera API


Sekarang Anda bisa mengakses streaming secara bersamaan dari dua atau beberapa kamera pada perangkat yang menjalankan Android P. Pada perangkat dengan kamera dual-depan atau dual-belakang, Anda dapat membuat fitur inovatif yang tidak mungkin dilakukan dengan hanya satu kamera saja, seperti zoom yang mulus, bokeh, dan stereo vision. API ini juga memungkinkan Anda memanggil streaming kamera logis atau tergabung yang bisa secara otomatis beralih di antara dua atau beberapa kamera. Kami menantikan kreasi baru Anda yang menarik karena perangkat Android P yang mendukung beberapa kamera akan menjangkau pasar tahun depan.

Penyempurnaan lain pada kamera termasuk parameter Session baru yang membantu mengurangi penundaan selama pengambilan awal, dan Surface sharing yang memungkinkan klien kamera menangani berbagai kasus penggunaan tanpa harus berhenti dan memulai streaming kamera. Kami juga menambahkan API untuk dukungan flash berbasis tampilan dan akses ke OIS timestamp untuk efek khusus dan stabilisasi gambar tingkat aplikasi.

ImageDecoder untuk bitmap dan sumber daya dapat digambar


Android P memberi Anda cara yang lebih mudah untuk melakukan dekode gambar menjadi bitmap atau sumber daya dapat digambar -- ImageDecoder, yang membuat BitmapFactory tidak digunakan lagi. ImageDecoder memungkinkan Anda membuat bitmap atau sumber daya dapat digambar dari buffer byte, file, atau URI. ImageDecoder menawarkan beberapa keunggulan dibandingkan BitmapFactory, termasuk dukungan untuk penskalaan yang tepat, decoding satu langkah ke memori hardware, dukungan untuk post-processing dalam dekode, dan decoding gambar animasi.

Anda bisa melakukan dekode dan penskalaan ke ukuran yang tepat cukup dengan memanggil setResize() bersama dengan dimensi target. Anda juga bisa memanggil getSampledSize() untuk mendapatkan dimensi gambar pada tingkat sampel tertentu, lalu melakukan penskalaan ke dimensi tersebut. Jika Anda ingin melakukan post-processing gambar -- seperti menerapkan sudut membulat untuk masker melingkar atau efek yang lebih rumit -- Anda bisa memberikan android.graphics.PostProcessor apa pun ke ImageDecoder. Anda juga bisa membuat Sumber Daya Dapat Digambar secara langsung, dengan ImageDecoder.decodeDrawable(). Jika gambar yang dienkode adalah WebP atau GIF animasi, Sumber Daya Dapat Digambar akan menjadi instance dari AnimatedImageDrawable baru.

HDR VP9 Video, kompresi gambar HEIF, dan Media API


Android P menambahkan dukungan bawaan untuk HDR VP9 Profile 2, sehingga kini Anda bisa menghadirkan film berkemampuan HDR kepada pengguna Anda dari YouTube, Play Movies, dan sumber lainnya pada perangkat berkemampuan HDR.

Kami sangat gembira bisa menambahkan encoding gambar HEIF (heic) ke platform. HEIF adalah format populer untuk foto yang meningkatkan kompresi untuk menghemat penyimpanan dan data jaringan. Dengan dukungan platform pada perangkat Android P, kini mengirim dan menggunakan gambar HEIF dari server backend Anda bisa dilakukan dengan mudah. Setelah memastikan bahwa aplikasi Anda kompatibel dengan format data ini untuk dibagikan dan ditampilkan, cobalah HEIF sebagai format penyimpanan gambar di aplikasi Anda. Anda bisa melakukan konversi jpeg-ke-heic menggunakan ImageDecoder atau BitmapFactory untuk menghasilkan bitmap dari jpeg, dan Anda dapat menggunakan HeifWriter di Support Library alfa baru untuk menulis gambar HEIF dari buffer byte YUV, Surface, atau Bitmap.

Kami juga sedang dalam proses penyempurnaan dan pemfaktoran ulang API media agar lebih mudah dikembangkan dan diintegrasikan -- lihat detail selengkapnya yang akan hadir akhir tahun ini.

Sensitivitas biaya data di JobScheduler


JobScheduler adalah layanan terpusat Android untuk membantu Anda mengelola kerja atau tugas terjadwal di Istirahatkan, Aplikasi Standby, dan ubahan Batasan Latar Belakang. Di Android P, JobScheduler menangani tugas yang berhubungan dengan jaringan agar menguntungkan pengguna, berkoordinasi dengan sinyal status jaringan yang disediakan secara terpisah oleh operator.

Jobs sekarang bisa mendeklarasikan ukuran data yang diperkirakan, prefetch sinyal, dan menetapkan persyaratan jaringan dengan terperinci—operator dapat melaporkan jaringan ketika padat atau tidak dibatasi. JobScheduler kemudian mengelola tugas sesuai dengan status jaringan. Misalnya, ketika suatu jaringan padat, JobScheduler mungkin menunda permintaan jaringan yang berukuran besar. Bila jaringan tidak dibatasi, ia bisa menjalankan tugas prefetch untuk meningkatkan pengalaman pengguna, seperti dengan memuat awal judul utama.

Saat Anda menambahkan tugas, cobalah menggunakan setEstimatedNetworkBytes(), setIsPrefetch() dan setRequiredNetwork() agar JobScheduler menangani pekerjaan dengan benar. Saat tugas dijalankan, pastikan untuk menggunakan objek Network yang ditampilkan oleh JobParameters.getNetwork(), jika tidak, secara tidak langsung Anda menggunakan jaringan default perangkat yang mungkin tidak memenuhi persyaratan Anda, sehingga menyebabkan penggunaan data yang tidak diinginkan.

Neural Networks API 1.1


Kami memperkenalkan Neural Networks API di Android 8.1 untuk mempercepat machine learning pada perangkat di Android. Pada Android P kami memperluas dan memperbarui API ini, menambahkan dukungan untuk sembilan operasi baru -- Pad, BatchToSpaceND, SpaceToBatchND, Transpose, Strided Slice, Mean, Div, Sub, dan Squeeze. Jika Anda memiliki perangkat Pixel 2, build DP1 sekarang menyertakan driver Qualcomm Hexagon HVX dengan akselerasi untuk model terkuantisasi.

Penyempurnaan IsiOtomatis


Pada Android P, kami terus menyempurnakan Framework IsiOtomatis berdasarkan masukan dari pengguna dan developer. Selain perbaikan bug utama, rilis ini mencakup API baru yang memungkinkan pengelola sandi menyempurnakan pengalaman pengguna IsiOtomatis, seperti pemfilteran dataset, sanitisasi input, dan mode kompatibilitas yang lebih baik. Mode kompatibilitas secara khusus memiliki dampak besar pada pengguna akhir karena ia memungkinkan pengelola sandi menerapkan pendekatan berbasis aksesibilitas dalam aplikasi yang belum memiliki dukungan IsiOtomatis penuh, tanpa dampak pada kinerja atau keamanan. Lihat semua detail tentang hal yang baru di sini.

Open Mobile API untuk pembayaran NFC dan transaksi yang aman


Android P menambahkan implementasi GlobalPlatform Open Mobile API ke Android. Pada perangkat yang didukung, aplikasi bisa menggunakan OMAPI API untuk mengakses secure element (SE) untuk mengaktifkan pembayaran smart-card dan layanan aman lainnya. Hardware abstraction layer (HAL) menyediakan API dasar untuk memperinci berbagai Secure Element (eSE, UICC, dan lainnya) yang tersedia.

Memperkuat fondasi Android


Pada Android P, kami melanjutkan investasi jangka panjang kami untuk menjadikan Android sebagai platform terbaik bagi developer.

Keamanan untuk aplikasi


Pada Android P, kami beralih ke UI yang lebih konsisten untuk autentikasi sidik jari di seluruh aplikasi dan perangkat. Android sekarang menyediakan dialog sistem standar untuk meminta pengguna menyentuh sensor sidik jari, mengatur teks dan penempatan secara tepat bagi perangkat tersebut. Aplikasi bisa memicu dialog sidik jari sistem menggunakan FingerprintDialog API yang baru. Kami sarankan untuk beralih ke dialog sistem baru secepatnya.

Sebagai bagian dari upaya yang lebih besar untuk memindahkan semua traffic jaringan dari cleartext (HTTP tidak dienkripsi) ke TLS, kami juga mengubah default untuk Network Security Configuration agar memblokir semua traffic cleartext. Jika menggunakan Network Security Configuration, Anda sekarang harus membuat koneksi melalui TLS, kecuali Anda secara eksplisit memilih cleartext untuk domain tertentu.

Privasi untuk pengguna


Untuk lebih memastikan privasi, Android P membatasi akses ke mikrofon, kamera, dan semua sensor SensorManager dari aplikasi yang tidak berjalan. Ketika UID aplikasi Anda tidak berjalan, mikrofon tidak melaporkan audio dan sensor berhenti melaporkan event. Kamera yang digunakan oleh aplikasi Anda akan terputus dan menampilkan error bila aplikasi tersebut mencoba menggunakannya. Dalam kebanyakan kasus, pembatasan ini seharusnya tidak menimbulkan masalah baru untuk aplikasi yang sudah ada, tetapi kami sarankan agar menghapus permintaan ini dari aplikasi Anda.

Kami juga akan mengaktifkan enkripsi backup Android dengan client-side secret. Fitur ini masih dalam pengembangan aktif dan akan diluncurkan pada rilis pratinjau Android P mendatang.

Dalam jangka panjang, kami bekerja untuk membawakan dukungan bagi pengacakan per-jaringan dari alamat MAC yang terkait ke platform. Pada perangkat didukung yang menjalankan Android P, Anda bisa mengaktifkan versi eksperimental ini untuk menguji sebagai opsi developer baru.

Android P juga memberi pengguna kontrol untuk akses ke ID build.serial platform dengan menempatkannya di belakang izin READ_PHONE_STATE. Akses langsung ke ID ini sudah tidak digunakan lagi sejak Android 8.0. Untuk mengakses ID build.serial, Anda harus menggunakan metode Build.getSerial().

Kinerja ART


Kami berupaya meningkatkan kinerja dan efisiensi untuk semua aplikasi melalui ART runtime. Kami telah memperluas penggunaan profil execution ART untuk mengoptimalkan aplikasi dan mengurangi jejak dalam-memori dari kode aplikasi yang dikompilasi. ART sekarang menggunakan informasi profil untuk penulisan ulang file DEX pada perangkat, dengan pengurangan hingga 11% pada berbagai aplikasi populer. Kami berharap ini berkorelasi erat dengan pengurangan penggunaan memori DEX sistem dan waktu startup yang lebih cepat untuk aplikasi Anda.

Kotlin yang Dioptimalkan


Kotlin adalah bahasa utama di Android, dan bila Anda belum mencobanya, Anda harus melakukannya! Kami telah membuat komitmen abadi kepada Kotlin di Android dan terus memperluas dukungan termasuk mengoptimalkan kinerja kode Kotlin. Pada P Anda akan melihat hasil pertama dari pekerjaan ini -- kami telah menyempurnakan beberapa optimalisasi compiler, terutama yang menargetkan loop, untuk mengekstrak kinerja yang lebih baik. Kami juga terus bekerja sama dengan JetBrains untuk mengoptimalkan kode yang dihasilkan Kotlin. Anda bisa mendapatkan semua peningkatan kinerja Kotlin terbaru ini hanya dengan mengupdate plugin Kotlin Android Studio.

Efisiensi daya


Pada Android P kami terus menyempurnakan Istirahatkan, Aplikasi Standby, dan Batasan Latar Belakang untuk lebih meningkatkan lagi masa pakai baterai; pastikan untuk mencoba aplikasi Anda dengan fitur-fitur ini dan kirimkan masukan.

Menargetkan Android modern


Android P dibentuk dengan inisiatif jangka panjang kami untuk memodernisasi fondasi Android dan aplikasi yang berjalan di atasnya. Seperti yang baru-baru ini diumumkan, Google Play akan mewajibkan semua update aplikasi menargetkan Android Oreo (targetSdkVersion 26 atau yang lebih tinggi) hingga bulan November 2018, dengan dukungan untuk hardware 64-bit pada tahun 2019.

Sejalan dengan perubahan ini, Android P akan memperingatkan pengguna dengan dialog saat mereka menginstal aplikasi yang menargetkan platform lebih lawas dari Android 4.2 (targetSdkVersion kurang dari 17), dan versi platform mendatang akan terus menaikkan batas terendah tersebut. Kami mendorong setiap developer Android mulai merencanakan migrasi untuk menargetkan API 26 saat ini, dan memulai migrasi secepatnya. Berikut adalah checklist sumber daya untuk mendapatkan bantuan dan dukungan -- kami menantikan aplikasi Anda agar mendapatkan hasil maksimal dari Android modern.

Meningkatkan kompatibilitas aplikasi melalui API publik


Masalah utama bagi pengguna dan developer adalah kompatibilitas aplikasi -- memastikan bahwa aplikasi siap untuk versi platform yang baru saat mereka datang, tanpa risiko error bagi pengguna dan peluncuran darurat bagi developer. Aplikasi yang menggunakan API publik Android dari SDK atau NDK berada dalam posisi yang baik untuk kompatibel, tetapi tidak demikian halnya dengan aplikasi yang menggunakan library dan antarmuka Android pribadi.

Jadi dengan Android P, kami memulai proses bertahap untuk membatasi akses ke antarmuka non-SDK yang dipilih, meminta developer -- termasuk tim aplikasi di Google -- untuk menggunakan API publik yang ekuivalen sebagai gantinya. Jika tidak ada API publik yang ekuivalen untuk kasus penggunaan Anda, silakan beri tahu kami -- kami ingin memastikan bahwa proses ini berjalan semulus mungkin bagi developer, jadi kami akan menggunakan masukan Anda untuk memastikan peluncuran awal hanya memengaruhi API di mana developer bisa dengan mudah bermigrasi ke API publik alternatif. Selengkapnya tentang pembatasan di sini.

Mulai dengan beberapa langkah sederhana


Pertama, buat aplikasi Anda kompatibel untuk memberi pengguna transisi yang mulus ke Android P. Download citra sistem perangkat atau citra sistem emulator, instal aplikasi Anda saat ini, dan uji -- aplikasi harus berjalan dan terlihat bagus, dan menangani perubahan perilaku dengan benar. Setelah melakukan update yang diperlukan, kami menyarankan untuk memublikasikan aplikasi di Google Play tanpa mengubah target platform aplikasi.

Ingatlah, Anda tidak memerlukan perangkat Pixel yang didukung untuk diuji atau dikembangkan pada Android P. Untuk sebagian besar kasus penggunaan, kami sangat menyarankan untuk memasang Android Virtual Device pada Android Emulator sebagai lingkungan uji. Bila Anda belum mencoba emulator baru-baru ini, Anda akan merasakan bahwa emulator sangat cepat, booting kurang dari 6 detik, mudah digunakan, dan Anda bahkan bisa merancang model layar generasi berikutnya -- seperti layar panjang dan layar dengan cutout kamera.

Berikutnya, ubah target aplikasi ke "P" dan jalankan dengan pengalaman Android P komplet. Setel targetSdkVersion aplikasi Anda ke 'P' dan compileSdkVersion ke android-P, build, lalu uji. Pastikan untuk membaca perubahan perilaku bagi aplikasi yang menargetkan P untuk menemukan area yang ingin Anda uji dan mungkin perlu disesuaikan.

Saat Anda siap, masuklah ke dalam Android P dan pelajari banyak fitur dan API baru yang bisa Anda manfaatkan dalam aplikasi Anda. Untuk memudahkan Anda menjelajahi API baru, lihat laporan perbedaan API, beserta referensi API Android P. Kunjungi situs P Developer Preview untuk detail tentang timeline pratinjau dan sumber daya dukungan. Lihat juga video ini yang menyoroti fitur-fitur baru di Android P untuk developer.

Untuk mulai membangun dengan Android P, download fitur dan SDK P Developer Preview ke dalam Android Studio 3.1 atau gunakan versi canary Android Studio 3.2 terbaru. Kami juga merilis versi alfa support library 28.0.0 agar bisa Anda coba.

Apa berikutnya?


Android P Developer Preview mencakup SDK terupdate dengan gambar sistem untuk pengujian pada Android Emulator resmi dan perangkat Pixel, Pixel XL Pixel 2, dan Pixel 2 XL.

Kami berencana mengupdate citra sistem pratinjau dan SDK secara berkala di seluruh pratinjau. Rilis awal ini untuk kalangan developer saja dan tidak ditujukan untuk penggunaan sehari-hari atau pengguna umumnya, sehingga kami hanya menyediakannya melalui download manual dan flash. Download dan petunjuk tersedia di sini.

Dengan semakin dekatnya produk final, kami akan mengundang konsumen untuk mencobanya juga, saat itu juga kami akan membuka pendaftaran melalui Android Beta. Tunggulah detailnya, tetapi untuk saat ini perlu dicatat bahwa Android Beta saat ini belum tersedia untuk Android P.

Seperti biasa, masukan Anda sangatlah penting, karena itu beri tahu kami pendapat Anda — semakin cepat kami mendengarnya, semakin besar kemungkinan kami akan mengintegrasikan masukan Anda. Bila menemui masalah, silakan laporkan di sini. Kami memiliki daftar hotlist yang terpisah untuk melaporkan masalah platform, masalah kompatibilitas aplikasi, dan masalah SDK pihak ketiga.