Mem-build untuk ChromeOS

Perangkat ChromeOS, seperti Chromebook, mendukung Google Play Store dan aplikasi Android. Dokumen ini mengasumsikan bahwa Anda memiliki aplikasi Android yang didesain untuk ponsel atau tablet yang ingin Anda optimalkan untuk Chromebook. Untuk mempelajari dasar-dasar pembuatan aplikasi Android, lihat Membangun aplikasi Android pertama Anda.

Memperbarui file manifes aplikasi

Untuk memulai, update file manifes Anda agar memperhitungkan beberapa perbedaan utama hardware dan software antara Chromebook dengan perangkat lain yang menjalankan Android.

Mulai ChromeOS versi M53, semua aplikasi Android yang tidak secara eksplisit memerlukan fitur android.hardware.touchscreen juga berfungsi di perangkat ChromeOS yang mendukung fitur android.hardware.faketouch. Namun, untuk membantu aplikasi Anda berfungsi di semua Chromebook, perbarui file manifes Anda sehingga fitur android.hardware.touchscreen tidak diperlukan, seperti yang ditunjukkan dalam contoh berikut.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          ... >
    <!-- Some Chromebooks don't support touch. Although not essential,
         it's a good idea to explicitly include this declaration. -->
    <uses-feature android:name="android.hardware.touchscreen"
                  android:required="false" />
</manifest>

Perangkat hardware yang berbeda dilengkapi dengan kumpulan sensor yang berbeda, dan Chromebook mungkin tidak memiliki semua sensor yang ada di perangkat genggam Android, seperti GPS dan akselerometer. Namun, dalam beberapa kasus, fungsi sensor disediakan dengan cara lain. Misalnya, Chromebook mungkin tidak memiliki sensor GPS, tetapi Chromebook menyediakan data lokasi berdasarkan koneksi Wi-Fi. Lihat ringkasan sensor untuk mempelajari lebih lanjut sensor yang didukung platform Android.

Jika ingin aplikasi Anda berjalan di Chromebook, terlepas dari ketersediaan sensor, perbarui file manifes Anda sehingga tidak ada sensor yang diperlukan.

Beberapa fitur software tidak didukung di Chromebook. Misalnya, aplikasi yang menyediakan IME kustom, widget aplikasi, wallpaper animasi, dan peluncur aplikasi tidak didukung dan tidak dapat diinstal di Chromebook. Untuk daftar lengkap fitur software yang tidak didukung di Chromebook, lihat fitur software yang tidak kompatibel.

Mengupdate SDK target

Update atribut targetSdkVersion aplikasi Anda ke level API terbaru yang tersedia untuk memanfaatkan semua peningkatan di platform Android. Tinjau peningkatan di platform Android di berbagai versi.

Memeriksa persyaratan jaringan

Chromebook menjalankan seluruh OS Android dalam container, mirip dengan Docker atau LXC. Artinya, Android tidak memiliki akses langsung ke antarmuka LAN sistem. Sebagai gantinya, traffic IPv4 akan meneruskan lapisan internal penafsiran alamat jaringan (NAT), dan traffic IPv6 unicast akan dialihkan melalui hop tambahan.

Koneksi unicast keluar dari aplikasi Android ke internet sebagian besar akan berfungsi sebagaimana adanya. Secara umum, koneksi masuk akan diblokir. Paket multicast atau broadcast dari Android tidak diteruskan ke LAN melalui firewall.

Sebagai pengecualian untuk batasan multicast, ChromeOS menjalankan layanan yang meneruskan traffic mDNS antara Android dan antarmuka LAN, sehingga API penemuan layanan jaringan standar adalah cara yang direkomendasikan untuk menemukan perangkat lain pada segmen LAN. Setelah menemukan perangkat di LAN, aplikasi Android dapat menggunakan soket unicast TCP atau UDP standar untuk berkomunikasi dengan keduanya.

Koneksi IPv4 yang berasal dari Android menggunakan alamat IPv4 host ChromeOS. Secara internal, aplikasi Android melihat alamat IPv4 pribadi yang ditetapkan untuk antarmuka jaringan. Koneksi IPv6 yang berasal dari Android menggunakan alamat yang berbeda dari host ChromeOS, karena container Android memiliki alamat IPv6 publik khusus.

Menggunakan cloud dan penyimpanan lokal secara efektif

