Appareils Android virtuels Cuttlefish

Cuttlefish est un appareil Android virtuel configurable qui peut être exécuté à 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 la plate-forme et de l'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 privilégiant la haute fidélité en maintenant un alignement étroit avec le framework principal.
  • Prise en charge de tous les niveaux d'API après le niveau 28.
  • Fournissez un niveau de fonctionnalité cohérent entre les niveaux d'API, en adéquation avec le comportement sur le matériel physique.
  • Activez la mise à l'échelle:

    • Fournissez la possibilité d'exécuter plusieurs appareils en parallèle.
    • Permettez l'exécution de tests simultanés en haute fidélité pour un coût d'entrée inférieur.
  • Fournir un appareil configurable permettant 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'un AOSP pur ou d'une implémentation personnalisée dans votre propre arborescence). Dans une application réelle, cela signifie que vous devez vous attendre à ce que Cuttlefish réponde à vos interactions au niveau de l'OS, comme une cible de téléphone physique créée avec la même source d'OS Android personnalisée ou pure.

Android Emulator a été conçu pour faciliter le développement d'applications. Il contient de nombreux crochets fonctionnels pour répondre aux cas d'utilisation des développeurs d'applications Android. Cela peut poser des problèmes si vous souhaitez créer un émulateur avec votre framework Android personnalisé. Si vous avez besoin d'un appareil virtuel qui représentera votre code de plate-forme/framework personnalisé ou Android de pointe, Cuttlefish est une option virtuelle idéale. Il s'agit de l'appareil canonique pour représenter l'état actuel du développement d'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 qui interagit avec du 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.

En quoi 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'enregistrera en tant qu'appareil normal via adb et vous pourrez interagir avec lui comme avec un appareil physique via un bureau à distance. Les cas d'utilisation sont vastes et peuvent inclure les tests d'applications, les tests de compilation système personnalisés, etc.

Comme Cuttlefish s'efforce d'atteindre une fidélité maximale au framework, elle peut être utilisée pour tester les fonctionnalités 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 ?

Voici quelques applications courantes de Cuttlefish pour les tests:

  • CTS
  • Conformité du framework
  • Tests d'intégration continue
  • Suites de tests personnalisés

Puis-je héberger Cuttlefish dans le cloud ?

Oui, Cuttlefish est compatible nativement avec Google Cloud. 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 la page Utiliser Settlefish.