Kami di ChromeOS berkomitmen untuk meningkatkan kualitas alat dan framework developer yang memungkinkan developer aplikasi Android mengoptimalkan aplikasi mereka untuk Chromebook dengan lancar. Dengan demikian, kita perlu terus mencari cara untuk menghadirkan serangkaian alat yang efektif bagi developer untuk meningkatkan pengalaman membangun aplikasi untuk layar besar dan ChromeOS.
ChromeOS telah berkembang selama bertahun-tahun seiring munculnya tantangan baru. Salah satu tantangan tersebut adalah mengidentifikasi masalah kritis kepada engineer secara dini dan sering. Aturan lint adalah inti dari kualitas, karena memberikan sinyal peringatan kepada developer untuk masalah yang akan muncul jika tidak diperbaiki. Aturan lint yang diperbarui memberikan visibilitas yang lebih baik kepada developer tentang cara aplikasi mereka berjalan di ChromeOS, yang menunjukkan masalah, baik software maupun hardware, yang pasti akan menyebabkan masalah pada aplikasi Android yang dijalankan di perangkat ChromeOS mana pun.
Untuk mendapatkan konteks latar belakang selengkapnya tentang keberadaan aturan lint ini dan kepentingannya, baca postingan blog kami.
Di mana aturan lint ini?
Kami telah aktif mengembangkan fitur ini selama beberapa bulan terakhir. Dengan jadwal rilis Android Studio, beberapa aturan lint diperkenalkan dengan build Electric Eel Canary. Beberapa aturan lint ini juga kini tersedia di rilis Flamingo Canary. Kami akan terus berupaya menghadirkan fitur ini di versi stabil Android Studio dalam beberapa bulan mendatang.
Hal penting lainnya yang perlu diperhatikan adalah bahwa aturan ini akan diaktifkan secara default di Android Studio versi yang lebih baru. Tujuannya adalah untuk memberikan panduan yang lebih kuat tentang cara kami ingin membantu engineer membangun aplikasi untuk ChromeOS dan layar yang lebih besar ke depannya.
Aturan lint baru (diperbarui mulai Flamingo Canary 3)
Dukungan ABI x86/x86_64
Sebagian besar Chromebook berjalan di arsitektur Intel, sehingga menjadikannya platform arsitektur x86 yang dominan. Agar ChromeOS didukung dengan benar saat kode NDK disertakan sebagai bagian dari biner, memiliki x86 akan meningkatkan performa karena menghilangkan terjemahan yang diperlukan dari library ARM. Oleh karena itu, sebaiknya tim pengembangan Anda menambahkan dukungan arsitektur x86 atau lebih baik lagi x86_64 karena akan meningkatkan performa kode native di ChromeOS atau perangkat Intel.
Cara mengatasinya
Jika memungkinkan, tambahkan x86 dan x86_64 di dalam abiSplits dalam build.gradle Anda. Selain itu, pastikan Anda menambahkan kode ke folder yang sesuai untuk mendukung ABI ini. Untuk mendapatkan informasi selengkapnya, lihat dokumentasi tentang ABI Android dan diskusi tentang Dukungan ABI dari ADS.
Catatan: Pastikan library pihak ketiga yang disertakan dan digunakan juga memiliki biner x86 dan x86_64.
Batasan hardware ChromeOS
Sebagian besar perangkat ChromeOS dilengkapi dengan kumpulan sampel sensor hardware dan fitur lainnya yang lebih kecil dibandingkan dengan ponsel Android. Tujuan aturan ini adalah untuk menandai kepada developer bahwa jika Anda menggunakan tanda <uses-feature> dengan android:required=true, aplikasi Anda tidak akan tersedia di Google Play Store di ChromeOS. Rekomendasi yang kuat untuk memastikan aplikasi Anda dapat diakses di sebanyak mungkin perangkat adalah dengan memastikan bahwa fitur hardware tidak diperlukan secara default. Sebagai gantinya, Anda dapat menambahkan kode defensif untuk memeriksa hardware tertentu saat runtime. Contohnya adalah
<uses-feature android:name="android.hardware.camera" android:required="true">
Cara mengatasinya
Pastikan fitur yang ada dalam aplikasi Anda benar-benar diperlukan, dan jika tidak, ubah parameter android:required menjadi false dan tambahkan pemrograman defensif saat panggilan API diperlukan. Untuk mendapatkan informasi selengkapnya, lihat dokumentasi tentang fitur yang dideklarasikan secara eksplisit.
Aktivitas yang ukurannya tidak dapat diubah
Secara default, Android Runtime untuk ChromeOS, yang menjalankan Android R atau yang lebih tinggi di Chromebook, memulai aplikasi Android dalam versi aplikasi ponsel atau tablet, berdasarkan status UI default. Namun, ada opsi ketiga yang memberikan pengalaman lebih baik bagi pengguna ChromeOS, yaitu mode Dapat Diubah Ukurannya. Dengan mengaktifkan tanda ini sebagai bagian dari Aktivitas Anda, pengguna yang dapat menggunakan aplikasi Anda di lingkungan multi-aplikasi mana pun dapat memanfaatkan pengubahan ukuran aplikasi Anda ke ukuran yang sesuai. Perubahan ini akan memungkinkan pengguna menyesuaikan skala UI untuk memenuhi kebutuhan mereka. Setelah menambahkan perubahan ini ke Manifes, uji aplikasi Anda terhadap Emulator Desktop yang dirujuk di bawah.
Cara mengatasinya
Tambahkan atribut resizableActivity="true" ke Aktivitas Anda dalam file AndroidManifest.xml. Untuk mendapatkan informasi selengkapnya, lihat dokumentasi tentang batasan layar besar.
Perubahan konfigurasi
Satu peringatan utama untuk layar yang dapat diubah ukurannya adalah onConfigurationChanged() dipanggil setiap kali pengguna mengubah ukuran aplikasi. Jika aplikasi Anda melakukan penggambaran ulang penuh di dalam metode tersebut, akan ada implikasi performa yang terkait dengannya. Saat ini, kami sedang memeriksa untuk memastikan bahwa finish() tidak dipanggil dalam onConfigurationChanged, karena Anda harus menangani savedInstanceState dengan lebih terperinci, bukan menerapkan penggambaran ulang penuh. Kami akan terus menemukan kasus saat penurunan performa akan terjadi dan memperbarui aturan ini sebagaimana mestinya.
Cara mengatasinya
Pastikan finish() tidak dipanggil dalam API onConfigurationChanged() di Aktivitas dan Fragmen Anda. Untuk mendapatkan informasi selengkapnya, lihat dokumentasi tentang menangani perubahan konfigurasi.
Dukungan keyboard dan mouse
Dengan meningkatnya penggunaan Jetpack Compose, kami ingin memastikan bahwa pembuatan dengan library tersebut juga mencakup fungsi untuk dukungan mouse dan keyboard ke depannya. Seiring waktu, kami akan terus meningkatkan kegunaan interaksi mouse, keyboard, trackpad, dan periferal lainnya. Untuk mendapatkan pengalaman dasar, Anda harus mengupdate dependensi Gradle ke versi minimum yang diperlukan.
Cara mengatasinya
Update androidx.compose.foundation:foundation ke versi minimum 1.2. Untuk mendapatkan informasi selengkapnya, lihat catatan rilis versi compose.
Tips: 90% pengguna berinteraksi dengan aplikasi di Chromebook menggunakan keyboard dan mouse. (Sumber: Data Internal Google 2022*)
Masukan
Tim kami terus berupaya meningkatkan kualitas alat dan dokumentasi terkait pengoptimalan untuk layar besar ini. Langkah penting dalam proses ini adalah memberi kami masukan tentang akurasi dan kegunaan aturan lint yang di-deploy di Android Studio. Anda dapat melakukannya dengan memberikan masukan untuk aturan tersebut. Saat aturan lint muncul di Android Studio, klik “Berikan masukan tentang peringatan ini”. Anda akan diarahkan ke dialog yang terlihat mirip dengan yang ada di bawah. Makin akurat dan deskriptif informasi yang diberikan, makin cepat kami dapat melakukan iterasi untuk membuat perubahan yang sesuai.
