Zifferblatt-Push

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

Wann sollte die Watch Face Push API verwendet werden?

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, das Zifferblätter im Watch Face-Format erzeugt.

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. Tief
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. Über diese 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 der Dokumentation zum Watch Face-Format. Zifferblätter, die mit Watch Face Push bereitgestellt werden, sind normale Zifferblätter im Watch Face-Format.

Beachten Sie beim Erstellen Ihres Zifferblatts die folgenden Hinweise.

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 eine 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. Rufen Sie den Validator aus dem Maven-Repository von Google ab.
  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 Uhranzeige 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 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 Push-Zifferblättern besonders darauf, die APK-Größe zu minimieren, da das Zifferblatt-APK wahrscheinlich über Bluetooth von der Smartphone-App zur Smartwatch-App übertragen wird, was langsam sein kann.

Die Übertragung einer zu großen APK kann viel Zeit in Anspruch nehmen, was sich negativ auf die Nutzerfreundlichkeit auswirkt und 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 die Skalierung geeignet sind, in der Sie es verwenden.
    • Bilder werden so zugeschnitten, dass der umgebende Hintergrund entfernt wird.
  • Schriftdateien verkleinern

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 anderen Schlüssel für alle Ihre Zifferblätter.

Architektur

Berücksichtigen Sie die vier Hauptkomponenten des Systems:

  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 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. Zifferblattkatalog durchsuchen
    2. Zifferblatt auf der Smartwatch installieren oder ersetzen
  3. Smartwatch-App: Die Smartwatch-App hat in der Regel keine umfangreiche Benutzeroberfläche. Sie dient in erster Linie 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 Nutzererfahrung. Verwenden Sie die Wear OS Data Layer APIs, die Folgendes ermöglichen:
    1. Installationserkennung: Mithilfe von Capabilities und 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.