Les cartes ne sont pas des applications. Elles sont donc déployées et lancées à l'aide de mécanismes différents.
Lorsque les options pour les développeurs sont activées sur un appareil (ces fonctionnalités sont activées par défaut sur les émulateurs), des fonctionnalités supplémentaires compatibles avec le développement de cartes sont disponibles à la fois dans Android Studio et adb
.
Déployer des cartes
Pour déployer votre carte, vous pouvez installer votre application sur un appareil physique ou dans un émulateur à l'aide d'Android Studio, comme décrit dans la section Compiler et exécuter votre application. Ensuite, en suivant les mêmes étapes que les utilisateurs ordinaires, ajoutez manuellement la carte au carrousel de cartes.
Pendant le développement actif, vous trouverez peut-être plus simple et plus rapide d'utiliser la fonctionnalité Configuration d'exécution/de débogage "Wear OS Tile" d'Android Studio. Cette méthode déploie et active automatiquement votre carte, ce qui permet une interaction immédiate sans étapes manuelles supplémentaires.
Créer une configuration automatiquement
Le moyen le plus simple de déployer et d'exécuter une carte consiste à utiliser l'icône "Exécuter le service" dans la marge. Une configuration d'exécution est créée automatiquement si elle n'existe pas déjà. Pour en savoir plus, consultez la section Configurations d'exécution/de débogage de Wear OS.


Créer une configuration manuellement
Si la configuration automatique ne fonctionne pas ou si vous souhaitez mieux contrôler le résultat, consultez les instructions suivantes. Les captures d'écran proviennent d'Android Studio Meerkat (2024.3.1).
Sélectionnez l'option "⋮" ("burger") dans la barre de titre.
Sélectionnez "Modifier".
Sélectionnez "+" pour ajouter une configuration dans la boîte de dialogue qui s'affiche.
Sélectionnez "Carte Wear OS" comme type de la nouvelle configuration.
Attribuez un nom à votre configuration, puis sélectionnez le module et la carte appropriés.
Appuyez sur "OK". Votre configuration s'affiche dans la barre de titre. Appuyez sur le bouton "▷" (Exécuter) pour déployer et activer votre carte.
Prévisualiser des cartes dans Android Studio
À partir de la mise à jour groupée d'Android Studio Koala, vous pouvez afficher des instantanés des cartes de votre application Wear OS. Ce panneau est particulièrement utile si l'apparence de votre carte change en fonction de certaines conditions, comme un contenu différent en fonction de la taille d'écran de l'appareil ou un événement sportif qui arrive à la mi-temps.

Ajouter des dépendances
Incluez les dépendances suivantes dans le fichier build.gradle.kts
ou build.gradle
de votre application:
dependencies {
implementation("androidx.wear.tiles:tiles-tooling-preview:1.5.0-alpha10")
debugImplementation("androidx.wear.tiles:tiles-tooling:1.5.0-alpha10")
implementation("androidx.wear:wear-tooling-preview:1.0.0")
}
Configurer les aperçus des cartes
Pour afficher un aperçu de l'apparence de votre carte sur différentes tailles d'écran Wear OS, ajoutez l'annotation @Preview
et transmettez le paramètre device
. Notez que cette annotation @Preview
provient d'un package différent de celui que vous utilisez pour les aperçus de composables.
import androidx.wear.tiles.tooling.preview.Preview
@Preview(device = WearDevices.SMALL_ROUND)
@Preview(device = WearDevices.LARGE_ROUND)
fun tilePreview(context: Context) = TilePreviewData(
onTileRequest = { request ->
TilePreviewHelper.singleTimelineEntryTileBuilder(
buildMyTileLayout()
).build()
}
)
Ajouter et enregistrer des ressources
Si votre carte utilise des ressources Android, vous devez les enregistrer dans le paramètre onTileResourceRequest
de TilePreviewData
, comme indiqué dans l'extrait de code suivant:
import androidx.wear.tiles.tooling.preview.Preview @Preview(device = WearDevices.SMALL_ROUND) fun previewWithResources(context: Context) = TilePreviewData( onTileResourceRequest = { request -> Resources.Builder() .setVersion(myResourcesVersion) .addIdToImageMapping( myImageId, getImageById(R.drawable.myDrawableImageId)) .build() }, onTileRequest = { request -> TilePreviewHelper.singleTimelineEntryTileBuilder( buildMyTileLayout() ).build() } ) fun getImageById( @DrawableRes id: Int, ): ImageResource = ImageResource.Builder() .setAndroidResourceByResId( AndroidImageResourceByResId.Builder() .setResourceId(id) .build(), ) .build()
Afficher des valeurs spécifiques à partir des sources de données de la plate-forme
Si votre carte utilise des données de plate-forme (fréquence cardiaque, calories, distance et pas, par exemple), elle affiche des valeurs par défaut.
Pour afficher une valeur spécifique, définissez le paramètre platformDataValues
lors de la création de l'objet TilePreviewData
, comme indiqué dans l'extrait de code suivant:
import androidx.wear.tiles.tooling.preview.Preview @Preview(device = WearDevices.SMALL_ROUND) fun previewWithPlatformOverride(context: Context) = TilePreviewData( platformDataValues = PlatformDataValues.of( PlatformHealthSources.Keys.HEART_RATE_BPM, DynamicDataBuilders.DynamicDataValue.fromFloat(160f) ), onTileRequest = { request -> TilePreviewHelper.singleTimelineEntryTileBuilder( buildMyTileLayout() ).build() } )
Manipuler des cartes à l'aide d'adb
adb
permet d'installer, de supprimer et d'activer des cartes par programmation pendant le développement.
Dans les commandes suivantes, ComponentName
est une chaîne composée du nom du package et d'une classe dans ce package, par exemple com.example.wear.tiles/com.example.wear.tiles.PreviewTileService
.
add-tile
Ajoute une carte fournie par COMPONENT_NAME
et renvoie l'index.
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation add-tile --ecn component [COMPONENT_NAME]
Exemple de résultat :
Broadcast completed: result=1, data="Index=[0]"
Si une carte existe déjà dans le carrousel, elle est supprimée et réintroduite au même endroit. Sinon, il est inséré à Index[0]
. De plus, si le carrousel est à sa capacité maximale, la dernière vignette est supprimée pour faire de la place à la nouvelle.
show-tile
Activez la carte à l'indice TILE_INDEX
.
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SYSUI --es operation show-tile --ei index [TILE_INDEX]
Exemple de résultat :
Broadcast completed: result=1
remove-tile
Supprime toutes les instances de cartes du carrousel associé à COMPONENT_NAME
.
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation remove-tile --ecn component [COMPONENT_NAME]
Exemple de résultat :
result=1, data="Tile(s) removed."
Valeurs renvoyées
- result=0: aucun broadcast receiver n'a répondu à cette commande, probablement parce que la version de Wear OS est trop ancienne ou que le processus de débogage n'est pas en cours d'exécution.
- result=1: opération réussie.
- result>1: erreur.