Appareils Android virtuels Cuttlefish

Cuttlefish est un appareil Android virtuel 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 pour seiches

  • Libérez la plate-forme et le développeur de l'application de la dépendance vis-à-vis du matériel physique pour développer et valider les modifications du 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.
  • Compatibilité avec tous les niveaux d'API après 28.
  • Fournir un niveau de fonctionnalité cohérent entre les niveaux d'API, aligné sur le comportement du matériel physique.
  • Activer le scaling:

    • permettre 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 Settlefish à d'autres appareils

Settlefish 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'AOSP pur ou d'une implémentation personnalisée dans votre propre arborescence). Dans les applications réelles, cela signifie que Cuttlefish doit répondre à vos interactions au niveau de l'OS, tout comme une cible de téléphone physique créée avec la même source d'OS Android pur ou personnalisée.

Android Emulator a été conçu pour faciliter le développement d'applications et contient de nombreux hooks fonctionnels pour attirer les cas d'utilisation du développeur 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 représentatif de votre code de plate-forme/framework personnalisé ou d'Android en pointe de l'arbre, Cuttlefish est une option virtuelle idéale. Il s'agit de l'appareil canonique qui représente l'état actuel du développement d'AOSP.

Seiche et appareil physique

Les principales différences entre un appareil virtuel Cuttlefish et votre appareil physique résident au niveau de la couche d'abstraction matérielle (HAL), ainsi qu'au niveau de tout logiciel qui interagit avec du matériel personnalisé. Sauf pour les implémentations spécifiques au matériel, vous devez vous attendre à un comportement fonctionnellement équivalent entre seiche et un appareil physique.

Comment seiche 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 un appareil physique via le bureau à distance. Les cas d'utilisation sont vastes et peuvent couvrir, entre autres, les tests d'applications, les tests de compilation de système personnalisés.

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 la seiche est-elle couramment utilisée pour les tests aujourd'hui ?

Voici quelques applications courantes de seiche pour les tests:

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

Puis-je héberger Settlefish dans le cloud ?

Oui, Cuttlefish offre une compatibilité native avec Google Cloud et la compatibilité d'autres plates-formes cloud est prévue.

Commencer

Pour obtenir des conseils sur la création d'une instance Cuttlefish basée sur AOSP, consultez la page Utiliser Settlefish.