Cuttlefish adalah perangkat virtual Android yang dapat dikonfigurasi dan dapat dijalankan dari jarak jauh (menggunakan penawaran cloud pihak ketiga seperti Google Cloud Engine) dan secara lokal (di mesin Linux x86 dan ARM64).
Sasaran Cuttlefish
- Membebaskan developer platform dan developer aplikasi dari ketergantungan pada hardware fisik untuk mengembangkan dan memvalidasi perubahan kode.
- Mereplikasi perilaku berbasis framework dari perangkat sebenarnya dengan fokus pada fidelitas tinggi dengan mempertahankan keselarasan yang erat dengan framework inti.
- Mendukung semua API level setelah 28.
- Menyediakan tingkat fungsi yang konsisten di seluruh API level, yang selaras dengan perilaku pada hardware fisik.
Memungkinkan skala:
- Memberikan kemampuan untuk menjalankan beberapa perangkat secara paralel.
- Memungkinkan eksekusi uji serentak dengan fidelitas tinggi dengan biaya awal yang lebih rendah.
Menyediakan perangkat yang dapat dikonfigurasi dengan kemampuan untuk menyesuaikan hal-hal seperti faktor bentuk, RAM, dan CPU.
Membandingkan Cuttlefish dengan perangkat lain
Bagian ini membandingkan Cuttlefish dengan perangkat lain.
Cuttlefish dan Android Emulator
Ada banyak kesamaan dengan Android Emulator, tetapi Cuttlefish memiliki fidelitas penuh dengan Android Framework (baik ini AOSP murni maupun implementasi kustom di pohon Anda sendiri). Dalam aplikasi dunia nyata, hal ini berarti Anda harus mengharapkan Cuttlefish merespons interaksi Anda di tingkat OS seperti target ponsel fisik yang dibuat dengan sumber Android OS murni atau yang sama.
Android Emulator telah dibuat berdasarkan kasus penggunaan untuk mempermudah pengembangan aplikasi, dan berisi banyak hook fungsional untuk menarik kasus penggunaan developer aplikasi Android. Hal ini dapat menimbulkan tantangan jika Anda ingin membuat emulator dengan framework Android yang disesuaikan. Jika Anda memerlukan perangkat virtual yang mewakili kode platform atau framework kustom atau Android tip-of-tree, Cuttlefish adalah opsi virtual yang ideal. Cuttlefish adalah perangkat kanonis untuk mewakili status pengembangan AOSP saat ini.
Cuttlefish dan perangkat fisik
Perbedaan utama antara perangkat virtual Cuttlefish dan perangkat fisik Anda berada di tingkat hardware abstraction layer (HAL), serta software apa pun yang berinteraksi dengan hardware kustom. Kecuali untuk implementasi khusus hardware, Anda harus mengharapkan perilaku yang setara secara fungsional antara Cuttlefish dan perangkat fisik.
Cara Cuttlefish dapat membantu
Anda dapat berinteraksi dengan Cuttlefish seperti yang Anda lakukan dengan perangkat Android lainnya yang mungkin Anda gunakan untuk proses debug. Perangkat ini mendaftarkan dirinya sebagai perangkat normal dengan adb dan Anda dapat berinteraksi dengannya seperti perangkat fisik dengan desktop jarak jauh. Kasus penggunaannya luas dan dapat mencakup pengujian aplikasi, pengujian build sistem kustom, dan lainnya.
Karena Cuttlefish berupaya untuk mencapai fidelitas framework penuh, Cuttlefish dapat digunakan untuk pengujian fungsional framework atau aplikasi Anda jika tidak ada dependensi hardware fisik yang tidak mungkin di-emulasi.
Cara Cuttlefish digunakan untuk pengujian saat ini
Beberapa aplikasi umum Cuttlefish untuk pengujian meliputi:
- CTS
- Kepatuhan framework
- Pengujian continuous integration
- Suite pengujian kustom
Menghosting Cuttlefish di cloud
Cuttlefish secara native mendukung Google Cloud dan dukungan untuk platform cloud lainnya direncanakan.
Mulai
Untuk panduan tentang cara membuat instance Cuttlefish berdasarkan AOSP, lihat Menggunakan Cuttlefish.