Android 11 AMA: Tidak ada tangkapan layar yang bergulir, peluncuran aplikasi lebih cepat, dan banyak lagi

Tim teknik Android Google mengadakan AMA di Reddit untuk menjawab pertanyaan tentang Android 11. Inilah yang kami pelajari tentang versi OS Android berikutnya.

Kemarin, Google merilis Android 11 Beta 2, menghadirkan SDK, NDK, permukaan yang menghadap aplikasi, perilaku platform, dan pembatasan antarmuka non-SDK yang telah diselesaikan untuk pengembang. Hari ini, Google menjawab pertanyaan terkait Android 11 di komunitas /r/AndroidDev Reddit setelah menjawab pertanyaan minggu lalu. Berikut ringkasan semua yang kami pelajari dari AMA (Ask Me Anything) Google.

Salah satu fitur Android 11 yang paling dinanti tidak akan tersedia di OS keluar dari beta pada 8 September: Menggulir tangkapan layar. Mulanya direncanakan untuk diluncurkan di Android 11, Google kini telah mengonfirmasi bahwa fitur tersebut "tidak cocok untuk R." Pratinjau Pengembang Android 11 1 dan semua rilis DP dan Beta berikutnya memiliki tombol pengganti untuk mengambil tangkapan layar bergulir muncul secara manual dengan perintah pengembang tersembunyi

, namun mengetuk tombol tersebut hanya akan menampilkan pesan singkat yang menyatakan bahwa fitur tersebut "tidak diterapkan".

Tombol tangkapan layar gulir Android 11 yang tidak diterapkan.

Kami berharap fitur ini akan masuk ke versi beta atau bahkan hanya rilis stabil, namun sepertinya hal itu tidak akan terjadi.

Komentar dari diskusi. Kami berada di tim teknik Android. Tanyakan kepada kami Apa pun tentang pembaruan Android 11 pada Platform Android! (mulai 9 Juli).

Dapat dimengerti bahwa berita ini akan mengecewakan sebagian pengguna. Lagi pula, banyak OEM yang sudah memiliki fitur ini di perangkat lunak mereka selama bertahun-tahun, jadi mengapa Google butuh waktu lama untuk menambahkannya ke ponsel Pixel? Seperti yang dijelaskan Dan Sandler dari tim System UI Google, masalahnya adalah Google ingin melakukannya dengan benar. Beberapa implementasi tangkapan layar bergulir di luar sana hanya meniru gulir dan kemudian menyatukan beberapa tangkapan layar saat layar bergerak. Jika Anda pernah berurusan dengan otomatisasi UI di Android, Anda akan tahu bahwa ini tidak selalu berhasil karena, seperti yang disebutkan oleh Mr. Sandler, aplikasi dapat menggunakan "RecyclerView standar rawa atau telah mengimplementasikan mesin pengguliran yang dipercepat OpenGL sendiri." Karena Google berencana untuk melakukannya menerapkan fitur ini tidak hanya untuk smartphone Pixel tetapi untuk seluruh ekosistem Android sebagai bagian dari AOSP, mereka perlu memastikannya itu akan berhasil semua aplikasi dan bukan hanya "satu atau dua aplikasi pilihan pada perangkat tertentu".

Karena tim harus "memfokuskan sumber daya [mereka] yang terbatas", terutama karena tantangan yang ada oleh COVID-19, tim memutuskan untuk meletakkan tangkapan layar bergulir di backburner untuk rilis Android mendatang.

Persyaratan CDD baru untuk memberi tahu pengguna tentang batasan latar belakang

Bukan rahasia lagi bahwa banyak OEM Android, terutama yang berasal dari China, menerapkan pembatasan agresif terhadap aplikasi yang berjalan di latar belakang. Beberapa pengembang sangat frustrasi karena aplikasi mereka terhenti di latar belakang sehingga mereka bersatu untuk membuat situs web bernama "Jangan Bunuh Aplikasi Saya" untuk menentukan peringkat OEM berdasarkan seberapa buruk mereka menangani proses aplikasi latar belakang. Pengembang yang sama bahkan baru-baru ini dijadikan patokan sehingga pengguna dapat menguji seberapa agresif perangkat mereka mematikan aplikasi di latar belakang. Alasan mengapa banyak OEM suka mematikan proses aplikasi di latar belakang adalah hal yang rumit, tetapi menurut saya ini paling baik dijelaskan dalam komentar oleh Redditor /u/mungkin dipertanyakan. Komentar tersebut menguraikan status rumit pengembangan aplikasi Android di Tiongkok, bagaimana perusahaan teknologi Tiongkok terlibat dalam hal-hal yang semakin rumit, dan bagaimana kurangnya layanan Google berkontribusi terhadap hal ini kekacauan.

