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:
- Все циферблаты, установленные или обновленные через API Watch Face Push, должны пройти проверку с помощью инструмента Watch Face Push.
- Для генерации токенов проверки для использования с API можно использовать только официальный инструмент проверки.
- Используемый инструмент проверки должен быть актуальным на момент проведения проверки.
Нет необходимости повторно проверять APK, который не изменился. Токены не истекают, даже если версия используемого инструмента проверки заменяется.
В то же время мы рекомендуем вам время от времени проводить повторную проверку, поскольку валидатор периодически обновляется.
Запустите валидатор
Чтобы запустить валидатор на APK-файле циферблата, выполните следующие действия:
- Получите валидатор из репозитория Maven от Google.
Запустите инструмент следующим образом:
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
чтобы свести размеры файлов изображений к минимуму.- Включите это в процесс создания коллекции циферблатов.
- Проверьте, соответствуют ли размеры изображения масштабу, в котором оно будет использоваться.
- Убедитесь, что изображения правильно обрезаны, чтобы удалить любой окружающий фон.
- Уменьшить размер файлов шрифтов
- Например, если вы используете определенный шрифт только для отображения времени в формате
HH:MM
, вы можете использовать такой инструмент, какpyftsubset
, чтобы ограничить файл шрифта, чтобы он содержал только необходимые глифы. Это может значительно уменьшить размер полученного файла шрифта и APK. Подробнее об уменьшении размера файла шрифта для других случаев см. в этой записи блога.
- Например, если вы используете определенный шрифт только для отображения времени в формате
Дополнительные рекомендации по сохранению минимального размера APK см. в руководстве по оптимизации использования памяти.
подписание APK
Как обычный APK, все ваши циферблаты требуют подписи. Создайте другой ключ, нежели тот, который используется в вашем основном приложении, и используйте другой ключ для всех ваших циферблатов.
Архитектура
Рассмотрим три основных компонента системы:
- Облачное хранилище : в каноническом приложении Marketplace ваши циферблаты создаются и хранятся в облаке, готовые к использованию вашими пользователями. Циферблаты:
- Предварительно собранные в виде обычных APK-файлов формата Watch Face
- Каждый из них содержит только один циферблат на основе формата Watch Face.
- Прошли проверку с помощью процесса проверки Watch Face Push и хранятся вместе с соответствующим токеном проверки.
- При необходимости приложение на вашем телефоне может их извлечь.
- Приложение для телефона : приложение для телефона — это основной способ взаимодействия пользователей с вашей системой. Оно позволяет им:
- Просматривайте и ищите свой каталог циферблатов
- Установить или заменить циферблат на часах
- Приложение для часов : приложение для часов обычно не имеет значительного пользовательского интерфейса. Это в первую очередь мост между приложением для телефона и API Watch Face Push со следующими функциями:
- Использование API Watch Face Push для установки/обновления или замены циферблатов
- Запрос необходимых разрешений и приглашение пользователя
- Предоставление циферблата по умолчанию
- Предоставление минимального набора циферблатов
- Связь телефона и часов : Связь телефона и часового приложения имеет решающее значение для успеха всего опыта. Используйте API Wear OS Data Layer, которые позволяют:
- Обнаружение установки : Используя Capabilities и
CapabilityClient
, приложение телефона может обнаружить отсутствие приложения часов , и наоборот. После этого можно запустить намерение в Play Store для установки отсутствующего форм-фактора. - Управление состоянием : с помощью
DataClient
илиMessageClient
можно синхронизировать телефон с состоянием часов, например, гарантируя, что телефон знает, какой циферблат установлен. - Передача APK : с помощью
ChannelClient
илиMessageClient
можно отправлять APK с телефона на часы. - Удаленный вызов : с помощью
Messageclient
телефон может дать часам команду вызвать API Watch Face Push, например, для установки циферблата.
- Обнаружение установки : Используя Capabilities и
Более подробную информацию см. в руководстве по API уровня данных .