Нажмите на циферблат часов

Wear OS 6 представляет новый API Watch Face Push, который открывает возможности для более продвинутых вариантов использования публикации циферблатов.

Определите, когда следует использовать Watch Face Push

Watch Face Push — это API на Wear OS, который позволяет разработчику добавлять, обновлять или удалять циферблаты напрямую. Он не нужен для разработки стандартных циферблатов.

Циферблаты, используемые с Watch Face Push, должны быть написаны с использованием Watch Face Format. Это может включать циферблаты, разработанные с помощью Watch Face Studio или любого другого инструмента, который создает циферблаты, использующие Watch Face Format.

Хотя API Watch Face Push потенциально можно использовать несколькими способами, следующую таблицу следует использовать в качестве руководства для основных вариантов использования:

Вариант использования Рекомендуемое решение Сложность
Я хочу создать индивидуальные циферблаты и опубликовать их. Используйте формат Watch Face Format напрямую или с помощью такого инструмента, как Watch Face Studio, и публикуйте их в Google Play. Низкий
Я хочу создать приложение для телефона, которое позволит пользователям выбирать циферблаты из специально подобранной коллекции или разрабатывать и настраивать циферблаты для установки непосредственно на часы Wear OS. Создайте приложение для часов и телефона, используя API Watch Face Push на часах. Высокий

Цель

Канонический вариант использования API Watch Face Push — создание приложения Marketplace . Из этого приложения пользователи могут выбирать циферблаты из кураторской коллекции на своем телефоне и напрямую управлять установкой этих циферблатов на подключенные часы.

Соображения

Подробную информацию о создании циферблатов см. в руководстве по формату циферблатов : Циферблаты, развернутые с помощью Watch Face Push, представляют собой обычные циферблаты формата Watch Face.

При создании циферблата учитывайте следующие соображения.

Названия пакетов

Циферблаты, устанавливаемые с помощью Watch Face Push, должны соответствовать следующим правилам:

<app name>.watchfacepush.<watchface name>

... где <app name> — имя пакета приложения, вызывающего API Watch Face Push.

Например, для приложения с именем пакета com.example.mymarketplace допустимыми именами пакетов циферблата являются следующие:

  • com.example.mymarketplace.watchfacepush.watchface1
  • com.example.mymarketplace.watchfacepush.watchface2
  • com.example.mymarketplace.watchfacepush.another_watchface

Циферблаты, не соответствующие этому соглашению, отклоняются API.

Содержимое упаковки

Содержимое APK строго соблюдается. Необходимо позаботиться о том, чтобы формат Watch Face соответствовал следующим ограничениям: технически возможно создавать APK-файлы формата Watch Face, содержащие безвредные файлы метаданных и другие артефакты, которые могут быть приемлемы для Google Play, но не проходят проверку Watch Face Push (см. ниже).

