Wear OS 6 представляет новый API Watch Face Push, который открывает возможности для более продвинутых вариантов использования публикации циферблатов.
Определите, когда следует использовать функцию Watch Face Push
Watch Face Push — это API в Wear OS, позволяющий разработчикам добавлять, обновлять и удалять циферблаты напрямую. Для разработки стандартных циферблатов он не требуется.
Циферблаты, используемые с функцией Watch Face Push, должны быть созданы в формате Watch Face. Это могут быть циферблаты, созданные с помощью Watch Face Designer, Watch Face Studio или любого другого инструмента, создающего циферблаты в формате Watch Face.
Хотя API Watch Face Push потенциально можно использовать несколькими способами, следующую таблицу следует использовать в качестве руководства для основных вариантов использования:
Вариант использования | Рекомендуемое решение | Сложность |
---|---|---|
Я хочу создать индивидуальные циферблаты и опубликовать их. | Используйте Watch Face Format напрямую или с помощью таких инструментов, как Watch Face Designer или Watch Face Studio, и публикуйте их в Google Play. | Низкий |
Я хочу создать приложение для телефона, которое позволит пользователям выбирать циферблаты из специально подобранной коллекции или разрабатывать и настраивать циферблаты для установки непосредственно на часы Wear OS. | Создайте приложение для часов и телефона, используя API Watch Face Push на часах. | Высокий |
Цель
Канонический вариант использования Watch Face Push API — создание приложения для магазина . В этом приложении пользователи могут выбирать циферблаты из специальной коллекции на своём телефоне и напрямую управлять их установкой на подключенные часы.
Соображения
Подробную информацию о создании циферблатов см. в руководстве по формату циферблатов : циферблаты, развернутые с помощью 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-файла строго контролируется. Необходимо обеспечить соответствие формата циферблата следующим ограничениям: технически возможно создание APK-файлов формата циферблата, содержащих безвредные файлы метаданных и другие артефакты, которые могут быть приняты в 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-файла, который не менялся, не требуется. Токены не имеют срока действия, даже если версия используемого инструмента проверки была заменена.
В то же время мы рекомендуем вам время от времени перезапускать валидацию, поскольку валидатор периодически обновляется.
Запустить валидатор
Валидатор доступен в трех вариантах:
- Инструмент командной строки
- Библиотека для использования с JVM
- Библиотека для использования на Android
Использование валидатора командной строки
- Получите валидатор из репозитория Maven от Google.
Запустите инструмент следующим образом:
java -jar validator-push-cli-1.0.0-alpha06.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>
В случае успеха выходные данные включают токен проверки , который необходимо предоставить API Watch Face Push при добавлении или обновлении циферблата.
В случае возникновения ошибки выходные данные содержат сведения о том, какая именно проверка не удалась.
Использование библиотечного валидатора
Включите репозиторий 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:1.0.0-alpha06") // For use on Android implementation("com.google.android.wearable.watchface.validator-android:1.0.0-alpha06")
Запустите валидатор:
val validator = DwfValidatorFactory.create() val result = validator.validate(watchFaceFile, appPackageName) if (result.failures().isEmpty()) { val token = result.validationToken() println("Validation token: $token") // Validation success - continue with the token // ... } else { // There were failures, handle them accordingly - validation has failed. result.failures().forEach { failure -> println("FAILURE: ${failure.name()}: ${failure.failureMessage()}") // ... } }
Пример использования этой библиотеки см. в примере на 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
- Каждый из них содержит только один циферблат на основе формата 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 уровня данных .