Карточки не являются приложениями, поэтому они развертываются и запускаются с помощью других механизмов.
Если на устройстве включен режим разработчика (в эмуляторах он включен по умолчанию), в Android Studio и adb становятся доступны дополнительные функции для разработки карточек.
Развернуть карточки
Чтобы развернуть карточку, установите приложение на физическое устройство или эмулятор с помощью Android Studio, как описано в статье Создание и запуск приложения. Затем вручную добавьте карточку в карусель, выполнив те же действия, что и обычные пользователи.
В процессе разработки вам может быть удобнее и быстрее использовать функцию Конфигурация выполнения/отладки карточки Wear OS в Android Studio. Этот метод автоматически развертывает и активирует карточку, позволяя сразу же взаимодействовать с ней без дополнительных действий вручную.
Создать конфигурацию автоматически
Проще всего развернуть и запустить карточку, нажав на значок "Запустить сервис" на полях. Если конфигурация запуска ещё не создана, она будет создана автоматически. Подробнее о конфигурациях выполнения/отладки для Wear OS…
Создать конфигурацию вручную
Если автоматическая настройка не работает или вы хотите лучше контролировать результат, следуйте инструкциям ниже. Скриншоты сделаны в Android Studio Meerkat (2024.3.1).
Нажмите на значок меню ⋮ в строке заголовка.
Выберите "Изменить".
В появившемся диалоговом окне нажмите на значок плюса, чтобы добавить конфигурацию.
Выберите тип новой конфигурации "Карточка Wear OS".
Введите название конфигурации и выберите модуль и элемент.
Нажмите "ОК". Конфигурация появится в строке заголовка. Нажмите кнопку "▷" (Запустить), чтобы развернуть и активировать карточку.
Предварительный просмотр карточек в Android Studio
Начиная с Android Studio Koala Feature Drop, вы можете просматривать снимки карточек приложения для Wear OS. Эта панель особенно полезна, если внешний вид карточки меняется в зависимости от условий, например, если контент зависит от размера экрана устройства или если спортивное событие достигает перерыва.
Добавьте зависимости
Добавьте в файл build.gradle.kts или build.gradle своего приложения следующие зависимости:
dependencies {
implementation("androidx.wear.tiles:tiles-tooling-preview:1.6.2")
debugImplementation("androidx.wear.tiles:tiles-tooling:1.6.2")
implementation("androidx.wear:wear-tooling-preview:1.0.0")
}
Как настроить предпросмотр карточек
Чтобы посмотреть, как карточка будет выглядеть на экранах Wear OS разных размеров, добавьте аннотацию @Preview и передайте параметр device. Обратите внимание, что эта аннотация @Preview относится к другому пакету, а не к тому, который вы используете для предварительного просмотра composable-функций.
@Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) fun tilePreview(context: Context) = TilePreviewData { request -> TilePreviewHelper.singleTimelineEntryTileBuilder( buildMyTileLayout(context, request.deviceConfiguration) ).build() }
Как добавить и зарегистрировать ресурсы
Если в карточке используются ресурсы Android, их нужно зарегистрировать в параметре onTileResourceRequest метода TilePreviewData, как показано в следующем фрагменте кода:
@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() } )
Показывать определенные значения из источников данных платформы
Если карточка использует данные платформы, например пульс, калории, расстояние и шаги, то для них будут показаны значения по умолчанию.
Чтобы показать определенное значение, задайте параметр platformDataValues при создании объекта TilePreviewData, как показано в следующем фрагменте кода:
@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: ошибка.