Плитки не являются приложениями, поэтому развертываются и запускаются с использованием разных механизмов. Если на устройстве включены параметры разработчика (в эмуляторах эти функции включены по умолчанию), дополнительные функции, поддерживающие разработку плиток, становятся доступными для использования как в Android Studio , так и adb
.
Развертывание плиток
Чтобы развернуть плитку, вы можете установить приложение на физическое устройство или эмулятор с помощью Android Studio , как описано в разделе Создание и запуск приложения . Затем, выполнив те же действия, что и обычные пользователи, вручную добавьте плитку в карусель плиток .
Во время активной разработки вам может оказаться проще и быстрее использовать функцию запуска/отладки Android Studio «Wear OS Tile» . Этот метод автоматически разворачивает и активирует вашу плитку, обеспечивая немедленное взаимодействие без дополнительных действий вручную.
Автоматическое создание конфигурации
Самый простой способ развернуть и запустить плитку — использовать значок «Запустить службу» в желобе. При этом автоматически создается конфигурация запуска, если она еще не существует. Дополнительные сведения см. в разделе Конфигурации запуска/отладки Wear OS .


Создать конфигурацию вручную
Если автоматическая настройка не работает или вы хотите больше контролировать результат, смотрите следующие инструкции. Скриншоты взяты из Android Studio Meerkat (2024.3.1).
Выберите опцию «⋮» («гамбургер») в строке заголовка.
Выберите «Изменить…».
Выберите «+», чтобы добавить конфигурацию в появившемся диалоговом окне.
Выберите «Wear OS Tile» в качестве типа новой конфигурации.
Введите имя для своей конфигурации и выберите соответствующий модуль и плитку.
Нажмите «ОК». Ваша конфигурация появится в строке заголовка. Нажмите кнопку «▷» («Запустить»), и ваша плитка будет развернута и активирована.
Предварительный просмотр плиток в Android Studio
Начиная с Android Studio Koala Feature Drop, вы можете просматривать снимки плиток вашего приложения Wear OS. Эта панель особенно полезна, если внешний вид вашей плитки меняется в зависимости от условий, например, различное содержимое в зависимости от размера экрана устройства или спортивное событие, приближающееся к перерыву.

Добавить зависимости
Включите следующие зависимости в файл build.gradle.kts
или build.gradle
вашего приложения:
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")
}
Настройка предварительного просмотра плиток
Чтобы предварительно просмотреть внешний вид вашей плитки на дисплеях Wear OS разных размеров, добавьте аннотацию @Preview
и передайте параметр device
. Обратите внимание, что эта аннотация @Preview
принадлежит другому пакету, отличному от того, который вы используете для составных предварительных просмотров .
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()
}
)
Добавляйте и регистрируйте ресурсы
Если ваша плитка использует ресурсы Android, вам необходимо зарегистрировать их в параметре onTileResourceRequest
TilePreviewData
, как показано в следующем фрагменте кода:
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()
Показывать конкретные значения из источников данных платформы
Если на вашей плитке используются данные платформы, такие как частота сердечных сокращений, калории, расстояние и шаги, на плитке отображаются значения по умолчанию.
Чтобы отобразить определенное значение, задайте параметр platformDataValues
при создании объекта TilePreviewData
, как показано в следующем фрагменте кода:
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() } )
Манипулирование плитками с помощью adb
adb
можно использовать для программной установки, удаления и активации плиток во время разработки.
В следующих командах ComponentName
— это строка, состоящая из имени пакета и класса внутри этого пакета, например com.example.wear.tiles/com.example.wear.tiles.PreviewTileService
.
добавить плитку
Добавляет плитку, предоставленную 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]
. Кроме того, если карусель загружена на максимальную вместимость, последняя плитка удаляется, чтобы освободить место для новой плитки.
шоу-плитка
Активируйте плитку по индексу 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
удалить плитку
Удаляет все экземпляры плиток в карусели, связанные с 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 слишком старая или процесс отладки не запущен.
- результат=1 : Успех.
- результат>1 : Ошибка.