Cuttlefish est un appareil virtuel Android configurable qui peut s'exécuter à la fois à distance (à l'aide d'offres cloud tierces telles que Google Cloud Engine) et en local (sur des machines Linux x86 et ARM64).
Objectifs Cuttlefish
- Libérez le développeur de plate-forme et le développeur d'applications 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 de base.
- 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.
Activez 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 plus faible.
Fournissez un appareil configurable avec la possibilité d'ajuster des éléments tels que le facteur de forme, la RAM et les processeurs.
Comparer Cuttlefish à d'autres appareils
Cette section compare Cuttlefish à d'autres appareils.
Cuttlefish et Android Emulator
Il existe de nombreuses similitudes avec l'émulateur Android, mais Cuttlefish est entièrement fidèle au framework Android (qu'il s'agisse d'AOSP pur 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'Android Emulator a été conçu pour faciliter le développement d'applications. Il contient de nombreux hooks fonctionnels qui répondent aux cas d'utilisation 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 plate-forme ou framework personnalisé, ou d'Android en version de développement, Cuttlefish est une option virtuelle idéale. Cuttlefish est 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), 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 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 comme un appareil normal auprès d'adb et vous pouvez interagir avec lui comme avec un appareil physique grâce au 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'offrir une fidélité totale du framework, il peut être utilisé pour les tests fonctionnels de votre framework ou de vos applications lorsqu'il n'existe aucune dépendance matérielle physique impossible à émuler.
Comment Cuttlefish est 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
Héberger Cuttlefish dans le cloud
Cuttlefish est compatible avec Google Cloud de manière native. La compatibilité avec d'autres plates-formes cloud est prévue.
Premiers pas
Pour obtenir des conseils sur la création d'une instance Cuttlefish basée sur AOSP, consultez Utiliser Cuttlefish.