Chromebook memungkinkan pengguna melakukan migrasi dari satu perangkat ke perangkat lainnya dengan mudah. Jika pengguna berhenti menggunakan satu Chromebook dan mulai menggunakan Chromebook lain, mereka hanya perlu login, dan semua aplikasi mereka akan muncul.

Karena fitur ini, cadangkan data aplikasi Anda ke cloud untuk mengaktifkan sinkronisasi di berbagai perangkat. Namun, jangan bergantung pada koneksi internet agar aplikasi Anda dapat beroperasi secara normal. Sebagai gantinya, simpan pekerjaan pengguna secara lokal saat perangkat offline dan sinkronkan ke cloud setelah perangkat kembali online.

Chromebook juga bisa dibagikan ke sekelompok besar orang, misalnya di sekolah. Karena penyimpanan lokal tidak terbatas, seluruh akun—beserta penyimpanannya—dapat dihapus dari perangkat kapan saja. Untuk setelan edukasi, sebaiknya selalu ingat skenario ini.

Mengembangkan kasus pengujian baru untuk aplikasi

Untuk mengembangkan kasus pengujian aplikasi, pastikan terlebih dahulu Anda menentukan flag manifes yang tepat. Secara khusus, pertimbangkan untuk menyetel screenOrientation ke unspecified. Jika Anda ingin menentukan orientasi lanskap, sebaiknya gunakan sensorLandscape untuk memastikan bahwa pengalaman pada tablet telah optimal.

Jika Anda memiliki kebutuhan ukuran atau orientasi khusus untuk lingkungan desktop, pertimbangkan untuk menambahkan tag meta sebagai petunjuk ukuran atau orientasi. Untuk menyertakan ukuran dan orientasi di ponsel, tetapkan atribut tata letak defaultHeight, defaultWidth, atau minHeight.

Jika berminat untuk menggunakan penanganan perangkat input tertentu untuk kategori perangkat tertentu, tetapkan android.hardware.type.pc untuk menonaktifkan mode kompatibilitas input.

Jika Anda menggunakan semua jenis jaringan, pastikan aplikasi dapat terhubung kembali ke jaringan setelah masalah koneksi teratasi atau perangkat kembali aktif dari mode tidur.

Sebaiknya periksa daftar kasus pengujian untuk aplikasi Android di Chrome OS, yang dapat Anda gunakan dalam rencana pengujian Anda. Kasus pengujian ini mencakup skenario umum yang harus siap ditangani oleh aplikasi Android jika aplikasi tersebut akan dijalankan di perangkat ChromeOS.

Perubahan multi-aplikasi dan orientasi

Lingkungan multi-aplikasi ChromeOS dapat membuat persistensi status dan masalah recall menjadi lebih jelas. Gunakan ViewModel untuk menyimpan dan memulihkan status saat diperlukan.

Untuk menguji persistensi status, minimalkan aplikasi Anda selama beberapa waktu, mulai proses intensif resource lain, dan pulihkan aplikasi Anda untuk mengonfirmasi bahwa aplikasi kembali ke status terakhir saat aplikasi ditinggalkan.

Uji pengubahan ukuran jendela dengan menekan tombol layar penuh (F4), memaksimalkan, dan memulihkannya. Untuk menguji pengubahan ukuran bebas, aktifkan terlebih dahulu di opsi developer, lalu periksa bahwa aplikasi dapat diubah ukurannya dengan lancar tanpa menyebabkan error.

Jika perangkat ChromeOS Anda mendukungnya, ubah dari mode laptop ke mode tablet untuk memeriksa apakah semuanya berfungsi seperti yang diharapkan. Putar perangkat satu kali dalam mode tablet untuk menguji perubahan orientasi, lalu ubah kembali ke mode laptop. Ulangi langkah ini beberapa kali.

Pastikan bahwa panel atas tidak merusak aplikasi Anda dengan mengimbangi elemen UI atau input sentuh berbasis lokasi. Untuk perangkat ChromeOS, pastikan aplikasi Anda tidak menempatkan informasi penting di area status bar.

Jika Anda menggunakan kamera atau fitur hardware lainnya, seperti pena, pastikan aplikasi berperilaku sebagaimana mestinya saat melakukan perubahan pada jendela dan perangkat seperti yang dijelaskan sebelumnya.