Zifferblatt-Push

Mit Wear OS 6 wird die neue API „Watch Face Push“ eingeführt, die Möglichkeiten für erweiterte Anwendungsfälle für die Veröffentlichung von Zifferblättern bietet.

Ermitteln, wann das Übertragen von Zifferblättern verwendet werden sollte

Watch Face Push ist eine API für Wear OS, mit der Entwickler Zifferblätter direkt hinzufügen, aktualisieren oder entfernen können. Für die Entwicklung von Standard-Zifferblättern ist sie nicht erforderlich.

Zifferblätter, die mit Watch Face Push verwendet werden, müssen mit dem Watch Face-Format erstellt werden. Dazu können Zifferblätter gehören, die mit Watch Face Designer, Watch Face Studio oder einem anderen Tool erstellt wurden, mit dem Zifferblätter im Watch Face-Format erstellt werden.

Die Watch Face Push API kann auf verschiedene Arten verwendet werden. In der folgenden Tabelle finden Sie die wichtigsten Anwendungsfälle:

Anwendungsfall Empfohlene Lösung Komplexität
Ich möchte individuelle Zifferblätter erstellen und veröffentlichen. Verwende das Watch Face-Format direkt oder über ein Tool wie Watch Face Designer oder Watch Face Studio und veröffentliche die Zifferblätter bei Google Play. Niedrig
Ich möchte eine Smartphone-App erstellen, mit der Nutzer Zifferblätter aus einer kuratierten Sammlung auswählen oder Zifferblätter entwerfen und anpassen können, die direkt auf ihrer Wear OS-Smartwatch installiert werden. Erstelle eine App für Smartwatch und Smartphone mit der Watch Face Push API auf der Smartwatch. Hoch

Zweck

Der kanonische Anwendungsfall für die Watch Face Push API ist die Entwicklung einer Marketplace-App. In dieser App können Nutzer auf ihrem Smartphone Zifferblätter aus einer kuratierten Sammlung auswählen und die Installation dieser Zifferblätter auf ihrer verbundenen Smartwatch direkt steuern.

Wissenswertes

Weitere Informationen zum Erstellen von Zifferblättern finden Sie in den Vorgaben für das Watch Face-Format. Zifferblätter, die mit Watch Face Push bereitgestellt werden, sind reguläre Zifferblätter im Watch Face-Format.

Beachten Sie beim Erstellen Ihres Zifferblatts die folgenden Punkte.

Paketnamen

Zifferblätter, die mit Watch Face Push installiert werden, müssen der folgenden Konvention entsprechen:

<app name>.watchfacepush.<watchface name>

… wobei <app name> der Paketname der App ist, die die Watch Face Push API aufruft.

Für eine App mit dem Paketnamen com.example.mymarketplace sind beispielsweise die folgenden Zifferblatt-Paketnamen gültig:

  • com.example.mymarketplace.watchfacepush.watchface1
  • com.example.mymarketplace.watchfacepush.watchface2
  • com.example.mymarketplace.watchfacepush.another_watchface

Die API lehnt Zifferblätter ab, die nicht dieser Konvention entsprechen.

Paketinhalt

Das System erzwingt die Einhaltung der APK-Inhalte. Es ist technisch möglich, APKs im Watch Face-Format zu erstellen, die harmlose Metadatendateien und andere Artefakte enthalten, die für Google Play akzeptabel sind, aber die Watch Face Push-Validierung (siehe unten) nicht bestehen.

