Запуск и отладка плитки

Плитки не являются приложениями, поэтому развертываются и запускаются с использованием разных механизмов. Если на устройстве включены параметры разработчика (в эмуляторах эти функции включены по умолчанию), дополнительные функции, поддерживающие разработку плиток, становятся доступными для использования как в Android Studio , так и adb .

Развертывание плиток

Чтобы развернуть плитку, вы можете установить приложение на физическое устройство или эмулятор с помощью Android Studio , как описано в разделе Создание и запуск приложения . Затем, выполнив те же действия, что и обычные пользователи, вручную добавьте плитку в карусель плиток .

Во время активной разработки вам может оказаться проще и быстрее использовать функцию запуска/отладки Android Studio «Wear OS Tile» . Этот метод автоматически разворачивает и активирует вашу плитку, обеспечивая немедленное взаимодействие без дополнительных действий вручную.

Автоматическое создание конфигурации

Самый простой способ развернуть и запустить плитку — использовать значок «Запустить службу» в желобе. При этом автоматически создается конфигурация запуска, если она еще не существует. Дополнительные сведения см. в разделе Конфигурации запуска/отладки Wear OS .

Снимок экрана с красной стрелкой, указывающей на «▷» в желобе.
Нажмите «▷» в желобе.
Снимок экрана: красная стрелка, указывающая на раскрывающийся список запуска конфигурации, и параметр конфигурации TestTileService, обведенный красным.
«Конфигурация запуска» создается автоматически.

Создать конфигурацию вручную

Если автоматическая настройка не работает или вы хотите больше контролировать результат, смотрите следующие инструкции. Скриншоты взяты из Android Studio Meerkat (2024.3.1).

  1. Выберите опцию «⋮» («гамбургер») в строке заголовка.

    Снимок экрана с красной стрелкой, указывающей на опцию «⋮» («гамбургер») в строке заголовка.
  2. Выберите «Изменить…».

    «Изменить…» — это первый вариант в разделе «Конфигурация» раскрывающегося списка.
  3. Выберите «+», чтобы добавить конфигурацию в появившемся диалоговом окне.

    Снимок экрана с красной стрелкой, указывающей на «+».
  4. Выберите «Wear OS Tile» в качестве типа новой конфигурации.

    Снимок экрана с красной стрелкой, указывающей на параметр конфигурации «Wear OS Tile».
  5. Введите имя для своей конфигурации и выберите соответствующий модуль и плитку.

    Снимок экрана с тремя красными стрелками, указывающими на области диалогового окна.
  6. Нажмите «ОК». Ваша конфигурация появится в строке заголовка. Нажмите кнопку «▷» («Запустить»), и ваша плитка будет развернута и активирована.

Предварительный просмотр плиток в Android Studio

Начиная с Android Studio Koala Feature Drop, вы можете просматривать снимки плиток вашего приложения Wear OS. Эта панель особенно полезна, если внешний вид вашей плитки меняется в зависимости от условий, например, различное содержимое в зависимости от размера экрана устройства или спортивное событие, приближающееся к перерыву.

Имена групп на панели предварительного просмотра соответствуют имени группы, указанному в     предварительный просмотр аннотации
Панель предварительного просмотра плиток в Android Studio.

Добавить зависимости

Включите следующие зависимости в файл 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 : Ошибка.