Настройка Watch Face Format

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

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

Начало работы с Android Studio

Проще всего начать создавать циферблаты вручную в Android Studio. Поддержка циферблатов доступна в канале Canary.

  1. Нажмите File (Файл) > New Project (Новый проект).
  2. В разделе Wear OS выберите Базовый циферблат.

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

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

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

Как указать версию Watch Face Format

В файле манифеста нового приложения (AndroidManifest.xml) проверьте свойство application, которое указывает на использование формата Watch Face Format.

<property
    android:name="com.google.wear.watchface.format.version"
    android:value="4" />

Некоторые функции Watch Face Format доступны только в более поздних версиях. Установите для этого свойства минимальное значение, поддерживающее нужные вам функции, чтобы обеспечить максимальную совместимость с устройствами. Также задайте соответствующее значение для свойства minSdkVersion. Подробнее о том, как настроить версии приложения…

Элемент <application> также должен включать атрибут android:hasCode="false". Наборы Watch Face Format содержат только ресурсы и не могут включать код.

Как добавить метаданные циферблата

В каталоге ресурсов res/xml вашего приложения есть файл watch_face_info.xml. Здесь можно задать метаданные циферблата:

<WatchFaceInfo>
    <Preview value="@drawable/preview" />
    <Category value="CATEGORY_EMPTY" />
    <AvailableInRetail value="true" />
    <MultipleInstancesAllowed value="true" />
    <Editable value="true" />
    <FlavorsSupported value="true" />
</WatchFaceInfo>

Поля в этом файле содержат следующие данные:

Preview
Содержит ссылку на объект drawable, который включает изображение предварительного просмотра циферблата.
Category

Определяет категорию циферблата. Должна быть строкой или ссылкой на строку, например @string/ref_name. Каждый производитель устройств может задать свой набор категорий циферблатов.

Значение по умолчанию: empty_category_meta. В этом случае циферблат будет сгруппирован с другими циферблатами без категории в нижней части экрана выбора циферблата.

AvailableInRetail

Доступен ли циферблат в деморежиме для магазина устройства. Должно быть логическим значением или ссылкой на логическое значение, например @bool/watch_face_available_in_retail.

Значение по умолчанию: false

MultipleInstancesAllowed

Можно ли добавить несколько избранных циферблатов. Должно быть логическим значением или ссылкой на логическое значение, например @bool/watch_face_multiple_instances_allowed.

Значение по умолчанию: false

Editable

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

Значение по умолчанию: false.

Как указать название циферблата

В файле манифеста приложения (AndroidManifest.xml) задайте атрибут android:label для элемента application, указав название циферблата.

Как объявить сведения о циферблате

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

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

Шаблон Android Studio содержит базовый документ в формате res/raw/watchface.xml. Чтобы поддерживать экраны разных форм и размеров, задекларируйте поддержку нескольких форм и размеров.

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

Формат Watch Face Format позволяет упорядочить информацию о циферблате:

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

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

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

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

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

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

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

В примере из этого раздела необработанные XML-файлы будут выглядеть так:

  • res/raw/watchface.xml
  • res/raw/watchface_basic.xml

Как указать издателя циферблата (необязательно)

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

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

Как проверить циферблат на наличие ошибок и оценить его производительность

Во время разработки и перед загрузкой в Google Play проверьте циферблат на наличие синтаксических ошибок с помощью встроенного валидатора Watch Face Format в Android Studio. Это позволяет автоматически выделять ошибки в коде и учитывать версию.

Также проверьте, соответствует ли циферблат требованиям к использованию памяти, с помощью инструмента memory footprint.

Как создать набор App Bundle для приложения с циферблатом

Проще всего создавать и развертывать циферблаты с помощью Android Studio, в которой есть встроенная поддержка конфигураций запуска циферблатов. После того как вы нажмете кнопку Run (Запустить), Android Studio развернет циферблат на устройстве или эмуляторе и установит его в качестве активного.

Примеры циферблатов

Другие примеры проектов Watch Face Format можно найти на GitHub.