タイルはアプリではないため、異なるメカニズムを使用してデプロイおよび起動されます。
デバイスで デベロッパー オプション が有効になっている場合(エミュレータではこれらの機能が
デフォルトで有効になっています)、タイル開発をサポートする追加機能が
Android Studio と adb の両方で使用できるようになります。
タイルをデプロイする
タイルをデプロイするには、Android Studio を使用して実機またはエミュレータにアプリをインストールします。これは、アプリのビルドと実行で説明されているとおりです。次に、通常のユーザーと同じ手順で、タイルをタイルのカルーセルに手動で追加します。
開発中は、Android Studio の [Wear OS Tile] 実行/デバッグ構成機能を使用すると、より簡単かつ迅速に作業を進めることができます。この方法では、タイルが自動的にデプロイされて有効になるため、手動での追加操作なしですぐに操作できます。
構成を自動的に作成する
タイルをデプロイして実行する最も簡単な方法は、ガターの [run service] アイコンを使用することです。実行構成が存在しない場合は、自動的に作成されます。詳しくは、Wear OS の実行/デバッグ構成をご覧ください。
構成を手動で作成する
自動構成が機能しない場合や、結果をより細かく制御したい場合は、次の手順をご覧ください。スクリーンショットは Android Studio Meerkat(2024.3.1)のものです。
タイトルバーから [⋮](ハンバーガー)オプションを選択します。
[Edit…] を選択します。
表示されるダイアログで [+] を選択して構成を追加します。
新しい構成のタイプとして [Wear OS Tile] を選択します。
構成の名前を入力し、必要に応じてモジュールとタイルを選択します。
[OK] をタップします。構成がタイトルバーに表示されます。[▷](実行)ボタンをタップすると、タイルがデプロイされて有効になります。
Android Studio でタイルをプレビューする
Android Studio Koala Feature Drop 以降では、Wear OS アプリのタイルのスナップショットを表示できます。このパネルは、デバイスの表示サイズに応じてコンテンツが異なる場合や、スポーツ イベントがハーフタイムに達した場合など、タイルの外観が条件に応じて変化する場合に特に便利です。
依存関係を追加する
アプリの build.gradle.kts ファイルまたは
build.gradle ファイルに次の依存関係を追加します。
dependencies {
implementation("androidx.wear.tiles:tiles-tooling-preview:1.6.0")
debugImplementation("androidx.wear.tiles:tiles-tooling:1.6.0")
implementation("androidx.wear:wear-tooling-preview:1.0.0")
}
タイルのプレビューを構成する
さまざまな Wear OS ディスプレイ サイズでのタイルの外観をプレビューするには、@Preview アノテーションを追加して、device パラメータを渡します。この
@Previewアノテーションは、
コンポーザブルのプレビューに使用するパッケージとは異なるパッケージのものです。
@Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) fun tilePreview(context: Context) = TilePreviewData { request -> TilePreviewHelper.singleTimelineEntryTileBuilder( buildMyTileLayout(context, request.deviceConfiguration) ).build() }
@PreviewdevicenamegroupfontScalelocaleリソースを追加して登録する
タイルで Android リソースを使用する場合は、次のコード スニペットに示すように、TilePreviewData の onTileResourceRequest パラメータ内でリソースを登録する必要があります。
@Preview(device = WearDevices.SMALL_ROUND) fun previewWithResources(context: Context) = TilePreviewData( onTileResourceRequest = { request -> Resources.Builder() .setVersion(RESOURCES_VERSION) .addIdToImageMapping( myImageId, getImageById(R.drawable.animated_walk) ) .build() }, onTileRequest = { request -> TilePreviewHelper.singleTimelineEntryTileBuilder( buildMyTileLayout(context, request.deviceConfiguration) ).build() } )
プラットフォーム データソースから特定の値を表示する
タイルで心拍数、カロリー、距離、歩数などのプラットフォーム データを使用する場合、タイルにはデフォルト値が表示されます。
特定の値を表示するには、次のコード スニペットに示すように、TilePreviewData オブジェクトの作成時に platformDataValues パラメータを設定します。
@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( buildMyTileLayoutDynamic(context, request.deviceConfiguration) ).build() } )
adb を使用してタイルを操作する
adb を使用すると、開発中にタイルをプログラムでインストール、削除、有効化できます。
次のコマンドでは、ComponentName はパッケージ名とパッケージ内のクラスで構成される文字列です(例: com.example.wear.tiles/com.example.wear.tiles.PreviewTileService)。
add-tile
COMPONENT_NAME で提供されるタイルを追加し、インデックスを返します。
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation add-tile --ecn component [COMPONENT_NAME]
出力例:
Broadcast completed: result=1, data="Index=[0]"
タイルがすでにカルーセルに存在する場合は、削除されて同じ場所に挿入されます。それ以外の場合は、Index[0] に挿入されます。また、カルーセルが最大容量に達している場合は、最後のタイルが削除されて新しいタイルが追加されます。
show-tile
インデックス TILE_INDEX のタイルを有効にします。
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SYSUI --es operation show-tile --ei index [TILE_INDEX]
出力例:
Broadcast completed: result=1
remove-tile
COMPONENT_NAME に関連付けられているカルーセルのタイル インスタンスをすべて削除します。
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation remove-tile --ecn component [COMPONENT_NAME]
出力例:
result=1, data="Tile(s) removed."
値を返す
- result=0: ブロードキャスト レシーバがこのコマンドに応答しませんでした。 Wear OS のバージョンが古すぎるか、デバッグ プロセスが実行されていない可能性があります。
- result=1: 成功。
- result>1: エラー。