Настройка формата циферблата

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

Предварительные условия

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

  1. Установите SDK для Android 14 (уровень API 34) или выше. Если ваш циферблат не использует функции или поведение, характерные для версии 2 , вместо этого вы можете установить SDK для Android 13 (уровень API 33).

    SDK содержит другие необходимые инструменты, включая aapt2 и android.jar .

  2. Альтернативно установите 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 используйте инструменты проверки , чтобы убедиться, что ваш циферблат не содержит ошибок и соответствует рекомендациям по использованию памяти.

Создайте пакет приложений для циферблата

Чтобы создать пакет Android App Bundle, содержащий ваш циферблат, используйте систему сборки Gradle. Узнайте больше о том, как создать приложение с помощью Gradle .

Это продемонстрировано в примерах GitHub .

{% дословно %} {% дословно %} {% дословно %} {% дословно %}