Wear OS 6 wprowadza nowy interfejs API, Watch Face Push, który umożliwia bardziej zaawansowane publikowanie tarcz zegarka.
Kiedy warto używać powiadomień push na tarczy zegarka
Watch Face Push to interfejs API na Wear OS, który umożliwia programiście dodawanie, aktualizowanie i usuwanie tarcz bezpośrednio na zegarku. Nie jest wymagany w przypadku tworzenia standardowych tarcz zegarka.
Tarcze zegarka używane z powiadomieniami push na tarczy zegarka muszą być napisane w Formacie tarczy zegarka. Może to obejmować tarcze zegarka zaprojektowane za pomocą Watch Face Studio lub innego narzędzia, które tworzy tarcze zegarka korzystające z Formatu tarczy zegarka.
Interfejs Watch Face Push API można potencjalnie wykorzystywać na wiele sposobów. W przypadku głównych przypadków użycia należy jednak kierować się poniższą tabelą:
Przypadek użycia | Zalecane rozwiązanie | Złożoność |
---|---|---|
Chcę tworzyć pojedyncze tarcze zegarka i je publikować. | Użyj formatu tarczy zegarka bezpośrednio lub za pomocą narzędzia takiego jak Watch Face Studio i opublikuj tarcze w Google Play. | Niska |
Chcę utworzyć aplikację na telefon, która pozwoli użytkownikom wybierać tarcze zegarka z wyselekcjonowanej kolekcji lub projektować i dostosowywać tarcze do zainstalowania bezpośrednio na zegarku z systemem Wear OS. | Utwórz aplikację na zegarek i telefon, korzystając z interfejsu Watch Face Push API na zegarku. | Wysoki |
Cel
Typowym zastosowaniem interfejsu API Watch Face Push jest tworzenie aplikacji Marketplace. W tej aplikacji użytkownicy mogą wybierać tarcze zegarka z wyselekcjonowanej kolekcji na telefonie i bezpośrednio kontrolować ich instalację na połączonym zegarku.
co należy wziąć pod uwagę
Szczegółowe informacje o tworzeniu tarcz zegarka znajdziesz w Formatzie tarczy zegarka. Tarcze zegarka wdrażane za pomocą powiadomień push na tarczy zegarka są zwykłymi tarczami zegarka w formacie tarczy zegarka.
Podczas tworzenia tarczy zegarka pamiętaj o tych kwestiach.
nazwy pakietów,
Tarcze zegarka instalowane za pomocą powiadomień push muszą być zgodne z tymi zasadami:
<app name>.watchfacepush.<watchface name>
... gdzie <app name>
to nazwa pakietu aplikacji wywołującej interfejs Push API dla tarcz zegarka.
Na przykład w przypadku aplikacji o nazwie pakietu com.example.mymarketplace
prawidłowe nazwy pakietów tarczy zegarka to:
com.example.mymarketplace.watchfacepush.watchface1
com.example.mymarketplace.watchfacepush.watchface2
com.example.mymarketplace.watchfacepush.another_watchface
Tarcze zegarka, które nie są zgodne z tą konwencją, są odrzucane przez interfejs API.
Zawartość pakietu
Zawartość pliku APK jest ściśle egzekwowana. Należy zachować ostrożność, aby Format tarczy zegarka był zgodny z tymi ograniczeniami: technicznie możliwe jest wygenerowanie plików APK Formatu tarczy zegarka, które zawierają nieszkodliwe pliki metadanych i inne artefakty, które mogą być akceptowane przez Google Play, ale nie przechodzą weryfikacji Push tarczy zegarka (patrz poniżej).
W pliku APK tarczy zegarka mogą się znajdować tylko te pliki i ścieżki:
/AndroidManifest.xml
/resources.arsc
/res/**
/META-INF/**
Dodatkowo w pliku AndroidManifest.xml
dozwolone są tylko te tagi:
<manifest>
<uses-feature>
<uses-sdk>
<application>
<property>
<meta-data>
Na koniec pakiet powinien określać wartość minSdk
co najmniej 33
, a tag <application>
powinien określać atrybut android:hasCode="false"
.
Weryfikacja
W przeciwieństwie do standardowych tarcz rozpowszechnianych w Google Play, w przypadku tarcz przesyłanych przez Internet sprawdzanie, czy każda tarcza jest prawidłowo sformatowana i czy działa prawidłowo, jest obowiązkiem aplikacji Marketplace.
Google Play używa tych mechanizmów weryfikacji, aby sprawdzić jakość każdej tarczy zegarka, która korzysta z push-u tarczy zegarka:
- 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 na potrzeby interfejsu API można używać tylko oficjalnego narzędzia do weryfikacji.
- Używane narzędzie do sprawdzania musi być aktualne w momencie przeprowadzania weryfikacji.
Nie musisz ponownie weryfikować pakietu APK, który nie uległ zmianie. Tokeny nie wygasają, nawet jeśli wersja używanego narzędzia do sprawdzania została zastąpiona.
Jednocześnie zalecamy okresowe ponowne przeprowadzanie weryfikacji, ponieważ walidator jest okresowo aktualizowany.
Uruchamianie walidatora
Walidator jest dostępny jako narzędzie CLI i jako biblioteka.
Korzystanie z walidatora w wierszu poleceń
- Pobierz walidator z repozytorium Maven Google.
Uruchom narzędzie w ten sposób:
java -jar validator-push-cli-1.0.0-alpha03.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>
Jeśli operacja zakończy się powodzeniem, dane wyjściowe będą zawierać token weryfikacyjny, który musisz podać interfejsowi Watch Face Push API podczas dodawania lub aktualizowania tarczy zegarka.
Jeśli wystąpi błąd, dane wyjściowe będą zawierać informacje o tym, która konkretna kontrola się nie powiodła.
Korzystanie z walidatora biblioteki
Dodaj repozytorium Jitpack, które jest wymagane dla zależności weryfikatora:
repositories { ... maven { url = uri("https://jitpack.io") content { includeGroup("com.github.xgouchet") } } }
Dodaj do projektu zależność walidatora:
// Check for the latest version implementation("com.google.android.wearable.watchface.validator:1.0.0-alpha03")
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ładowym repozytorium na GitHubie.
Rozmiar pliku APK
Należy zachować szczególną ostrożność w przypadku tarcz zegara przesyłanych przez Watch Face Push. Pamiętaj, aby rozmiar pliku APK był jak najmniejszy. Plik APK tarczy zegarka jest zwykle przesyłany z aplikacji na telefonie do aplikacji na zegarku przez Bluetooth, co może być powolne.
Przesyłanie zbyt dużego pliku APK może zająć sporo czasu, co spowoduje nie tylko nieprzyjemne wrażenia użytkownika, ale też zużycie baterii.
- Aby zminimalizować rozmiary plików z obrazami, używaj odpowiednich bibliotek, takich jak
pngquant
.- Uwzględnij to w procesie tworzenia kolekcji tarcz zegarka
- Sprawdź, czy wymiary obrazu są odpowiednie do skali, w której będzie on używany.
- Upewnij się, że obrazy są odpowiednio przycięte, 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 do zawierania tylko niezbędnych znaków. Może to znacznie zmniejszyć rozmiar 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 we wskazówkach dotyczących optymalizacji wykorzystania pamięci.
Podpisywanie pliku APK
Podobnie jak w przypadku zwykłych plików APK, wszystkie tarcze zegarka muszą być podpisane. Utwórz inny klucz niż ten używany w głównej aplikacji i używaj go do wszystkich tarcz zegarka.
Architektura
Oto 3 główne elementy systemu:
- Przechowywanie w chmurze: w kanonicznej aplikacji Marketplace tarcze zegara są tworzone i przechowywane w chmurze, aby użytkownicy mogli z nich korzystać. Tarcze zegarka:
- wstępnie utworzone jako zwykłe pliki APK tarczy zegarka;
- Każdy z nich zawiera tylko jedną tarczę zegarka w formacie tarczy zegarka.
- zostały potwierdzone za pomocą procesu weryfikacji tarczy zegarka i są przechowywane wraz z powiązanym tokenem weryfikacji;
- są gotowe do pobrania przez aplikację na telefonie, gdy zajdzie taka potrzeba.
- Aplikacja telefoniczna: aplikacja telefoniczna to główny sposób, w jaki użytkownicy wchodzą w interakcję z Twoim systemem. Dzięki temu mogą oni:
- Przeglądanie i przeszukiwanie katalogu tarcz
- Instalowanie lub zastępowanie tarczy zegarka
- Aplikacja na zegarek: aplikacja na zegarku może nie mieć znaczącego interfejsu użytkownika. Jest to przede wszystkim łącznik między aplikacją na telefonie a interfejsami API Push dotyczącego tarczy zegarka. Oferuje te funkcje:
- Instalowanie, aktualizowanie i zastępowanie tarcz zegarka za pomocą interfejsu Watch Face Push API
- Prośba o wymagane uprawnienia i wyświetlenie odpowiedniego komunikatu dla użytkownika
- Dostarczanie domyślnej tarczy zegarka
- Zapisywanie w minimalnej pamięci podręcznej minimalnej liczby tarcz zegarka
- Komunikacja między telefonem a zegarkiem: komunikacja między aplikacją na telefon a aplikacją na zegarek jest kluczowa dla ogólnego komfortu użytkowania. Używaj interfejsów API warstwy danych Wear OS, które umożliwiają:
- Wykrywanie instalacji: dzięki funkcjom i
CapabilityClient
aplikacja na telefonie może wykrywać brak aplikacji na zegarku i na odwrót. Następnie można uruchomić w Sklepie Play odpowiednią intencję, aby zainstalować brakujący format. - Zarządzanie stanem: za pomocą
DataClient
lubMessageClient
telefon może być synchronizowany ze stanem zegarka, na przykład tak, aby telefon wiedział, która tarcza zegarka jest ustawiona. - Przesyłanie pakietów APK: za pomocą
ChannelClient
lubMessageClient
można wysyłać pliki APK z telefonu na zegarek. - Wywoływanie z dalsza: za pomocą interfejsu
Messageclient
telefon może zlecić zegarkowi wywołanie interfejsu Watch Face Push API, na przykład w celu zainstalowania tarczy zegarka.
- Wykrywanie instalacji: dzięki funkcjom i
Więcej informacji znajdziesz w wytycznych dotyczących interfejsu API warstwy danych.