Cuttlefish adalah perangkat Android virtual yang dapat dikonfigurasi dan dapat berjalan dari jarak jauh (menggunakan penawaran cloud pihak ketiga seperti Google Cloud Engine) dan secara lokal (di komputer Linux x86 dan ARM64).
Sasaran Cuttlefish
- Membebaskan developer platform dan aplikasi dari ketergantungan pada hardware fisik untuk mengembangkan dan memvalidasi perubahan kode.
- Mereplikasi perilaku berbasis framework perangkat sungguhan dengan fokus pada fidelitas tinggi dengan mempertahankan keselarasan yang erat dengan framework inti.
- Mendukung semua level API setelah 28.
- Menyediakan tingkat fungsionalitas yang konsisten di seluruh level API, yang selaras dengan perilaku pada hardware fisik.
Aktifkan skala:
- Memberikan kemampuan untuk menjalankan beberapa perangkat secara paralel.
- Aktifkan eksekusi pengujian serentak dengan fidelitas tinggi dan biaya masuk yang lebih rendah.
Menyediakan perangkat yang dapat dikonfigurasi dengan kemampuan untuk menyesuaikan faktor bentuk, RAM, CPU, dll.
Membandingkan Cuttlefish dengan perangkat lain
Cuttlefish dan Android Emulator
Ada banyak kesamaan dengan Android Emulator, tetapi Cuttlefish menjamin kesetiaan penuh dengan framework Android (baik ini AOSP murni atau implementasi kustom di pohon Anda sendiri). Dalam aplikasi dunia nyata, ini berarti Anda harus mengharapkan Cuttlefish merespons interaksi Anda di tingkat OS seperti target ponsel fisik yang dibuat dengan sumber OS Android murni atau yang sama yang disesuaikan.
Android Emulator telah dibangun 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 akan mewakili kode platform/framework kustom atau Android tip-of-tree, Cuttlefish adalah opsi virtual yang ideal. Perangkat ini adalah perangkat kanonis untuk merepresentasikan status pengembangan AOSP saat ini.
Cuttlefish dan perangkat fisik
Perbedaan utama antara perangkat virtual Cuttlefish dan perangkat fisik Anda ada di tingkat hardware abstraction layer (HAL), serta software apa pun yang berinteraksi dengan hardware kustom. Kecuali untuk penerapan khusus hardware, Anda akan mendapatkan perilaku yang setara secara fungsional antara Cuttlefish dan perangkat fisik.
Bagaimana Cuttlefish dapat membantu?
Anda dapat berinteraksi dengan Cuttlefish seperti halnya perangkat Android lain yang mungkin Anda gunakan untuk men-debug. Perangkat akan mendaftarkan dirinya sebagai perangkat normal melalui adb dan Anda dapat berinteraksi dengannya seperti perangkat fisik melalui desktop jarak jauh. Kasus penggunaannya luas dan dapat mencakup pengujian aplikasi, pengujian build sistem kustom, dan banyak lagi.
Karena Cuttlefish berupaya untuk mencapai kesetiaan framework penuh, Cuttlefish dapat digunakan untuk pengujian fungsional framework atau aplikasi Anda yang tidak memiliki dependensi hardware fisik yang tidak mungkin ditiru.
Bagaimana Cuttlefish biasanya digunakan untuk pengujian saat ini?
Beberapa aplikasi umum Cuttlefish untuk pengujian meliputi:
- CTS
- Kepatuhan framework
- Pengujian continuous integration
- Rangkaian pengujian kustom
Dapatkah saya menghosting Cuttlefish di cloud?
Ya, Cuttlefish secara native mendukung Google Cloud dan dukungan untuk platform cloud lainnya direncanakan.
Memulai
Untuk panduan tentang cara membuat instance Cuttlefish berdasarkan AOSP, lihat Menggunakan Cuttlefish.