Tarcze zegarka przesyłane dynamicznym ładowaniem

Wear OS 6 wprowadza nowy interfejs API, Watch Face Push, który umożliwia bardziej zaawansowane publikowanie tarcz zegarka.

Kiedy warto używać przesyłania 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 Push tarczy zegarka muszą być napisane w Formacie tarczy zegarka. Mogą to być 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 tabeli poniżej znajdziesz wskazówki dotyczące głównych zastosowań:

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 instrukcji dotyczącej Formatu tarczy zegarka. Tarcze zegarka wdrażane za pomocą funkcji Watch Face Push to zwykłe tarcze zegarka w formacie tarczy zegarka.

Tworząc tarczę zegarka, weź pod uwagę te kwestie.

nazwy pakietów,

Tarcze zegarka instalowane za pomocą funkcji Watch Face Push muszą być zgodne z tymi konwencjami:

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

  1. 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.
  2. Do generowania tokenów weryfikacji na potrzeby interfejsu API można używać tylko oficjalnego narzędzia do weryfikacji.
  3. Używane narzędzie do sprawdzania musi być aktualne w momencie przeprowadzania weryfikacji.
  4. Nie musisz ponownie sprawdzać 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

Aby uruchomić narzędzie weryfikujące na pliku APK tarczy zegarka:

  1. Pobierz walidator z repozytorium Maven Google.
  2. Uruchom narzędzie w ten sposób:

    java -jar validator-push-cli-1.0.0-alpha01.jar \
        --apk_path=youwatchface.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.

    Przykład włączenia narzędzia wiersza poleceń validator w ramach kompilacji Gradle znajdziesz na GitHubie w pliku Watch Face Push sample.

Rozmiar pliku APK

Szczególną uwagę należy zwrócić na tarcze zegara przesyłane 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 zegar 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 jak pyftsubset, 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.

Więcej sugestii dotyczących minimalizowania rozmiaru pliku APK znajdziesz w 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:

  1. Przechowywanie w chmurze: w kanonicznej aplikacji Marketplace tarcze zegara są tworzone i przechowywane w chmurze, aby użytkownicy mogli z nich korzystać. Tarcze zegarka:
    1. wstępnie utworzone jako zwykłe pliki APK tarczy zegarka;
    2. Każdy z nich zawiera tylko jedną tarczę zegarka w formacie tarczy zegarka.
    3. zostały potwierdzone za pomocą procesu weryfikacji przesyłania tarczy zegarka i są przechowywane wraz z powiązanym tokenem weryfikacji;
    4. są gotowe do pobrania przez aplikację na telefonie, gdy zajdzie taka potrzeba.
  2. Aplikacja telefoniczna: aplikacja telefoniczna to główny sposób, w jaki użytkownicy wchodzą w interakcję z Twoim systemem. Dzięki temu mogą oni:
    1. Przeglądanie i przeszukiwanie katalogu tarcz
    2. Instalowanie lub zastępowanie tarczy zegarka
  3. 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:
    1. Instalowanie, aktualizowanie i zastępowanie tarcz zegarka za pomocą interfejsu Watch Face Push API
    2. Prośba o wymagane uprawnienia i wyświetlenie odpowiedniego komunikatu dla użytkownika
    3. Dostarczanie domyślnej tarczy zegarka
    4. Zapisywanie w minimalnej pamięci podręcznej minimalnej liczby tarcz zegarka
  4. Komunikacja między telefonem a zegarkiem: komunikacja między aplikacją na telefon a aplikacją na zegarek jest kluczowa dla powodzenia całego procesu. Używaj interfejsów API warstwy danych Wear OS, które umożliwiają:
    1. 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.
    2. Zarządzanie stanem: za pomocą DataClient lub MessageClient telefon może być synchronizowany ze stanem zegarka, na przykład tak, aby telefon wiedział, która tarcza zegarka jest ustawiona.
    3. Przesyłanie pakietów APK: za pomocą ChannelClient lub MessageClient można wysyłać pliki APK z telefonu na zegarek.
    4. Wywoływanie z dalsza: za pomocą Messageclient telefon może zlecić zegarkowi wywołanie interfejsu Watch Face Push API, na przykład w celu zainstalowania tarczy zegarka.

Więcej informacji znajdziesz w wytycznych dotyczących interfejsu API warstwy danych.