В каждом APK-файле циферблата допустимы только следующие файлы/пути:

  • /AndroidManifest.xml
  • /resources.arsc
  • /res/**
  • /META-INF/**

Кроме того, в файле AndroidManifest.xml разрешены только следующие теги:

  • <manifest>
  • <uses-feature>
  • <uses-sdk>
  • <application>
  • <property>
  • <meta-data>

Наконец, пакет должен указывать minSdk не менее 33 , а тег <application> должен указывать атрибут android:hasCode="false" .

Проверка

В отличие от обычных циферблатов, распространяемых через Google Play, проверка Watch Face Push на предмет правильности оформления и производительности каждого циферблата является обязанностью приложения Marketplace.

Google Play использует следующие проверки для проверки качества каждого циферблата, использующего Watch Face Push:

  1. Все циферблаты, установленные или обновленные через API Watch Face Push, должны пройти проверку с помощью инструмента Watch Face Push.
  2. Для генерации токенов проверки для использования с API можно использовать только официальный инструмент проверки.
  3. Используемый инструмент проверки должен быть актуальным на момент проведения проверки.
  4. Нет необходимости повторно проверять APK, который не изменился. Токены не истекают, даже если версия используемого инструмента проверки заменяется.

    В то же время мы рекомендуем вам время от времени проводить повторную проверку, поскольку валидатор периодически обновляется.

Запустите валидатор

Чтобы запустить валидатор на APK-файле циферблата, выполните следующие действия:

  1. Получите валидатор из репозитория Maven от Google.
  2. Запустите инструмент следующим образом:

    java -jar validator-push-cli-1.0.0-alpha01.jar \
        --apk_path=youwatchface.apk \
        --package_name=<your marketplace package name>
    

    В случае успеха выходные данные включают токен проверки , который необходимо предоставить API Watch Face Push при добавлении или обновлении циферблата.

    В случае возникновения ошибки вывод содержит сведения о том, какая именно проверка не пройдена.

    Пример включения инструмента CLI-валидатора в сборку Gradle см. в примере Watch Face Push на GitHub.

Размер APK-файла

Особое внимание следует уделять циферблатам Watch Face Push, чтобы свести размер APK к минимуму: APK-файл циферблата, скорее всего, будет передаваться из приложения телефона в приложение часов по Bluetooth, что может быть медленным.

Передача слишком большого APK-файла может занять значительное время, что не только неблагоприятно для пользователя, но и быстро расходует заряд батареи.

  • Используйте соответствующие библиотеки, такие как pngquant чтобы свести размеры файлов изображений к минимуму.
    • Включите это в процесс создания коллекции циферблатов.
    • Проверьте, соответствуют ли размеры изображения масштабу, в котором оно будет использоваться.
    • Убедитесь, что изображения правильно обрезаны, чтобы удалить любой окружающий фон.
  • Уменьшить размер файлов шрифтов

Дополнительные рекомендации по сохранению минимального размера APK см. в руководстве по оптимизации использования памяти.

подписание APK

Как обычный APK, все ваши циферблаты требуют подписи. Создайте другой ключ, нежели тот, который используется в вашем основном приложении, и используйте другой ключ для всех ваших циферблатов.

Архитектура

Рассмотрим три основных компонента системы:

  1. Облачное хранилище : в каноническом приложении Marketplace ваши циферблаты создаются и хранятся в облаке, готовые к использованию вашими пользователями. Циферблаты:
    1. Предварительно собранные в виде обычных APK-файлов формата Watch Face
    2. Каждый из них содержит только один циферблат на основе формата Watch Face.
    3. Прошли проверку с помощью процесса проверки Watch Face Push и хранятся вместе с соответствующим токеном проверки.
    4. При необходимости приложение на вашем телефоне может их извлечь.
  2. Приложение для телефона : приложение для телефона — это основной способ взаимодействия пользователей с вашей системой. Оно позволяет им:
    1. Просматривайте и ищите свой каталог циферблатов
    2. Установить или заменить циферблат на часах
  3. Приложение для часов : приложение для часов обычно не имеет значительного пользовательского интерфейса. Это в первую очередь мост между приложением для телефона и API Watch Face Push со следующими функциями:
    1. Использование API Watch Face Push для установки/обновления или замены циферблатов
    2. Запрос необходимых разрешений и приглашение пользователя
    3. Предоставление циферблата по умолчанию
    4. Предоставление минимального набора циферблатов
  4. Связь телефона и часов : Связь телефона и часового приложения имеет решающее значение для успеха всего опыта. Используйте API Wear OS Data Layer, которые позволяют:
    1. Обнаружение установки : Используя Capabilities и CapabilityClient , приложение телефона может обнаружить отсутствие приложения часов , и наоборот. После этого можно запустить намерение в Play Store для установки отсутствующего форм-фактора.
    2. Управление состоянием : с помощью DataClient или MessageClient можно синхронизировать телефон с состоянием часов, например, гарантируя, что телефон знает, какой циферблат установлен.
    3. Передача APK : с помощью ChannelClient или MessageClient можно отправлять APK с телефона на часы.
    4. Удаленный вызов : с помощью Messageclient телефон может дать часам команду вызвать API Watch Face Push, например, для установки циферблата.

Более подробную информацию см. в руководстве по API уровня данных .