Terlepas dari itu, banyak pengembang aplikasi merasa frustrasi dengan perubahan perilaku platform Android ini, yang mengakibatkan pengembang memberikan komentar bertanya kepada Google apa yang mereka lakukan ke bagian atas Reddit AMA. Inilah tanggapan Google:

Komentar dari diskusi. Kami berada di tim teknik Android. Tanyakan kepada kami Apa pun tentang pembaruan Android 11 pada Platform Android! (mulai 9 Juli).

Ada beberapa hal yang dapat diambil dari tanggapan ini. Pertama, Google ingin OEM lebih transparan kepada pengguna tentang pembatasan aplikasi latar belakang yang mereka terapkan. Saya memeriksa Dokumen Definisi Kompatibilitas (CDD) Android 11 (yang belum dirilis) dan menemukan usulan tambahan berikut untuk Bagian 3.5 - Kompatibilitas Perilaku API:

Jika implementasi perangkat menerapkan mekanisme kepemilikan untuk membatasi aplikasi dan mekanisme tersebut lebih ketat dibandingkan bucket siaga “Langka” di AOSP, maka implementasi tersebut:

[C-1-5] HARUS memberi tahu pengguna jika pembatasan aplikasi diterapkan pada suatu aplikasi secara otomatis. (BARU) Informasi tersebut TIDAK HARUS diberikan lebih awal dari 24 jam sebelum pembatasan tersebut diterapkan.

(Catatan) Penghentian Paksa dianggap lebih ketat daripada "Langka" dan HARUS mematuhi semua persyaratan berdasarkan 3.5.1, termasuk 3.5.1/C-1-5 yang baru

Pada dasarnya, Google tidak banyak menghentikan OEM untuk menerapkan fitur pembatasan aplikasi mereka sendiri. Mereka hanya mengharuskan OEM memberi tahu pengguna jika pembatasan aplikasi mereka diterapkan secara otomatis. OEM dapat menampilkan dialog bahwa mereka akan menghentikan aplikasi latar belakang yang menghabiskan banyak baterai agar tidak berjalan di dalamnya latar belakang, dan pengguna dapat menyetujui tanpa menyadari aplikasi yang sebenarnya ingin mereka jalankan di latar belakang juga terpengaruh! Google memberikan tanggung jawab kepada pengembang untuk menangani kasus-kasus ketika aplikasi mereka tiba-tiba mati di latar belakang. Memang benar, komentar Reddit terus menyoroti hal baru "alasan keluarnya proses aplikasi" API yang dapat memberi tahu pengembang apakah aplikasi mereka dihentikan oleh pengguna, OS, atau hanya crash.

Di sisi lain, Google akhirnya mengatasi praktik tidak adil yang dilakukan OEM yang mengizinkan aplikasi dengan hak istimewa tertentu untuk melewati batasan aplikasi latar belakang mereka. Posting Medium ini oleh pengembang Timotius Asiimwe menjelaskan secara detail tentang aplikasi seperti WhatsApp, Facebook, dan aplikasi lain secara otomatis dikecualikan dari pembatasan latar belakang yang ketat pada beberapa perangkat lunak OEM. Google mengatakan mereka "mewajibkan produsen perangkat untuk tidak membuat daftar izin untuk aplikasi teratas." Kami tidak tahu bagaimana hal ini akan ditegakkan, tapi ada baiknya untuk mengetahui bahwa OEM pada akhirnya akan dipaksa untuk memperlakukan pengembang pihak ketiga dengan setara—tidak peduli seberapa besar atau kecil aplikasi mereka adalah.

Terakhir, Google juga menyebutkan bagaimana Android 11 telah “menambahkan langkah-langkah ekstra untuk mencegah perilaku kasar oleh aplikasi yang berperilaku buruk,” sehingga kurang menarik bagi OEM untuk mematikan proses latar belakang secara agresif. Namun perusahaan tidak merinci apa saja yang dimaksud dengan “tindakan tambahan” ini.

