Wear OS 6 introduit une nouvelle API, Watch Face Push, qui ouvre la voie à des cas d'utilisation plus avancés pour la publication de cadrans.
Identifier quand utiliser le Watch Face Push
Watch Face Push est une API sur Wear OS qui permet au développeur d'ajouter, de modifier ou de supprimer des cadrans directement. Il n'est pas nécessaire pour le développement de cadrans standards.
Les cadrans utilisés avec Watch Face Push doivent être écrits au format Watch Face. Cela peut inclure des cadrans conçus à l'aide de Watch Face Studio ou de tout autre outil produisant des cadrans utilisant le Watch Face Format.
Bien que l'API Watch Face Push puisse potentiellement être utilisée de différentes manières, le tableau suivant doit servir de guide pour les principaux cas d'utilisation :
Cas d'utilisation | Solution recommandée | Complexité |
---|---|---|
Je souhaite créer des cadrans individuels et les publier. | Utilisez le Watch Face Format, directement ou via un outil tel que Watch Face Studio, et publiez-les sur Google Play. | Faible |
Je souhaite créer une application pour téléphone qui permet aux utilisateurs de sélectionner des cadrans dans une collection organisée, ou de concevoir et de personnaliser des cadrans à installer directement sur leur montre Wear OS. | Créez une application pour la montre et le téléphone à l'aide de l'API Watch Face Push sur la montre. | Élevée |
Objectif
Le cas d'utilisation canonique de l'API Watch Face Push consiste à créer une application Marketplace. À partir de cette application, les utilisateurs peuvent sélectionner des cadrans dans une collection organisée sur leur téléphone et contrôler directement l'installation de ces cadrans sur leur montre connectée.
Points à prendre en compte
Pour en savoir plus sur la création de cadrans, consultez les consignes concernant le Watch Face Format : les cadrans déployés à l'aide de Watch Face Push sont des cadrans Watch Face Format standards.
Lorsque vous créez votre cadran, gardez à l'esprit les points suivants.
Noms des packages
Les cadrans installés à l'aide de Watch Face Push doivent respecter la convention suivante :
<app name>.watchfacepush.<watchface name>
... où <app name>
est le nom du package de l'application qui appelle l'API Watch Face Push.
Par exemple, pour une application dont le nom de package est com.example.mymarketplace
, les noms de package de cadran suivants sont valides :
com.example.mymarketplace.watchfacepush.watchface1
com.example.mymarketplace.watchfacepush.watchface2
com.example.mymarketplace.watchfacepush.another_watchface
Les cadrans qui ne respectent pas cette convention sont refusés par l'API.
Contenu de l'emballage
Le contenu des APK est soumis à des règles strictes. Vous devez veiller à ce que le format Watch Face respecte les contraintes suivantes : il est techniquement possible de produire des APK au format Watch Face contenant des fichiers de métadonnées inoffensifs et d'autres artefacts, qui peuvent être acceptables pour Google Play, mais qui ne passent pas la validation Watch Face Push (voir ci-dessous).
Seuls les fichiers/chemins suivants sont acceptables dans chaque APK de cadran de montre :
/AndroidManifest.xml
/resources.arsc
/res/**
/META-INF/**
De plus, seules les balises suivantes sont autorisées dans le fichier AndroidManifest.xml
:
<manifest>
<uses-feature>
<uses-sdk>
<application>
<property>
<meta-data>
Enfin, le package doit spécifier un minSdk
d'au moins 33
, et le tag <application>
doit spécifier l'attribut android:hasCode="false"
.
Validation
Contrairement aux cadrans distribués sur Google Play, l'application Marketplace est responsable des vérifications effectuées par Watch Face Push pour s'assurer que chaque cadran est bien formé et performant.
Google Play utilise les contrôles de validation suivants pour vérifier la qualité de chaque cadran qui utilise Watch Face Push :
- Tous les cadrans installés ou mis à jour à l'aide de l'API Watch Face Push doivent passer l'outil de validation Watch Face Push.
- Seul l'outil de validation officiel peut être utilisé pour générer des jetons de validation à utiliser avec l'API.
- L'outil de validation utilisé doit être à jour au moment de la validation.
Il n'est pas nécessaire de revalider un APK qui n'a pas été modifié. Les jetons n'expirent pas, même lorsque la version de l'outil de validation utilisé est obsolète.
En même temps, nous vous recommandons de relancer la validation de temps en temps, car le validateur est mis à jour régulièrement.
Exécuter le validateur
Le validateur est disponible sous trois formes :
- Un outil CLI
- Bibliothèque à utiliser avec la JVM
- Bibliothèque à utiliser sur Android
Utilisation du validateur de ligne de commande
- Obtenez le validateur à partir du dépôt Maven de Google.
Exécutez l'outil comme suit :
java -jar validator-push-cli-1.0.0-alpha06.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>
Si l'opération réussit, la sortie inclut un jeton de validation que vous devez fournir à l'API Watch Face Push lorsque vous ajoutez ou mettez à jour un cadran.
En cas d'erreur, le résultat inclut des informations sur le contrôle spécifique qui a échoué.
Utilisation du validateur de bibliothèque
Incluez le dépôt Jitpack, requis pour la dépendance du validateur :
repositories { ... google() maven { url = uri("https://jitpack.io") content { includeGroup("com.github.xgouchet") } } }
Incluez la dépendance du validateur dans votre projet :
// For use on JVM implementation("com.google.android.wearable.watchface.validator:1.0.0-alpha06") // For use on Android implementation("com.google.android.wearable.watchface.validator-android:1.0.0-alpha06")
Exécutez le validateur :
val validator = DwfValidatorFactory.create() val result = validator.validate(watchFaceFile, appPackageName) if (result.failures().isEmpty()) { val token = result.validationToken() println("Validation token: $token") // Validation success - continue with the token // ... } else { // There were failures, handle them accordingly - validation has failed. result.failures().forEach { failure -> println("FAILURE: ${failure.name()}: ${failure.failureMessage()}") // ... } }
Pour obtenir un exemple d'utilisation de cette bibliothèque, consultez l'exemple GitHub. Consultez également la bibliothèque Portable Asset Compiler Kit (Pack), qui est utile pour compiler des APK sur l'appareil, à utiliser avec le validateur basé sur Android.
Taille de l'APK
Il convient d'être particulièrement prudent avec les cadrans Watch Face Push pour s'assurer que la taille de l'APK est réduite au minimum : l'APK du cadran est susceptible d'être transmis de l'application mobile à l'application de la montre via Bluetooth, ce qui peut être lent.
Un fichier APK trop volumineux peut prendre beaucoup de temps à transmettre, ce qui nuit à l'expérience utilisateur et décharge la batterie.
- Utilisez des bibliothèques appropriées telles que
pngquant
pour réduire au minimum la taille des fichiers image.- Incluez-le dans le processus de compilation de votre collection de cadrans.
- Vérifiez que les dimensions de l'image sont adaptées à l'échelle à laquelle elle sera utilisée.
- Assurez-vous que les images sont recadrées de manière appropriée pour supprimer tout arrière-plan.
- Réduire la taille des fichiers de police
- Par exemple, si vous n'utilisez une police particulière que pour afficher l'heure au format
HH:MM
, vous pouvez utiliser un outil tel quepyftsubset
pour limiter le fichier de police aux glyphes nécessaires. Cela peut réduire considérablement la taille du fichier de police et de l'APK résultants. Pour savoir comment réduire la taille des fichiers de police dans d'autres cas, consultez cet article de blog.
- Par exemple, si vous n'utilisez une police particulière que pour afficher l'heure au format
Pour obtenir d'autres suggestions sur la façon de réduire au minimum la taille des APK, consultez les conseils sur l'optimisation de l'utilisation de la mémoire.
Signature d'APK
Comme pour un APK standard, tous vos cadrans doivent être signés. Créez une clé différente de celle utilisée avec votre application principale et utilisez-la pour tous vos cadrans.
Architecture
Considérez les trois principaux composants du système :
- Stockage dans le cloud : dans l'application Marketplace canonique, vos cadrans sont créés et stockés dans le cloud, prêts à être utilisés par vos utilisateurs. Les cadrans sont les suivants :
- Précompilées en tant qu'APK au format Watch Face Format standard
- Chacun ne contient qu'un seul cadran basé sur le Watch Face Format.
- ont été validées à l'aide du processus de validation Watch Face Push et sont stockées avec le jeton de validation associé.
- Prêts à être récupérés par l'application de votre téléphone quand vous en avez besoin.
- Application Téléphone : l'application Téléphone est le principal moyen d'interaction de vos utilisateurs avec votre système. Il leur permet de :
- Parcourir et rechercher votre catalogue de cadrans
- Installer ou remplacer un cadran sur la montre
- Application de la montre : l'application de la montre ne dispose généralement pas d'une interface utilisateur importante. Il s'agit principalement d'un pont entre l'application pour téléphone et les API Watch Face Push, avec les fonctionnalités suivantes :
- Utiliser l'API Watch Face Push pour installer/mettre à jour ou remplacer des cadrans
- Demander les autorisations nécessaires et inviter l'utilisateur
- Fournir un cadran par défaut
- Fournir un cache minimal de cadrans
- Communications entre le téléphone et la montre : la communication entre l'application sur le téléphone et celle sur la montre est essentielle au succès de l'expérience globale. Utilisez les API Wear OS Data Layer, qui permettent :
- Détection de l'installation : à l'aide des fonctionnalités et de
CapabilityClient
, l'application pour téléphone peut détecter l'absence de l'application de la montre, et inversement. Cela peut être suivi du lancement d'un intent vers le Play Store pour installer le facteur de forme manquant. - Gestion de l'état : à l'aide de
DataClient
ouMessageClient
, le téléphone peut rester synchronisé avec l'état de la montre, par exemple en s'assurant qu'il connaît le cadran défini. - Transmission d'APK : à l'aide de
ChannelClient
ouMessageClient
, les APK peuvent être envoyés du téléphone vers la montre. - Invocation à distance : à l'aide de
Messageclient
, le téléphone peut demander à la montre d'appeler l'API Watch Face Push, par exemple pour installer un cadran.
- Détection de l'installation : à l'aide des fonctionnalités et de
Pour en savoir plus, consultez les conseils concernant l'API Data Layer.