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ştirmek ve doğrulamak için fiziksel donanıma bağımlı olmasını önleyin.
- Temel çerçeveyle yakın uyum sağlayarak yüksek doğruluk üzerinde durarak 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ştirme:
- Birden fazla cihazı paralel olarak çalıştırma olanağı sağlar.
- Daha düşük bir giriş maliyetiyle yüksek doğrulukta eşzamanlı test 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 (AOSP veya kendi ağacınızdaki özel bir uygulama olsun) tam uyumluluğu garanti eder. Gerçek dünyadaki uygulamalarda bu, Cuttlefish'in etkileşimlerinize işletim sistemi 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. Bu durum, özelleştirilmiş Android çerçevenizle bir emülatör oluşturmak istediğinizde 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
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 dışında, 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çeveye tam olarak sadık kalmayı amaçladığı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 yaygın olarak nasıl kullanılıyor?
Cuttlefish'in test için yaygın olarak kullanıldığı bazı alanlar ş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şturma hakkında bilgi edinmek için Cuttlefish'i kullanma başlıklı makaleyi inceleyin.