Peningkatan Pencadangan Perangkat-ke-Perangkat

Bulan lalu, kami melihat perubahan pada dokumentasi Android 11 mengisyaratkan dukungan untuk cadangan data lokal yang lebih baik. Di Android 11, sistem akan mengabaikan atribut AllowBackup Manifest untuk aplikasi apa pun yang menargetkan API level 30 saat pengguna memulai migrasi file aplikasi "perangkat ke perangkat". Googler Eliot Stock mengatakan bahwa fitur ini dimaksudkan untuk "mempermudah produsen ponsel untuk membuat alat migrasi perangkat ke perangkat" seperti "produk Smart Switch unggulan Samsung" untuk membantu "memastikan aplikasi mentransfer antar perangkat dengan lebih andal dari sudut pandang pengguna." Sayangnya, hal ini tidak berlaku untuk pencadangan berbasis cloud, karena Google ingin "memberi pengembang perangkat lunak kendali atas apa yang mereka lakukan terjadi dengan data aplikasi mereka." Dengan demikian, Android 11 akan tetap mematuhi atributallowBackup untuk pencadangan dan pemulihan berbasis cloud apa pun, seperti melalui Google Drive bawaan Layanan Google Play cadangan. Terakhir, Google mengakui bahwa batas maksimum pencadangan 25MB per aplikasi mungkin tidak cukup untuk beberapa pengembang, jadi mereka mencari cara untuk mengatasinya. Namun, pencadangan lokal ke PC tidak dipertimbangkan, dan Google mengulangi rencananya hapus cadangan adb secara bertahap dalam rilis Android mendatang.

Komentar dari diskusi. Kami berada di tim teknik Android. Tanyakan kepada kami Apa pun tentang pembaruan Android 11 pada Platform Android! (mulai 9 Juli).

Pengembang didorong untuk menerapkan metode migrasi data tanpa hambatan. Itu perpustakaan Block Store baru, yang merupakan bagian dari Perpustakaan Layanan Identitas Google, dirancang untuk mempermudah login ke aplikasi yang dipulihkan dari cloud pada perangkat baru, namun terserah pada pengembang untuk memilih apakah mereka ingin menerapkannya atau tidak perpustakaan.

Kecepatan Startup Aplikasi Lebih Cepat dengan Proses I/O Read Ahead (IORap)

Google selalu bereksperimen dengan cara untuk meningkatkan kinerja di Android. Salah satu fitur yang kurang diketahui yang mereka tambahkan di Android 10 disebut Unspecialized App Process Pool (USAP). Fitur ini menghilangkan forking Zygote selama proses startup aplikasi, menghemat sekitar ~5ms kecepatan startup aplikasi rata-rata pada perangkat Pixel 2. Fitur tersebut saat ini dinonaktifkan secara default di AOSP, dan Google menjelaskan bahwa penggunaan memori tambahannya masih memerlukan pengujian. Yang lebih menarik adalah fitur baru yang hadir di Android 11 yang disebut I/O Read Ahead Process (IORap). Menurut Google, fitur ini akan menghasilkan "startup dingin lebih dari 5% lebih cepat dengan kasus pahlawan mencapai 20% lebih cepat." Fitur ini "akan mengambil artefak aplikasi (seperti kode dan sumber daya) selama proses startup" untuk meningkatkan peluncuran aplikasi kecepatan.

Google juga telah "melakukan perbaikan pada profil yang digunakan untuk mengoptimalkan jalur kelas boot dan image sistem" yang akan meningkatkan kinerja aplikasi dan mengurangi biaya memori dan penyimpanan yang terkait dengan sistem artefak. Perubahan ini sebagian besar akan menguntungkan perangkat dengan jumlah RAM yang lebih tinggi, meskipun Google belum mengatakan batas mana yang akan kita lihat manfaatnya paling banyak.

Perubahan Scoped Storage Android 11 - Mengapa akses ke / Unduhan dibatasi?

