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

Примечание : На этой странице показан шаг процесса ручного управления конфигурацией циферблата. Если вы хотите разработать циферблат с помощью инструмента стиля WYSIWYG (что видишь, то и получаешь), сначала ознакомьтесь с руководствами Watch Face Studio .

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

Предпосылки

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

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

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

  2. В качестве альтернативы установите Android Studio , которая также может предоставить эти инструменты.

Структура проекта

При создании пользовательского циферблата, использующего формат Watch Face, Android App Bundle, включающий файл пользовательского циферблата, должен быть полностью отделен от Android App Bundle, содержащего логику вашего приложения Wear OS. Некоторые магазины приложений, включая Google Play, не позволяют вам загружать Android App Bundle, включающий как логику Wear OS, так и пользовательский циферблат.

Создать комплект циферблатов

Чтобы создать пакет приложений Android, включающий файл циферблата, выполните действия, указанные в следующих разделах.

Объявить об использовании формата циферблата

В файле манифеста вашего нового приложения ( AndroidManifest.xml ) добавьте свойство приложения, которое указывает на использование вами формата Watch Face. Если вы не хотите ограничивать доступ к вашему циферблату для устройств под управлением Wear OS 5 или выше, создайте 2 разных APK циферблата, один из которых поддерживает версию 2, а другой — версию 1. Узнайте больше о том, как настроить версии вашего приложения.

<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"
        ...>
        <meta-data android:name="com.google.android.wearable.standalone"
            android:value="true" />
        <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>

    <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" >

Укажите детали циферблата

Структура базового документа циферблата WFF выглядит следующим образом:

<WatchFace width="450" height="450">
  <Scene>
    <!-- Content to be rendered -->
  </Scene>
</WatchFace>

Создайте этот XML-файл как res/raw/watchface.xml при создании циферблата, если вы работаете с одним циферблатом. Для поддержки различных форм и размеров экрана объявите поддержку нескольких форм и размеров .

Корневым элементом всегда является WatchFace . height и width определяют размер координатного пространства для использования в циферблате, а циферблат масштабируется в соответствии с устройством, на котором он используется; height и width не представляют фактические пиксели.

Формат циферблата часов организует несколько сведений о вашем циферблате:

  • Метаданные , такие как время и количество шагов, которые отображаются на предварительном изображении циферблата.
  • Пользовательские конфигурации , такие как различные цветовые темы для вашего циферблата, переключаемые пользователем элементы и выбор среди нескольких элементов. Формат циферблата версии 2 представляет вкусы , которые могут отображаться в пользовательской конфигурации. Каждый вкус определяет предустановленную пользовательскую конфигурацию, определяющую тип и стиль элементов, которые отображаются со временем на вашем циферблате. Эти предустановки упрощают для вас создание групп визуально приятных элементов. В приложении-компаньоне Wear OS пользователи видят различные вкусы вашего циферблата вдоль прокручиваемой строки.
  • Сцена , которая содержит визуальные элементы циферблата. Элементы, которые появляются ближе к концу сцены, появляются поверх других элементов, поэтому типичный порядок следующий:
    • Стрелки для аналоговых часов или текст для цифровых часов
    • Расширения, которые показывают дополнительную информацию, например, день недели или количество шагов пользователя
    • Другие графические элементы, которые создают визуальный интерес или украшают циферблат часов, например, изображение кемпинга.
  • Группы элементов, которые позволяют изменять несколько элементов одновременно. Вы можете создавать варианты этих групп в сцене, что позволяет выборочно скрывать или изменять содержимое, когда система переходит в энергосберегающий режим.

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

Объявить поддержку форм циферблатов (необязательно)

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

В каталоге ресурсов res/xml вашего приложения объявите набор форм циферблатов, которые вы поддерживаете в watch_face_shapes.xml :

<WatchFaces>

    <WatchFace shape="CIRCLE" width="300" height="300"
               file="@raw/watchface"/>
    <WatchFace shape="CIRCLE" width="450" height="450"
               file="@raw/watchface_large_circle"/>

    <!-- Remove any references to rectangular watch faces -->
    <WatchFace shape="RECTANGLE" width="380" height="400"
               file="@raw/watchface_rectangle"/>
</WatchFaces>

Затем определите внешний вид и поведение циферблата для каждой формы циферблата. Если вы не определили файл формы, то вам нужно создать только один файл, watchface.xml .

Используя пример из этого раздела, необработанные XML-файлы будут выглядеть следующим образом:

  • res/raw/watchface.xml
  • res/raw/watchface_large_circle.xml
  • res/raw/watchface_rectangle.xml

Определите издателя циферблата (необязательно)

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

<application ...>
    ...
    <property
        android:name="com.google.wear.watchface.format.publisher"
        android:value="<var>{toolName}-{toolVersion}</var>" />
</application>

Проверьте правильность и производительность циферблата ваших часов

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

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

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

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

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