Wear OS 6 wprowadza nowy interfejs API, Watch Face Push, który stwarza możliwości bardziej zaawansowanych przypadków użycia publikowania tarcz zegarka.
Kiedy warto używać powiadomień push na tarczy zegarka
Watch Face Push to interfejs API na Wear OS, który umożliwia programistom bezpośrednie dodawanie, aktualizowanie i usuwanie tarcz zegarka. Nie jest to wymagane w przypadku tworzenia standardowych tarcz zegarka.
Tarcze zegarka używane z powiadomieniami push na tarczy zegarka muszą być napisane w Formacie tarczy zegarka. Mogą to być tarcze zegarka zaprojektowane przy użyciu narzędzia Watch Face Designer, Watch Face Studio lub innego narzędzia, które tworzy tarcze zegarka korzystające z formatu tarczy zegarka.
Interfejs Watch Face Push API może być używany na wiele sposobów, ale w tej tabeli znajdziesz główne przypadki użycia:
Przypadek użycia | Zalecane rozwiązanie | Złożoność |
---|---|---|
Chcę tworzyć i publikować poszczególne tarcze zegarka. | Używaj formatu tarczy zegarka bezpośrednio lub za pomocą narzędzia takiego jak Watch Face Designer lub Watch Face Studio i publikuj je w Google Play. | Niska |
Chcę utworzyć aplikację na telefon, która umożliwi użytkownikom wybieranie tarcz zegarka z wyselekcjonowanej kolekcji lub projektowanie i dostosowywanie tarcz do instalacji bezpośrednio na zegarku z Wear OS. | Utwórz aplikację na zegarek i telefon, korzystając z interfejsu Watch Face Push API na zegarku. | Wysoki |
Cel
Typowym przypadkiem użycia interfejsu Watch Face Push API jest tworzenie aplikacji na platformę handlową. Użytkownicy mogą w niej wybierać tarcze zegarka z wyselekcjonowanej kolekcji na telefonie i bezpośrednio kontrolować instalację tych tarcz na połączonym zegarku.
co należy wziąć pod uwagę
Szczegółowe informacje o tworzeniu tarcz zegarka znajdziesz w wytycznych dotyczących formatu tarczy zegarka. Tarcze zegarka wdrażane za pomocą powiadomień push na tarczy zegarka to zwykłe tarcze zegarka w formacie tarczy zegarka.
Podczas tworzenia tarczy zegarka pamiętaj o tych kwestiach.
Nazwy pakietów
Tarcze zegarka zainstalowane za pomocą powiadomień push na tarczy zegarka muszą być zgodne z tą konwencją:
<app name>.watchfacepush.<watchface name>
… gdzie <app name>
to nazwa pakietu aplikacji wywołującej interfejs Watch Face
Push API.
Na przykład w przypadku aplikacji o nazwie pakietu com.example.mymarketplace
prawidłowe nazwy pakietów tarcz zegarka to:
com.example.mymarketplace.watchfacepush.watchface1
com.example.mymarketplace.watchfacepush.watchface2
com.example.mymarketplace.watchfacepush.another_watchface
Interfejs API odrzuca tarcze zegarka, które nie są zgodne z tą konwencją.
Zawartość pakietu
System ściśle egzekwuje zawartość pliku APK. Technicznie możliwe jest tworzenie plików APK w formacie tarczy zegarka, które zawierają nieszkodliwe pliki metadanych i inne artefakty. Mogą one być akceptowane w Google Play, ale nie przechodzą weryfikacji tarczy zegarka (patrz poniżej).
Każdy plik APK tarczy zegarka musi zawierać tylko te pliki lub ścieżki:
/AndroidManifest.xml
/resources.arsc
/res/**
/META-INF/**
Dodatkowo plik AndroidManifest.xml
musi zawierać tylko te tagi:
<manifest>
<uses-feature>
<uses-sdk>
<application>
<property>
<meta-data>
Na koniec pakiet musi określać minSdk
o wartości co najmniej 33
, a tag <application>
musi określać atrybut android:hasCode="false"
.
Weryfikacja
W przeciwieństwie do zwykłych tarcz zegarka rozpowszechnianych w Google Play aplikacja Marketplace odpowiada za weryfikację, czy każda tarcza zegarka Watch Face Push jest prawidłowo sformatowana i wydajna.
Funkcja przesyłania tarcz zegarka korzysta z tych testów weryfikacyjnych, aby sprawdzić jakość każdej tarczy:
- Wszystkie tarcze zegarka zainstalowane lub zaktualizowane za pomocą interfejsu Watch Face Push API muszą przejść weryfikację za pomocą narzędzia do weryfikacji Watch Face Push.
- Do generowania tokenów weryfikacji do użytku z interfejsem API używaj tylko oficjalnego narzędzia do weryfikacji.
- Podczas przeprowadzania weryfikacji narzędzie musi być aktualne.
Nie musisz ponownie weryfikować pakietu APK, który nie został zmieniony. Tokeny nie wygasają, nawet gdy używana wersja narzędzia weryfikacyjnego zostanie zastąpiona nowszą.
Jednocześnie zalecamy okresowe ponowne uruchamianie weryfikacji, ponieważ weryfikator jest okresowo aktualizowany.
Uruchamianie walidatora
Weryfikator jest dostępny w 3 formach:
- Narzędzie CLI
- Biblioteka do użytku z JVM
- Biblioteka do użytku na Androidzie
Korzystanie z walidatora wiersza poleceń
- Pobierz walidator z repozytorium Maven Google.
Uruchom narzędzie w ten sposób:
java -jar validator-push-cli-1.0.0-alpha07.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>
Jeśli operacja się powiedzie, w danych wyjściowych pojawi się token weryfikacyjny, który musisz podać w interfejsie Watch Face Push API podczas dodawania lub aktualizowania tarczy zegarka.
Jeśli wystąpi błąd, w wyniku pojawią się szczegółowe informacje o tym, która konkretna kontrola się nie powiodła.
Korzystanie z walidatora biblioteki
Uwzględnij repozytoria Google i Jitpack. Oba są wymagane do korzystania z biblioteki weryfikatora.
repositories { ... google() maven { url = uri("https://jitpack.io") content { includeGroup("com.github.xgouchet") } } }
Dodaj do projektu zależność walidatora:
// For use on JVM implementation("com.google.android.wearable.watchface.validator:validator-push:1.0.0-alpha07") // For use on Android implementation("com.google.android.wearable.watchface.validator:validator-push-android:1.0.0-alpha07")
Uruchom walidator:
val validator = DwfValidatorFactory.create() val result = validator.validate(watchFaceFile, appPackageName) if (result.failures().isEmpty()) { val token = result.validationToken() println("Validation token: $token") // Validation success - continue with the token // ... } else { // There were failures, handle them accordingly - validation has failed. result.failures().forEach { failure -> println("FAILURE: ${failure.name()}: ${failure.failureMessage()}") // ... } }
Przykład użycia tej biblioteki znajdziesz w przykładzie na GitHubie. Zapoznaj się też z biblioteką Portable Asset Compiler Kit (Pack), która jest przydatna do tworzenia plików APK na urządzeniu do użytku z walidatorem opartym na Androidzie.
Rozmiar pliku APK
Zwróć szczególną uwagę na tarcze zegarka typu Watch Face Push, aby zminimalizować rozmiar pliku APK: plik APK tarczy zegarka jest prawdopodobnie przesyłany z aplikacji na telefon na aplikację na zegarek przez Bluetooth, co może być powolne.
Zbyt duży plik APK może być przesyłany przez długi czas, co pogarsza wrażenia użytkowników i wyczerpuje baterię.
- Używaj odpowiednich bibliotek, np.
pngquant
, aby zminimalizować rozmiar plików graficznych.- Uwzględnij to w procesie tworzenia kolekcji tarcz zegarka
- Sprawdź, czy wymiary obrazu są odpowiednie do skali, w jakiej go używasz.
- Przytnij obrazy, aby usunąć tło.
- Zmniejsz rozmiar plików czcionek
- Jeśli na przykład używasz określonej czcionki tylko do wyświetlania czasu w formacie
HH:MM
, możesz użyć narzędzia takiego jakpyftsubset
, aby ograniczyć plik czcionki tylko do niezbędnych znaków. Może to znacznie zmniejszyć rozmiar wynikowego pliku czcionki i pliku APK. Więcej informacji o minimalizowaniu rozmiaru pliku czcionki znajdziesz w tym poście na blogu.
- Jeśli na przykład używasz określonej czcionki tylko do wyświetlania czasu w formacie
Więcej sugestii dotyczących minimalizowania rozmiaru pliku APK znajdziesz w wskazówkach dotyczących optymalizacji wykorzystania pamięci.
Podpisywanie plików APK
Wszystkie tarcze zegarka musisz podpisać jako zwykły plik APK. Utwórz inny klucz niż ten, którego używasz w głównej aplikacji, i używaj go do wszystkich tarcz zegarka.
Architektura
Weź pod uwagę 4 główne komponenty systemu:
- Miejsce w chmurze: w kanonicznej aplikacji na platformę handlową tworzysz i przechowujesz tarcze zegara w chmurze, aby użytkownicy mogli z nich korzystać. Tarcze zegarka mają te właściwości:
- Są one wstępnie utworzone jako zwykłe pakiety APK w formacie tarczy zegarka.
- Każdy pakiet APK zawiera tylko jedną tarczę zegarka opartą na formacie tarczy zegarka.
- Są one weryfikowane w procesie weryfikacji wysyłania tarcz zegarka i przechowywane z powiązanym tokenem weryfikacji.
- Aplikacja Telefon może je w razie potrzeby pobrać.
- Aplikacja Telefon: aplikacja Telefon to główny sposób, w jaki użytkownicy wchodzą w interakcję z Twoim systemem. Umożliwia to:
- Przeglądanie i wyszukiwanie katalogu tarcz zegarka
- Instalowanie i wymienianie tarczy zegarka
- Aplikacja na zegarek: aplikacja na zegarek zwykle nie ma rozbudowanego interfejsu użytkownika. Jest to przede wszystkim pomost między aplikacją na telefon a interfejsami API Push do tarcz zegarka. Oferuje te funkcje:
- Używanie interfejsu Watch Face Push API do instalowania, aktualizowania lub zastępowania tarcz zegarka
- Wyświetlanie prośby o przyznanie niezbędnych uprawnień
- Dostarczanie domyślnej tarczy zegarka
- zapewniać minimalną pamięć podręczną tarcz zegarka;
- Komunikacja między telefonem a zegarkiem: komunikacja między aplikacją na telefonie a aplikacją na zegarku ma kluczowe znaczenie dla ogólnego komfortu użytkowania. Korzystaj z interfejsów Data Layer API na Wear OS, które umożliwiają:
- Wykrywanie instalacji: za pomocą interfejsów API i
CapabilityClient
aplikacja na telefon może wykrywać brak aplikacji na zegarek i odwrotnie. Następnie możesz wysłać intencję do Sklepu Play, aby zainstalować brakujący format. - Zarządzanie stanem: za pomocą
DataClient
lubMessageClient
możesz synchronizować telefon ze stanem zegarka, np. stanem aktywnej tarczy. - Przesyłanie plików APK: za pomocą
ChannelClient
lubMessageClient
przesyłaj pliki APK z telefonu na zegarek. - Zdalne wywoływanie: za pomocą
Messageclient
telefon może wydać zegarkowi polecenie wywołania interfejsu Watch Face Push API, np. w celu zainstalowania tarczy zegarka.
- Wykrywanie instalacji: za pomocą interfejsów API i
Więcej informacji znajdziesz w przewodniku po interfejsie Data Layer API.