Konfiguracja formatu tarczy zegarka

Uwaga: na tej stronie znajdziesz jeden z etapów procesu ręcznego zarządzania konfiguracją tarczy zegarka. Jeśli chcesz zaprojektować tarczę zegarka za pomocą narzędzia WYSIWYG (what you see is what you get), najpierw zapoznaj się z przewodnikami po Watch Face Studio.

Ten przewodnik zawiera informacje o narzędziach potrzebnych do skonfigurowania tarczy zegarka za pomocą Formatu tarczy zegarka, kilka sugestii dotyczących struktury projektu oraz szczegółowe instrukcje stosowania narzędzi do tworzenia tej struktury.

Pierwsze kroki z Androidem Studio

Najłatwiejszym sposobem na rozpoczęcie ręcznego tworzenia tarcz zegarka jest użycie Android Studio. Obsługa tarcz zegarka jest dostępna na kanale Canary.

  1. Kliknij Plik > Nowy projekt.
  2. W sekcji Wear OS wybierz Podstawowa tarcza zegarka.

W ten sposób tworzysz niezbędną strukturę w pełni funkcjonalnej tarczy zegarka.

Struktura projektu

Gdy tworzysz niestandardową tarczę zegarka korzystającą z Formatu tarczy zegarka, pakiet Android App Bundle zawierający plik niestandardowej tarczy zegarka musi być całkowicie oddzielony od pakietu Android App Bundle zawierającego logikę aplikacji na Wear OS. Niektóre sklepy z aplikacjami, w tym Google Play, uniemożliwiają przesyłanie pakietu Android App Bundle, który zawiera zarówno logikę Wear OS, jak i niestandardową tarczę zegarka.

Deklarowanie wersji formatu tarczy zegarka

W pliku manifestu nowej aplikacji (AndroidManifest.xml) sprawdź właściwość application, która wskazuje, że używasz Formatu tarczy zegarka.

Niektóre funkcje formatu tarczy zegarka są dostępne tylko w nowszych wersjach. Ustaw tę właściwość na najniższą wartość, która obsługuje potrzebne Ci funkcje, aby zmaksymalizować zgodność urządzenia, a także ustaw pasującą wartość minSdkVersion. Dowiedz się więcej o konfigurowaniu wersji aplikacji.

<manifest ...>
    <!--
        Use SDK version 33 to support Watch Face Format (WFF) version 1 and
        higher, SDK version 34 to support WFF version 2 and higher, and so on.
    -->
    <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>

Deklarowanie metadanych tarczy zegarka

W katalogu zasobów res/xml aplikacji znajduje się plik o nazwie watch_face_info.xml. W tym miejscu możesz zdefiniować metadane tarczy zegarka:

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

Pola w tym pliku zawierają te informacje:

Preview
Odwołuje się do elementu rysowalnego, który zawiera obraz podglądu tarczy zegarka.
Category

Określa kategorię tarczy zegarka. Musi to być ciąg znaków lub odwołanie do ciągu znaków, np. @string/ref_name. Każdy producent urządzeń może zdefiniować własny zestaw kategorii tarcz zegarka.

Wartość domyślna: empty_category_meta, która grupuje tę tarczę zegarka z innymi tarczami z „pustej kategorii” u dołu widoku selektora tarcz zegarka.

AvailableInRetail

Czy tarcza zegarka jest dostępna w trybie demo dla sklepów na urządzeniu. Musi to być wartość logiczna lub odwołanie do wartości logicznej, np. @bool/watch_face_available_in_retail.

Wartość domyślna: false

MultipleInstancesAllowed

Określa, czy tarcza zegarka może mieć wiele ulubionych. Musi to być wartość logiczna lub odwołanie do wartości logicznej, np. @bool/watch_face_multiple_instances_allowed.

Wartość domyślna: false

Editable

czy tarcza zegarka jest edytowalna, co oznacza, że ma ustawienie lub co najmniej 1 niezmienny widżet; Służy do wyświetlania lub ukrywania przycisku Edytuj na liście ulubionych tarcz zegarka.

Wartość domyślna: false

Deklarowanie nazwy tarczy zegarka

W pliku manifestu aplikacji (AndroidManifest.xml) ustaw atrybut android:label na nazwę tarczy zegarka:

<application android:label="@string/watch_face_name" >

Deklarowanie szczegółów tarczy zegarka

Struktura podstawowego dokumentu tarczy zegarka w formacie WFF jest następująca:

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

Szablon Android Studio zawiera podstawowy dokument w res/raw/watchface.xml. Aby obsługiwać różne kształty i rozmiary ekranów, zadeklaruj obsługę wielu kształtów i rozmiarów.

