Mulai membuat aplikasi untuk ChromeOS

Perangkat ChromeOS, seperti Chromebook, mendukung Google Play Store dan aplikasi Android. Artikel ini mengasumsikan bahwa Anda telah memiliki aplikasi Android yang didesain untuk ponsel atau tablet yang ingin dioptimalkan untuk Chromebook. Untuk mempelajari dasar-dasar cara membuat aplikasi Android, lihat Mem-build aplikasi Android pertama Anda.

Memperbarui file manifes aplikasi

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

Mulai ChromeOS versi M53, semua aplikasi Android yang tidak secara eksplisit memerlukan fitur android.hardware.touchscreen juga berfungsi pada perangkat ChromeOS yang mendukung fitur android.hardware.faketouch. Namun, untuk memastikan aplikasi Anda berfungsi di semua Chromebook, update file manifes agar 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 ditemukan 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 menyediakan data lokasi berdasarkan koneksi Wi-Fi. Lihat ringkasan sensor untuk mempelajari sensor yang didukung platform Android lebih lanjut.

Jika Anda ingin aplikasi berjalan di Chromebook, terlepas dari ketersediaan sensor, update file manifes 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 pada platform Android di seluruh versi yang berbeda.

Memeriksa persyaratan jaringan

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

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

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

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 penampung Android memiliki alamat IPv6 publik khusus.

Menggunakan cloud dan penyimpanan lokal secara efektif

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

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

Chromebook juga dapat dibagikan kepada banyak orang, misalnya di sekolah. Karena penyimpanan lokal tidak terbatas, seluruh akun—beserta penyimpanannya—dapat dihapus dari perangkat kapan saja. Untuk setelan pendidikan, sebaiknya pertimbangkan skenario ini.

Mengupdate library NDK

Jika aplikasi Anda menggunakan library Android NDK dan versi SDK targetnya adalah 23 atau lebih tinggi, pastikan relokasi teks dihapus dari library NDK versi ARM maupun x86, karena tidak kompatibel di Android 6.0 (API level 23) dan yang lebih baru. Dengan membiarkan teks relokasi di library NDK, Anda juga dapat menyebabkan error kompatibilitas dengan Chromebook, terutama saat berjalan pada perangkat yang menggunakan arsitektur x86.

Mengembangkan kasus pengujian baru untuk aplikasi

Untuk mengembangkan kasus pengujian aplikasi, pertama-tama pastikan Anda menentukan flag manifes yang tepat. Secara khusus, sebaiknya tetapkan screenOrientation ke unspecified. Jika Anda ingin menentukan orientasi lanskap, pertimbangkan untuk menggunakan 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 pada ponsel, tentukan atribut defaultHeight, defaultWidth, atau minHeight tata letak sebagai gantinya.

Jika Anda ingin menggunakan penanganan perangkat input tertentu untuk kategori perangkat tertentu, tentukan android.hardware.type.pc untuk menonaktifkan mode kompatibilitas input.

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

Sebaiknya periksa daftar kasus pengujian untuk aplikasi Android di ChromeOS, yang dapat Anda gunakan dalam rencana pengujian. Kasus pengujian ini mencakup skenario umum yang harus disiapkan aplikasi Android jika aplikasi diharapkan dapat berjalan 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 jika sesuai.

Untuk menguji persistensi status, minimalkan aplikasi selama beberapa waktu, mulai proses intensif resource lainnya, lalu pulihkan aplikasi Anda untuk mengonfirmasi bahwa aplikasi kembali ke status ketika Anda meninggalkannya.

Uji pengubahan ukuran jendela dengan menekan tombol layar penuh (F4), memaksimalkan, dan memulihkan. Untuk menguji pengubahan ukuran bebas, aktifkan terlebih dahulu di opsi developer, lalu pastikan aplikasi Anda dapat berubah ukurannya dengan lancar tanpa error.

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

Pastikan panel atas tidak mengganggu 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 fitur ini berperilaku benar saat melakukan perubahan jendela dan perangkat yang diuraikan sebelumnya.