В этом руководстве описаны инструменты, необходимые для настройки циферблата с использованием формата циферблата, некоторые предложения по структуре проекта, а также пошаговое руководство по применению инструментов для создания этой структуры.
Предварительные условия
Чтобы подготовить среду разработки для использования формата циферблата, выполните следующие шаги настройки:
Установите SDK для Android 14 (уровень API 34) или выше. Если ваш циферблат не использует функции или поведение, характерные для версии 2 , вместо этого вы можете установить SDK для Android 13 (уровень API 33).
SDK содержит другие необходимые инструменты, включая
aapt2
иandroid.jar
.Альтернативно установите Android Studio , которая также может предоставить эти инструменты.
Структура проекта
При создании пользовательского циферблата, использующего формат циферблата, пакет Android App Bundle, включающий файл пользовательского циферблата, должен быть полностью отделен от пакета Android App Bundle, содержащего логику вашего приложения Wear OS. Некоторые магазины приложений, в том числе Google Play, не позволяют загружать набор приложений Android, включающий в себя как логику Wear OS, так и собственный циферблат.
Создать пакет циферблатов
Чтобы создать пакет Android App Bundle, содержащий файл циферблата, выполните действия, описанные в следующих разделах.
Объявить об использовании формата циферблата
В файле манифеста вашего нового приложения ( AndroidManifest.xml
) добавьте свойство приложения, которое указывает на использование вами формата циферблата. Если вы не хотите ограничить доступ к циферблату для устройств под управлением Wear OS 5 или более поздней версии, создайте два разных APK-файла циферблата: один с поддержкой версии 2, а другой с поддержкой версии 1. Узнайте больше о том, как настраивать версии вашего приложения.
<?xml version="1.0" encoding="utf-8" standalone="no"?> <manifest ...> <!-- Use SDK version 34 for version 2 of WFF, and SDK version 33 for version 1 of WFF --> <uses-sdk android:minSdkVersion="34" android:targetSdkVersion="34" /> <!-- WFF is a resource-only format, so the hasCode attribute should be set to false to reflect this. --> <application android:label="@string/watch_face_name" android:hasCode="false" ...> <property android:name="com.google.wear.watchface.format.version" android:value="2" /> </application> </manifest>
Объявить метаданные циферблата
В каталоге ресурсов res/xml
вашего приложения создайте новый файл с именем watch_face_info.xml
. Здесь вы определяете метаданные вашего циферблата:
<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
<!-- Only "Preview" is required. -->
<Preview value="@drawable/watch_face_preview" />
<Category value="CATEGORY_EMPTY" />
<AvailableInRetail value="true" />
<MultipleInstancesAllowed value="true" />
<Editable value="true" />
</WatchFaceInfo>
Поля в этом файле представляют следующую информацию:
-
Preview
- Ссылается на объект, содержащий предварительное изображение циферблата.
-
Category
Определяет категорию циферблата. Должна быть строкой или ссылкой на строку, например
@string/ref_name
. Каждый производитель устройства может определить свой собственный набор категорий циферблатов.Значение по умолчанию:
empty_category_meta
, которое группирует этот циферблат вместе с другими циферблатами «пустой категории» в нижней части окна выбора циферблата.-
AvailableInRetail
Доступен ли циферблат в демонстрационном режиме устройства. Должно быть логическое значение или ссылка на логическое значение, например
@bool/watch_face_available_in_retail
.Значение по умолчанию:
false
-
MultipleInstancesAllowed
Может ли циферблат иметь несколько избранных. Должно быть логическое значение или ссылка на логическое значение, например
@bool/watch_face_multiple_instances_allowed
.Значение по умолчанию:
false
-
Editable
Является ли циферблат редактируемым , что означает, что циферблат имеет настройку или хотя бы одно нефиксированное усложнение . Используется для отображения или скрытия кнопки «Изменить» для циферблата в списке избранного.
Значение по умолчанию: ложь
Объявить имя циферблата
В файле манифеста вашего приложения ( AndroidManifest.xml
) установите для атрибута android:label
имя вашего циферблата:
<application android:label="@string/watch_face_name" >
Объявить поддержку форм циферблата (необязательно)
Этот шаг необходим только в том случае, если вы хотите поддерживать различное поведение для циферблатов разных размеров. Вы можете пропустить этот шаг, если вас устраивает, что циферблат соответствует размеру часов.
В каталоге ресурсов res/xml
вашего приложения объявите набор форм циферблатов, которые вы поддерживаете, в watch_face_shapes.xml
:
<WatchFaces>
<!-- The default shape is "CIRCLE". -->
<WatchFace shape="CIRCLE" width="300" height="300"
file="@raw/watchface"/>
<WatchFace shape="CIRCLE" width="450" height="450"
file="@raw/watchface_large_circle"/>
<WatchFace shape="RECTANGLE" width="380" height="400"
file="@raw/watchface_rectangle"/>
</WatchFaces>
Укажите сведения о циферблате
В каталоге ресурсов res/raw
вашего приложения создайте файлы, соответствующие значениям атрибутов file
, которые используются при объявлении поддержки форм циферблатов .
Здесь вы определяете внешний вид и поведение циферблата для каждой формы циферблата. Если вы не определили файл фигур, вам нужно создать только один файл — watchface.xml
.
Используя пример с этой страницы, необработанные XML-файлы будут иметь вид:
-
res/raw/watchface.xml
-
res/raw/watchface_large_circle.xml
-
res/raw/watchface_rectangle.xml
Корневым элементом всегда является WatchFace
:
<WatchFace width="450" height="450" clipShape="CIRCLE">
<!-- Remainder of your Watch Face Format definition here. -->
<!-- If this file defines a watch face for a circular device shape, place
resources used in this file in the "/res/drawable-nodpi" directory. -->
<!-- If this file defines a watch face for a rectangular or other
non-circular shape, place resources ued in this file in the
"/res/drawable-notround-nodpi" directory. -->
</WatchFace>
Укажите издателя циферблата (необязательно)
При желании в файле манифеста вашего приложения можно объявить произвольную строку, которую можно использовать для идентификации издателя циферблата или имени и версии инструмента, который вы используете:
<application ...> ... <property android:name="com.google.wear.watchface.format.publisher" android:value="{toolName}-{toolVersion}" /> </application>
Проверьте правильность и работоспособность циферблата
Во время разработки и перед загрузкой в Google Play используйте инструменты проверки , чтобы убедиться, что ваш циферблат не содержит ошибок и соответствует рекомендациям по использованию памяти.
- Узнайте больше об оптимизации использования памяти и проверке ее использования при подготовке к публикации.
- Узнайте больше об использовании валидатора XML в рамках цикла разработки.
Создайте пакет приложений для циферблата
Чтобы создать пакет Android App Bundle, содержащий ваш циферблат, используйте систему сборки Gradle. Узнайте больше о том, как создать приложение с помощью Gradle .
Это продемонстрировано в примерах GitHub .
{% дословно %}Рекомендуется для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- ААПТ2
- Основы Jetpack Compose
- Начало работы с CameraX