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 sotong
- Bebaskan developer platform dan aplikasi dari ketergantungan pada hardware fisik untuk mengembangkan dan memvalidasi perubahan kode.
- Buat replika perilaku berbasis framework dari perangkat sebenarnya yang berfokus pada fidelitas tinggi dengan mempertahankan keselarasan erat dengan framework inti.
- Mendukung semua level API setelah 28.
- Berikan tingkat fungsi yang konsisten di seluruh API level, yang selaras dengan perilaku pada hardware fisik.
Aktifkan skala:
- Memberikan kemampuan untuk menjalankan beberapa perangkat secara paralel.
- Memungkinkan eksekusi uji serentak dengan fidelitas tinggi dengan biaya entri yang lebih rendah.
Menyediakan perangkat yang dapat dikonfigurasi dengan kemampuan untuk menyesuaikan faktor bentuk, RAM, CPU, dll.
Membandingkan Sotong dengan perangkat lain
Cuttlefish dan Android Emulator
Ada banyak kesamaan dengan Android Emulator, tetapi Cuttlefish menjamin fidelitas penuh dengan framework Android (baik AOSP murni maupun implementasi kustom di hierarki Anda sendiri). Dalam aplikasi sebenarnya, 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 disesuaikan.
Android Emulator dibuat berdasarkan kasus penggunaan yang memudahkan pengembangan aplikasi, dan berisi banyak hook fungsional untuk menarik kasus penggunaan developer aplikasi Android. Hal ini dapat menimbulkan tantangan jika Anda ingin mem-build 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 mewakili status pengembangan AOSP saat ini.
Sotong 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 Simut dan perangkat fisik.
Bagaimana Cuttlefish dapat membantu?
Anda dapat berinteraksi dengan Cuttlefish seperti yang Anda lakukan dengan perangkat Android lain yang mungkin Anda gunakan untuk proses debug. Perangkat ini 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 lainnya.
Karena Cuttlefish berupaya untuk mendapatkan fidelitas framework penuh, Cuttlefish dapat digunakan untuk pengujian fungsional framework atau aplikasi Anda jika tidak ada dependensi hardware fisik yang tidak dapat diemulasi.
Bagaimana Cuttlefish biasanya digunakan untuk pengujian saat ini?
Beberapa aplikasi umum Cuttlefish untuk pengujian meliputi:
- CTS
- Kepatuhan terhadap 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 sedang direncanakan.
Memulai
Untuk panduan tentang membuat instance Cuttlefish berdasarkan AOSP, lihat Menggunakan Cuttlefish.