Mulai membuat aplikasi untuk Chrome OS

Perangkat Chrome OS, seperti Chromebook, sekarang mendukung Google Play Store dan aplikasi Android. Artikel 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 Membuat aplikasi pertama Anda.

Memperbarui file manifes aplikasi

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

Mulai Chrome OS versi M53, semua aplikasi Android yang tidak secara eksplisit memerlukan fitur android.hardware.touchscreen juga akan berfungsi pada perangkat Chrome OS yang mendukung fitur android.hardware.faketouch. Namun, untuk memastikan aplikasi Anda berfungsi di semua Chromebook, buka file manifes dan sesuaikan setelan sehingga fitur android.hardware.touchscreen tidak diperlukan, seperti yang ditampilkan dalam contoh berikut. Menghapus persyaratan untuk input sentuh berarti Anda juga harus meninjau dukungan aplikasi Anda untuk interaksi mouse dan keyboard.

<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. Meskipun perangkat genggam Android sering kali memiliki GPS dan akselerometer, tidak ada jaminan bahwa sensor ini akan tersedia pada setiap Chromebook. Namun, ada beberapa kasus di mana fungsi sensor disediakan dengan cara lain. Misalnya, Chromebook mungkin tidak memiliki sensor GPS, tetapi GPS masih menyediakan data lokasi berdasarkan koneksi Wi-Fi. Lihat dokumen Ringkasan sensor untuk ringkasan semua sensor yang didukung platform Android. Jika ingin aplikasi Anda berjalan di Chromebook, terlepas dar ketersediaan sensor, Anda harus memperbarui 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 tersedia untuk penginstalan di Chromebook. Untuk daftar lengkap fitur software yang saat ini tidak didukung di Chromebook, lihat fitur software yang tidak kompatibel.

Mengupdate SDK target

Dengan mengupdate atribut targetSdkVersion ke level API terbaru yang tersedia, aplikasi Anda dapat memanfaatkan semua peningkatan di platform Android. Misalnya, Android 7.0 (API level 24) memberikan penyempurnaan pada dukungan multi-aplikasi. Hal ini memungkinkan Anda untuk mengubah ukuran aktivitas dengan mengubah ukuran dengan format bebas, membuat aktivitas terasa lebih alami. Anda juga dapat mengakses API untuk operasi tarik lalu lepas di seluruh aplikasi dan kursor mouse kustom.

Memeriksa persyaratan jaringan

Chromebook menjalankan seluruh OS Android dalam container, mirip dengan Docker atau LXC. Hal ini berarti bahwa Android tidak akan memiliki akses langsung ke antarmuka LAN sistem. Sebagai gantinya, traffic IPv4 akan meneruskan lapisan internal terjemahan 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 semestinya; tetapi secara umum, koneksi masuk akan diblokir. Paket multicast atau broadcast dari Android tidak akan diteruskan ke LAN melalui firewall.

Sebagai pengecualian khusus untuk batasan multicast, Chrome OS 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 akan menggunakan alamat IPv4 host Chrome OS. Secara internal, aplikasi Android akan melihat alamat IPv4 pribadi yang ditetapkan untuk antarmuka jaringan. Koneksi IPv6 yang berasal dari Android akan menggunakan alamat yang berbeda dari host Chrome OS, karena container Android akan memiliki alamat IPv6 publik khusus.

Menggunakan cloud dan penyimpanan lokal secara efektif

Salah satu fitur Chromebook yang paling andal adalah pengguna dapat melakukan migrasi dari satu perangkat ke perangkat lainnya dengan mudah. Artinya, jika seseorang berhenti menggunakan salah satu perangkat Chromebook dan mulai menggunakan perangkat lainnya, mereka cukup login, dan semua aplikasi mereka akan muncul.

Guna meningkatkan pengalaman ini lebih lanjut, Anda harus mem-backup data aplikasi Anda ke cloud untuk mengaktifkan sinkronisasi antar perangkat. Dengan demikian, aplikasi tidak akan bergantung pada koneksi internet untuk operasi normal. Aplikasi akan menyimpan pekerjaan pengguna secara lokal jika perangkat offline dan disinkronkan ke cloud setelah perangkat kembali online. Misalnya, Google Dokumen memungkinkan pengguna untuk mengedit dokumen mereka secara offline dan menyinkronkan perubahan ke cloud setelah perangkat mendapatkan konektivitas.

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.

Mengupdate library NDK

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

Mengembangkan kasus pengujian baru untuk aplikasi

Pertama, pastikan tanda manifes ditentukan dengan tepat. Tanda ini mencakup orientasi yang diinginkan, di mana setelan screenOrientation unspecified adalah yang paling tepat. Jika Anda menentukan orientasi sebagai landscape, sebaiknya gunakan sensorLandscape untuk memastikan bahwa pengalaman pada tablet telah optimal. Jika Anda memiliki permintaan orientasi atau ukuran khusus, sebaiknya tambahkan tag meta baru sebagai petunjuk orientasi atau ukuran—yang hanya memengaruhi lingkungan desktop. Jika Anda juga ingin mengubahnya di ponsel, sebagai gantinya Anda harus menetapkan tata letak defaultHeight, defaultWidth, atau minHeight.

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

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

Google merekomendasikan untuk memeriksa Kasus pengujian untuk aplikasi Android di Chrome OS, yang dapat digunakan dalam rencana pengujian Anda sendiri. Kasus pengujian mencakup beragam skenario umum yang harus siap ditangani oleh aplikasi Android jika aplikasi akan dijalankan di perangkat Chrome OS.

Perubahan multi-aplikasi dan orientasi

Lingkungan multi-aplikasi Chrome OS dapat membuat persistensi status dan masalah recall menjadi lebih jelas. Sebaiknya gunakan ViewModel untuk menyimpan dan memulihkan status saat dibutuhkan.

Untuk menguji persistensi status, Anda harus meminimalkan aplikasi Anda selama beberapa waktu, memulai proses intensif resource lain, kemudian memulihkan aplikasi Anda untuk memvalidasi bahwa aplikasi kembali ke status terakhir saat aplikasi ditinggalkan.

Uji pengubahan ukuran jendela dengan menekan tombol layar penuh (F4), memaksimalkan, dan memulihkannya. Uji pengubahan ukuran bebas dengan mengaktifkan jendela melalui opsi developer dan memeriksa bahwa aplikasi dapat diubah ukurannya dengan lancar tanpa menyebabkan error.

Jika perangkat Chrome OS Anda mendukungnya, ubah dari laptop ke mode tablet untuk melihat apakah semuanya bekerja sesuai harapan. Putar perangkat satu kali dalam mode tablet untuk menguji perubahan orientasi. Ubah kembali ke mode laptop. Ulangi langkah ini beberapa kali.

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

Jika Anda menggunakan kamera atau fitur hardware lainnya—seperti pena—pastikan aplikasi berperilaku baik saat melakukan perubahan pada jendela dan perangkat seperti yang dijelaskan di atas.