Wear OS 6 представляет новый API, Watch Face Push, который открывает возможности для более сложных сценариев публикации циферблатов.
Определите, когда использовать функцию «Нажатие на циферблат».
Watch Face Push — это API в Wear OS, который позволяет разработчику добавлять, обновлять или удалять циферблаты напрямую. Он не требуется для стандартной разработки циферблатов.
Циферблаты, используемые с Watch Face Push, должны быть созданы с использованием формата Watch Face Format. Это может включать циферблаты, разработанные с помощью Watch Face Designer, Watch Face Studio или любого другого инструмента, создающего циферблаты, использующие формат Watch Face Format.
Хотя API для отправки уведомлений о новых циферблатах часов может использоваться различными способами, следующая таблица поможет вам разобраться в основных сценариях его применения:
| Вариант использования | Рекомендуемое решение | Сложность |
|---|---|---|
| Я хочу создавать индивидуальные циферблаты для часов и публиковать их. | Используйте Watch Face Format, напрямую или через такие инструменты, как Watch Face Designer или Watch Face Studio, и опубликуйте их в Google Play. | Низкий |
| Я хочу создать мобильное приложение, которое позволит пользователям выбирать циферблаты из специально подобранной коллекции или создавать и настраивать циферблаты для установки непосредственно на свои часы Wear OS. | Создайте приложение для часов и телефона, используя API Watch Face Push на часах. | Высокий |
Цель
Основной сценарий использования API Watch Face Push — создание приложения -маркетплейса . С помощью этого приложения пользователи могут выбирать циферблаты из тщательно подобранной коллекции на своем телефоне и напрямую управлять установкой этих циферблатов на подключенные часы.
Соображения
Подробную информацию о создании циферблатов см. в руководстве по формату циферблатов : циферблаты, используемые с помощью Watch Face Push, являются обычными циферблатами формата Watch Face Format.
При создании циферблата часов учитывайте следующие моменты.
Названия пакетов
Циферблаты, установленные с помощью функции Watch Face Push, должны соответствовать следующему соглашению:
<app name>.watchfacepush.<watchface name>
... где <app name> — это имя пакета приложения, вызывающего API для отправки уведомлений о состоянии циферблата.
Например, для приложения с именем пакета com.example.mymarketplace допустимыми именами пакетов для циферблатов являются следующие:
-
com.example.mymarketplace.watchfacepush.watchface1 -
com.example.mymarketplace.watchfacepush.watchface2 -
com.example.mymarketplace.watchfacepush.another_watchface
API отклоняет циферблаты, не соответствующие этому соглашению.
Содержимое упаковки
Система строго контролирует содержимое APK-файлов. Технически возможно создавать APK-файлы в формате Watch Face Format, содержащие безобидные файлы метаданных и другие артефакты, которые могут быть приемлемы для 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, приложение Marketplace отвечает за проверку корректности и производительности каждого циферблата Watch Face Push.
Для проверки качества каждого циферблата Watch Face Push использует следующие методы валидации:
- Все циферблаты, установленные или обновленные через API Watch Face Push, должны пройти проверку инструментом Watch Face Push.
- Для генерации токенов валидации , используемых с API, используйте только официальный инструмент валидации.
- Инструмент проверки должен быть обновлен до последней версии на момент запуска проверки.
Нет необходимости повторно проверять APK-файл, который не изменился. Токены не истекают, даже если версия используемого инструмента проверки устарела.
В то же время мы рекомендуем периодически перезапускать проверку, поскольку валидатор периодически обновляется.
Запустите валидатор
Валидатор доступен в трех формах:
- Инструмент командной строки
- Библиотека для использования с JVM
- Библиотека для использования на Android.
Использование валидатора командной строки
- Получите валидатор из репозитория Maven компании Google.
Запустите инструмент следующим образом:
java -jar validator-push-cli-1.0.0-alpha07.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>В случае успеха, на выходе будет получен токен проверки , который необходимо предоставить API Watch Face Push при добавлении или обновлении циферблата.
В случае возникновения ошибки в выходных данных будет указана информация о том, какая именно проверка не удалась.
использование валидатора библиотеки
Включите репозитории Google и Jitpack. Оба необходимы для использования библиотеки валидатора.
repositories { ... google() maven { url = uri("https://jitpack.io") content { includeGroup("com.github.xgouchet") } } }Добавьте зависимость валидатора в свой проект:
// For use on JVM implementation("com.google.android.wearable.watchface.validator:validator-push:1.0.0-alpha07") // For use on Android implementation("com.google.android.wearable.watchface.validator:validator-push-android:1.0.0-alpha07")Запустите валидатор:
Пример использования этой библиотеки можно найти в примере на GitHub . Также см. библиотеку Portable Asset Compiler Kit (Pack) , которая полезна для сборки APK-файлов на устройстве и используется с валидатором на базе Android.
размер APK
Будьте особенно осторожны с циферблатами Watch Face Push, чтобы минимизировать размер APK-файла: APK-файл циферблата, скорее всего, будет передаваться из мобильного приложения в приложение для часов по Bluetooth, что может быть медленно.
Передача слишком большого APK-файла может занять значительное время, что ухудшает пользовательский опыт и приводит к быстрому разряду батареи.
- Используйте подходящие библиотеки, такие как
pngquant, чтобы свести к минимуму размер файлов изображений.- Включите это в процесс создания коллекции циферблатов для ваших часов.
- Убедитесь, что размеры изображения соответствуют масштабу, в котором вы его используете.
- Кадрирование изображений целесообразно для удаления окружающего фона.
- Уменьшите размер файлов шрифтов.
- Например, если вы используете определенный шрифт только для отображения времени в формате
HH:MM, вы можете использовать такой инструмент, какpyftsubset, чтобы ограничить файл шрифта только необходимыми глифами. Это может значительно уменьшить размер результирующего файла шрифта и APK-файла. Подробнее о минимизации размера файла шрифта в других случаях см. в этой статье блога .
- Например, если вы используете определенный шрифт только для отображения времени в формате
Дополнительные рекомендации по минимизации размера APK-файла см. в разделе «Оптимизация использования памяти» .
Подписание APK-файлов
Как и в случае с обычным APK-файлом, вам необходимо подписать все циферблаты. Создайте отдельный ключ, отличный от ключа, используемого в основном приложении, и используйте этот ключ для всех циферблатов.
Архитектура
Рассмотрим четыре основных компонента системы:
- Облачное хранилище : В классическом приложении Marketplace вы создаете и храните свои циферблаты в облаке, готовые к использованию пользователями. Циферблаты обладают следующими свойствами:
- Они предварительно собраны в виде обычных APK-файлов в формате Watch Face Format.
- Каждый APK-файл содержит только один циферблат, основанный на формате Watch Face Format.
- Они проходят проверку в процессе подтверждения подлинности Watch Face Push и сохраняются вместе с соответствующим токеном подтверждения.
- Ваше мобильное приложение может получать их по мере необходимости.
- Мобильное приложение : Мобильное приложение — это основной способ взаимодействия пользователей с вашей системой. Оно позволяет им:
- Просматривайте и ищите циферблаты в своем каталоге.
- Установить или заменить циферблат на часах
- Приложение для Apple Watch : Обычно приложение для Apple Watch не имеет выраженного пользовательского интерфейса. В первую очередь оно служит связующим звеном между мобильным приложением и API для отправки уведомлений о состоянии циферблата, обладая следующими функциями:
- Используйте API Watch Face Push для установки/обновления или замены циферблатов.
- Запрос необходимых разрешений и отображение уведомления для пользователя.
- Предоставление циферблата по умолчанию
- Предоставление минимального количества циферблатов.
- Взаимодействие телефона и часов : связь между телефоном и приложением на часах имеет решающее значение для успешного функционирования всего устройства. Используйте API уровня данных Wear OS, которые позволяют:
- Обнаружение установки : Используя Capabilities и
CapabilityClient, мобильное приложение может обнаружить отсутствие приложения для часов , и наоборот. Затем вы можете отправить Intent в Play Store для установки отсутствующего приложения для вашего форм-фактора. - Управление состоянием : Используя
DataClientилиMessageClient, вы поддерживаете синхронизацию телефона с состоянием часов, например, синхронизируете состояние активного циферблата. - Передача APK-файлов : используя
ChannelClientилиMessageClient, отправляйте APK-файлы с телефона на часы. - Удаленный вызов : Используя
Messageclient, телефон может дать указание часам вызвать API Watch Face Push, например, для установки циферблата.
- Обнаружение установки : Используя Capabilities и
Для получения более подробной информации обратитесь к руководству по API уровня данных .