Aplikasi yang menargetkan Android 11 dan menggunakan maksud ACTION_OPEN_DOCUMENT_TREE untuk meminta akses ke direktori tertentu di eksternal penyimpanan tidak lagi dapat meminta akses pengguna ke direktori root penyimpanan eksternal (/data/media/{user}), Unduh direktori (/data/media{user}/Download), atau direktori data khusus aplikasi apa pun di penyimpanan eksternal (/Android/data atau /Android/obb). Mengapa akses ke direktori Unduhan dibatasi? Menurut Google Roxanna Aliabadi, itu karena folder unduhan "yang paling berisiko berisi informasi pribadi". Misalnya, pengguna yang mengunduh pajaknya pengembalian atau laporan bank tidak perlu khawatir tentang kemungkinan aplikasi menyalahgunakan akses baca berkelanjutan mereka ke direktori. Google mengatakan bahwa pemilih dokumen akan memiliki "teks yang diperbarui...untuk menunjukkan bahwa Android telah membatasi folder tertentu untuk dipilih." Hal ini diharapkan akan mengurangi kebingungan tentang mengapa mereka tidak dapat memberikan akses aplikasi ke direktori tertentu lagi.

Untuk informasi lebih lanjut tentang perubahan kebijakan Scoped Storage dan Play yang akan datang, lihat artikel ini.

Topik Lain-Lain

  • Pendirian Google tentang rooting/modding
    • Jeff Bailey dari tim AOSP Google menegaskan kembali pendirian perusahaan dalam mendukung pilihan. Google akan "terus memastikan bahwa modding/rooting perangkat Pixel dapat dilakukan," namun juga akan "mendukung pilihan OEM untuk tidak mengizinkan perangkat mereka untuk di-root." Selain itu, Google memberikan pilihan kepada pengembang perangkat lunak untuk "tidak mengizinkan perangkat lunak mereka berjalan di perangkat yang di-rooting," mengacu pada perubahan terbaru dalam deteksi gangguan perangkat lunak pada SafetyNet Attestation API.
  • Apa yang terjadi dengan "buka dan setel ke default"?
    • Android 10 dibuat Agak menjengkelkan untuk menetapkan aplikasi sebagai pengendali default untuk tautan tertentu, yang menurut Google dilakukan untuk melindungi pengguna dari "aplikasi eksploitatif". Google mundur mengenai perubahan ini setelah memikirkan ulang, membuat "sejumlah perubahan di balik layar" untuk melindungi pengguna.
  • Menggunakan Vulkan Graphics API untuk merender UI?
    • Google akhirnya berencana untuk menggunakan Vulkan Graphics API untuk merender UI, yang akan menghasilkan beberapa peningkatan kinerja. Ini masih dievaluasi, tetapi perusahaan tidak memiliki informasi spesifik untuk dibagikan.
  • CallScreeningService tidak ada di banyak perangkat
    • Aplikasi Android dapat mengimplementasikan API Layanan Penyaringan Panggilan untuk mencegat panggilan masuk dan keluar baru, memungkinkan mereka mengidentifikasi penelepon dan menerima atau menolak panggilan tersebut. Meskipun ini adalah API yang didokumentasikan secara resmi, tampaknya banyak OEM yang tidak mengimplementasikannya dengan benar, menurut pengembang /u/_zeromod_. Google menegaskan bahwa API ini divalidasi oleh Compatibility Test Suite (CTS), rangkaian pengujian otomatis yang harus dilewati semua perangkat agar dianggap kompatibel dengan Android. Apa pun alasannya, API ini mengembalikan null saat dipanggil pada perangkat dari OEM seperti Huawei, Vivo, Xiaomi, atau Samsung, jadi kemungkinan besar OEM tersebut memiliki bug pada perangkat lunaknya.
  • Tidak ada rencana untuk kerangka plugin audio
    • Seorang pengembang bertanya kepada Google apakah mereka berencana menerapkan kerangka plugin audio seperti Unit Audio Apple, namun jawabannya adalah bahwa hal itu tidak mungkin terjadi dalam waktu dekat.

Anda dapat membaca semua jawaban dari tim teknik Android Di Sini. Tim berbicara sedikit tentang Java, Kotlin, sistem build Android, CameraX API, dan topik lainnya di beberapa komentar. Ada juga beberapa komentar tentang Wear OS, Android TV, dan Android Auto, tetapi Google kebanyakan mengulanginya pekerjaan mereka saat ini pada platform ini dan memberi tahu pengembang untuk terus mengikuti informasi lebih lanjut selama masa tersebut "Android Melampaui Ponsel" minggu mulai 10 Agustus.