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.
- Kliknij Plik > Nowy projekt.
- 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.
CategoryOkreś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.AvailableInRetailCzy 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:
falseMultipleInstancesAllowedOkreś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:
falseEditableczy 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 height i width 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 height i width 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.xmlres/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).
- Dowiedz się więcej o optymalizacji wykorzystania pamięci i sprawdzaniu wykorzystania pamięci w ramach przygotowań do publikacji.
- Dowiedz się więcej o korzystaniu z walidatora XML w ramach cyklu rozwoju.
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.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- AAPT2
- Podstawy Jetpack Compose
- Pierwsze kroki z CameraX