Cuttlefish est un appareil Android virtuel configurable qui peut s'exécuter à distance (à l'aide d'offres cloud tierces telles que Google Compute Engine) et en local (sur des machines Linux x86 et ARM64).
Objectifs Cuttlefish
- Libérez le développeur de plate-forme et d'application de la dépendance au matériel physique pour développer et valider les modifications de code.
- Reproduisez le comportement basé sur le framework d'un appareil réel en mettant l'accent sur la haute fidélité en maintenant un alignement étroit avec le framework principal.
- Prend en charge tous les niveaux d'API supérieurs à 28.
- Fournissez un niveau de fonctionnalité cohérent pour tous les niveaux d'API, en accord avec le comportement sur le matériel physique.
Activer la mise à l'échelle :
- Permet d'exécuter plusieurs appareils en parallèle.
- Exécutez des tests simultanés avec une haute fidélité à un coût d'entrée réduit.
Fournissez un appareil configurable avec la possibilité d'ajuster le facteur de forme, la RAM, les processeurs, etc.
Comparer Cuttlefish à d'autres appareils
Cuttlefish et Android Emulator
Il existe de nombreuses similitudes avec Android Emulator, mais Cuttlefish garantit une fidélité totale avec le framework Android (qu'il s'agisse d'une implémentation AOSP pure ou d'une implémentation personnalisée dans votre propre arbre). Dans une application réelle, cela signifie que vous devez vous attendre à ce que Cuttlefish réponde à vos interactions au niveau de l'OS, tout comme un téléphone physique cible conçu avec la même source d'OS Android personnalisé ou pur.
L'émulateur Android a été conçu pour faciliter le développement d'applications. Il contient de nombreux hooks fonctionnels pour répondre aux besoins des développeurs d'applications Android. Cela peut poser problème si vous souhaitez créer un émulateur avec votre framework Android personnalisé. Si vous avez besoin d'un appareil virtuel représentatif de votre code de plate-forme/framework personnalisé ou d'Android en version de développement, Cuttlefish est une option virtuelle idéale. Il s'agit de l'appareil canonique pour représenter l'état actuel du développement AOSP.
Cuttlefish et appareil physique
Les principales différences entre un appareil virtuel Cuttlefish et votre appareil physique se situent au niveau de la couche d'abstraction matérielle (HAL, Hardware Abstraction Layer), ainsi que de tout logiciel interagissant avec un matériel personnalisé. À l'exception des implémentations spécifiques au matériel, vous devez vous attendre à un comportement fonctionnellement équivalent entre Cuttlefish et un appareil physique.
Comment Cuttlefish peut-il vous aider ?
Vous pouvez interagir avec Cuttlefish comme vous le feriez avec n'importe quel autre appareil Android que vous pourriez utiliser pour le débogage. Il s'enregistre en tant qu'appareil normal via adb et vous pouvez interagir avec lui comme avec un appareil physique via le bureau à distance. Les cas d'utilisation sont nombreux et peuvent inclure les tests d'applications, les tests de compilation de systèmes personnalisés, etc.
Comme Cuttlefish s'efforce d'assurer une fidélité totale du framework, il peut être utilisé pour tester le fonctionnement de votre framework ou de vos applications lorsqu'il n'existe aucune dépendance matérielle physique impossible à émuler.
Comment Cuttlefish est-il couramment utilisé pour les tests aujourd'hui ?
Voici quelques applications courantes de Cuttlefish pour les tests :
- CTS
- Conformité avec le framework
- Tests d'intégration continue
- Suites de tests personnalisées
Puis-je héberger Cuttlefish dans le cloud ?
Oui, Cuttlefish est compatible avec Google Cloud de manière native. La compatibilité avec d'autres plates-formes cloud est prévue.
Premiers pas
Pour savoir comment créer une instance Cuttlefish basée sur AOSP, consultez Utiliser Cuttlefish.