Cuttlefish, hem uzaktan (Google Cloud Engine gibi üçüncü taraf bulut teklifleri kullanılarak) hem de yerel olarak (Linux x86 ve ARM64 makinelerde) çalıştırılabilen, yapılandırılabilir bir sanal Android cihazdır.
Cuttlefish hedefleri
- Platform ve uygulama geliştiricinin, kod değişikliklerini geliştirip doğrulamak için fiziksel donanıma bağımlı olmasını önleyin.
- Temel çerçeveyle yakın uyumu koruyarak yüksek doğruluk odaklı gerçek bir cihazın çerçeve tabanlı davranışını kopyalayın.
- 28'den sonraki tüm API düzeylerini destekleyin.
- API düzeyleri arasında tutarlı bir işlevsellik düzeyi sağlayın. Bu düzey, fiziksel donanımdaki davranışla uyumlu olmalıdır.
Ölçeği etkinleştir:
- Birden fazla cihazı paralel olarak çalıştırma olanağı sağlar.
- Daha düşük bir giriş maliyetiyle yüksek doğrulukta eşzamanlı test işlemi yürütmeyi etkinleştirin.
Form faktörü, RAM, CPU vb. ayarlanabilen yapılandırılabilir bir cihaz sunun.
Cuttlefish'i diğer cihazlarla karşılaştırma
Mürekkep Balığı ve Android Emülatörü
Android Emulator ile birçok benzerlik vardır ancak Cuttlefish, Android çerçevesiyle (bu, saf AOSP veya kendi ağacınızdaki özel bir uygulama olsun) tam uygunluğu garanti eder. Gerçek dünyadaki uygulamalarda bu, Cuttlefish'in etkileşimlerinize OS düzeyinde, aynı özelleştirilmiş veya saf Android OS kaynağıyla oluşturulmuş fiziksel bir telefon hedefi gibi yanıt vermesini beklemeniz gerektiği anlamına gelir.
Android Emulator, uygulama geliştirme sürecini kolaylaştırma kullanım alanı üzerine kurulmuştur ve Android uygulama geliştiricilerinin kullanım alanlarına hitap edecek birçok işlevsel kanca içerir. Özelleştirilmiş Android çerçevelerinizi kullanarak bir emülatör oluşturmak istiyorsanız bu durum zorluklara yol açabilir. Özel platform/çerçeve kodunuzu veya tip-of-tree Android'i temsil edecek bir sanal cihaza ihtiyacınız varsa Cuttlefish ideal bir sanal seçenektir. AOSP geliştirme sürecinin mevcut durumunu temsil eden standart cihazdır.
Mürekkep balığı ve fiziksel cihaz
Bir Cuttlefish sanal cihazı ile fiziksel cihazınız arasındaki temel farklar, donanım soyutlama katmanı (HAL) düzeyinde ve özel donanımla etkileşime giren yazılımlarda bulunur. Donanıma özgü uygulamalar hariç olmak üzere, Cuttlefish ile fiziksel bir cihaz arasında işlevsel olarak eşdeğer davranışlar bekleyebilirsiniz.
Cuttlefish nasıl yardımcı olabilir?
Cuttlefish ile, hata ayıklama için kullanabileceğiniz diğer Android cihazlarla etkileşimde bulunduğunuz gibi etkileşimde bulunabilirsiniz. adb üzerinden normal bir cihaz olarak kaydedilir ve uzaktan masaüstü aracılığıyla fiziksel bir cihaz gibi etkileşimde bulunabilirsiniz. Kullanım alanları geniştir ve uygulama testi, özel sistem derleme testi gibi alanları kapsayabilir.
Cuttlefish, çerçeve bütünlüğünü tam olarak sağlamaya çalıştığından, çerçeve veya uygulamalarınızın işlevsel testleri için kullanılabilir. Bu testlerde, taklit edilmesi imkansız fiziksel donanım bağımlılıkları yoktur.
Cuttlefish günümüzde test için en çok tercih edilen olarak nasıl kullanılıyor?
Cuttlefish'in test için yaygın olarak kullanıldığı bazı uygulamalar şunlardır:
- CTS
- Çerçeveye uygunluk
- Sürekli entegrasyon testi
- Özel test paketleri
Cuttlefish'i bulutta barındırabilir miyim?
Evet, Cuttlefish Google Cloud'u yerel olarak destekler ve diğer bulut platformları için destek planlanmaktadır.
Başlayın
AOSP'ye dayalı bir Cuttlefish örneği oluşturmayla ilgili rehberlik için Cuttlefish'i kullanma başlıklı makaleyi inceleyin.