Elementem głównym jest zawsze WatchFace. Wartości heightwidth określają zakres przestrzeni współrzędnych do użycia na tarczy zegarka, a tarcza zegarka jest skalowana tak, aby pasowała do urządzenia, na którym jest używana. Wartości heightwidth nie reprezentują rzeczywistych pikseli.

Format tarczy zegarka zawiera kilka szczegółów dotyczących tarczy zegarka:

  • Metadane, takie jak godzina i liczba kroków widoczne na obrazie podglądu tarczy zegarka.
  • Konfiguracje użytkownika, takie jak różne motywy kolorystyczne tarczy zegarka, elementy, które użytkownik może włączać i wyłączać, oraz wybór spośród kilku elementów. Wersja 2 formatu tarczy zegarka wprowadza warianty, które mogą pojawiać się w konfiguracji użytkownika. Każda wersja określa gotową konfigurację użytkownika, która zawiera typ i styl elementów wyświetlanych z godziną na tarczy zegarka. Te gotowe ustawienia ułatwiają tworzenie grup elementów, które są atrakcyjne wizualnie. W aplikacji towarzyszącej Wear OS użytkownicy widzą różne wersje tarczy zegarka w przewijanym wierszu.
  • Scena zawierająca elementy wizualne tarczy zegarka. Elementy, które pojawiają się bliżej końca sceny, są wyświetlane nad innymi elementami, więc typowa kolejność jest następująca:
    • wskazówki zegara analogowego lub tekst zegara cyfrowego;
    • komplikacje, które wyświetlają dodatkowe informacje, takie jak dzień tygodnia lub liczba kroków użytkownika;
    • inne grafiki, które uatrakcyjniają lub dekorują tarczę zegarka, np. obraz obozowiska;
  • Grupy elementów, które umożliwiają modyfikowanie wielu elementów jednocześnie. W scenie możesz tworzyć warianty tych grup, co pozwala selektywnie ukrywać lub modyfikować treści, gdy system przechodzi w tryb otoczenia oszczędzający energię.

Atrybuty są ściśle określone i mają wytyczne dotyczące częstotliwości i prawidłowych wartości, co pozwala uniknąć większości źródeł błędów podczas tworzenia tarczy zegarka.

Deklarowanie obsługi kształtów tarcz zegarka (opcjonalnie)

Ten krok jest konieczny tylko wtedy, gdy chcesz obsługiwać różne zachowania w przypadku różnych rozmiarów tarcz zegarka. Możesz pominąć ten krok, jeśli chcesz, aby tarcza zegara była skalowana do rozmiaru zegarka.

W katalogu zasobów res/xml aplikacji zadeklaruj zestaw kształtów tarczy zegarka, które obsługujesz, w 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"/>
<WatchFaces>

Następnie określ wygląd i działanie tarczy zegarka dla każdego kształtu tarczy. Jeśli nie zdefiniujesz pliku kształtów, potrzebujesz tylko 1 pliku,watchface.xml.

Korzystając z przykładu z tej sekcji, surowe pliki XML będą wyglądać tak:

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

Identyfikowanie wydawcy tarczy zegara (opcjonalnie)

Opcjonalnie w pliku manifestu aplikacji zadeklaruj dowolny ciąg znaków, którego możesz użyć do identyfikacji wydawcy tarczy zegarka lub nazwy i wersji narzędzia, którego używasz:

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

Sprawdzanie poprawności i wydajności tarczy zegarka

Podczas tworzenia tarczy zegarka i przed przesłaniem jej do Google Play sprawdź, czy nie zawiera błędów składniowych, korzystając z wbudowanej w Android Studio funkcji weryfikacji formatu tarczy zegarka. Automatycznie wyróżnia błędy w kodzie i uwzględnia wersję.

Sprawdź też, czy tarcza zegarka spełnia wymagania dotyczące wykorzystania pamięci, uruchamiając narzędzie memory footprint (ślad pamięci).

Tworzenie pakietu aplikacji z tarczami zegarka

Najłatwiejszym sposobem tworzenia i wdrażania tarczy zegarka jest użycie Androida Studio, który ma wbudowaną obsługę konfiguracji uruchamiania tarczy zegarka. Po kliknięciu przycisku Uruchom Android Studio wdraża tarczę zegarka na urządzeniu lub emulatorze i ustawia ją jako aktywną tarczę.

Przykładowe tarcze zegarka

Więcej przykładów projektów w formacie tarczy zegarka znajdziesz na GitHubie.