Jedes Zifferblatt-APK darf nur die folgenden Dateien/Pfade enthalten:

  • /AndroidManifest.xml
  • /resources.arsc
  • /res/**
  • /META-INF/**

Außerdem darf die Datei AndroidManifest.xml nur die folgenden Tags enthalten:

  • <manifest>
  • <uses-feature>
  • <uses-sdk>
  • <application>
  • <property>
  • <meta-data>

Schließlich muss für das Paket ein minSdk von mindestens 33 angegeben werden und für das <application>-Tag muss das Attribut android:hasCode="false" angegeben werden.

Zertifizierungsstufe

Im Gegensatz zu regulären Zifferblättern, die über Google Play vertrieben werden, ist die Marketplace-App dafür verantwortlich, dass jedes Watch Face Push-Zifferblatt wohlgeformt und leistungsstark ist.

Bei Watch Face Push werden die folgenden Validierungsprüfungen verwendet, um die Qualität der einzelnen Zifferblätter zu überprüfen:

  1. Alle Zifferblätter, die über die Watch Face Push API installiert oder aktualisiert werden, müssen das Watch Face Push-Validierungstool bestehen.
  2. Verwenden Sie nur das offizielle Validierungstool, um Validierungstokens für die Verwendung mit der API zu generieren.
  3. Das Validierungstool muss auf dem neuesten Stand sein, wenn Sie die Validierung ausführen.
  4. Eine APK, die sich nicht geändert hat, muss nicht noch einmal validiert werden. Tokens laufen nicht ab, auch wenn die verwendete Version des Validierungstools ersetzt wird.

    Wir empfehlen Ihnen, die Validierung regelmäßig noch einmal auszuführen, da der Validator regelmäßig aktualisiert wird.

Tool zur Validierung ausführen

Der Validator ist in drei Formen verfügbar:

  • Ein CLI-Tool
  • Eine Bibliothek zur Verwendung mit der JVM
  • Eine Bibliothek zur Verwendung auf Android-Geräten

Verwendung des Befehlszeilenvalidators

  1. Sie können den Validator aus dem Maven-Repository von Google herunterladen.
  2. Führen Sie das Tool so aus:

    java -jar validator-push-cli-1.0.0-alpha07.jar \
        --apk_path=<your watch face>.apk \
        --package_name=<your marketplace package name>
    

    Bei Erfolg enthält die Ausgabe ein Bestätigungstoken, das Sie der Watch Face Push API beim Hinzufügen oder Aktualisieren einer Zifferblatt-App zur Verfügung stellen müssen.

    Wenn ein Fehler auftritt, enthält die Ausgabe Details dazu, welche Prüfung fehlgeschlagen ist.

Bibliotheksvalidator verwenden

  1. Fügen Sie die Google- und Jitpack-Repositories hinzu. Beide sind erforderlich, um die Validator-Bibliothek zu verwenden.

    repositories {
        ...
        google()
        maven {
            url = uri("https://jitpack.io")
            content {
                includeGroup("com.github.xgouchet")
            }
        }
    }
    
  2. Fügen Sie die Validator-Abhängigkeit in Ihr Projekt ein:

    // 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")
    
    
  3. Führen Sie den Validator aus:

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()}") // ... } }

Ein Beispiel für die Verwendung dieser Bibliothek finden Sie im GitHub-Beispiel. Weitere Informationen finden Sie auch in der Portable Asset Compiler Kit (Pack)-Bibliothek, die zum Erstellen von APKs auf dem Gerät zur Verwendung mit dem Android-basierten Validator nützlich ist.

APK-Größe

Achte bei Watch Face Push-Zifferblättern besonders darauf, die APK-Größe zu minimieren: Das Zifferblatt-APK wird wahrscheinlich über Bluetooth von der Smartphone-App an die Smartwatch-App übertragen, was langsam sein kann.

Die Übertragung einer zu großen APK kann viel Zeit in Anspruch nehmen, was sowohl die Nutzerfreundlichkeit beeinträchtigt als auch den Akku belastet.

  • Verwenden Sie geeignete Bibliotheken wie pngquant, um die Dateigröße von Bildern zu minimieren.
    • In den Prozess zum Erstellen von Zifferblättern einbeziehen
    • Prüfen Sie, ob die Abmessungen des Bildes für den Maßstab geeignet sind, in dem Sie es verwenden.
    • Bilder werden so zugeschnitten, dass der Hintergrund entfernt wird.
  • Schriftdateien verkleinern
    • Wenn Sie beispielsweise eine bestimmte Schriftart nur verwenden, um die Uhrzeit im Format HH:MM anzuzeigen, können Sie ein Tool wie pyftsubset verwenden, um die Schriftartdatei auf die erforderlichen Glyphen zu beschränken. Dadurch kann die Größe der resultierenden Schriftartdatei und APK erheblich reduziert werden. Weitere Informationen zum Minimieren der Schriftartdateigröße finden Sie in diesem Blogpost.

Weitere Vorschläge zur Minimierung der APK-Größe finden Sie im Leitfaden zur Optimierung der Speichernutzung.

APK-Signatur

Wie bei regulären APKs müssen Sie alle Ihre Zifferblätter signieren. Erstellen Sie einen anderen Schlüssel als den, den Sie für Ihre Haupt-App verwenden, und verwenden Sie diesen für alle Ihre Zifferblätter.

Architektur

Sehen Sie sich die vier Hauptkomponenten des Systems an:

  1. Cloudbasierter Speicher: In der kanonischen Marketplace-App erstellen und speichern Sie Ihre Zifferblätter in der Cloud, damit Ihre Nutzer sie verwenden können. Die Zifferblätter haben die folgenden Eigenschaften:
    1. Sie werden als reguläre APKs im Watch Face-Format vorab erstellt.
    2. Jedes APK enthält nur ein einziges Zifferblatt, das auf dem Watch Face-Format basiert.
    3. Sie werden mit dem Watch Face Push-Validierungsprozess validiert und mit dem zugehörigen Validierungstoken gespeichert.
    4. Ihre Telefon-App kann sie bei Bedarf abrufen.
  2. Telefon-App: Die Telefon-App ist die primäre Methode, mit der Ihre Nutzer mit Ihrem System interagieren. Dadurch können sie Folgendes tun:
    1. Zifferblätter ansehen und suchen
    2. Zifferblatt auf der Smartwatch installieren oder ersetzen
  3. Smartwatch-App: Die Smartwatch-App hat in der Regel keine umfangreiche Benutzeroberfläche. Sie dient hauptsächlich als Brücke zwischen der Smartphone-App und den Watch Face Push APIs und bietet die folgenden Funktionen:
    1. Zifferblätter mit der Watch Face Push API installieren, aktualisieren oder ersetzen
    2. Erforderliche Berechtigungen anfordern und Nutzer auffordern
    3. Standardzifferblatt bereitstellen
    4. Minimalen Cache für Zifferblätter bereitstellen
  4. Kommunikation zwischen Smartphone und Smartwatch: Die Kommunikation zwischen Smartphone und Smartwatch ist entscheidend für den Erfolg der gesamten Nutzung. Verwenden Sie die Wear OS Data Layer APIs, die Folgendes ermöglichen:
    1. Installationserkennung: Mithilfe von Capabilities und dem CapabilityClient kann die Smartphone-App das Fehlen der Smartwatch-App erkennen und umgekehrt. Anschließend können Sie einen Intent an den Play Store senden, um den fehlenden Formfaktor zu installieren.
    2. Statusverwaltung: Mit DataClient oder MessageClient wird das Smartphone mit dem Status der Smartwatch synchronisiert, z. B. mit dem Status des aktiven Zifferblatts.
    3. APK-Übertragung: Senden Sie APKs vom Smartphone zur Smartwatch über ChannelClient oder MessageClient.
    4. Remote-Aufruf: Mit Messageclient kann das Smartphone die Smartwatch anweisen, die Watch Face Push API aufzurufen, um beispielsweise ein Zifferblatt zu installieren.

Weitere Informationen finden Sie in der Anleitung zur Data Layer API.