Mit Wear OS 6 wird eine neue API eingeführt: Watch Face Push. 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. Sie ist für die Entwicklung von Standard-Zifferblättern 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 potenziell auf verschiedene Arten verwendet werden. Die folgende Tabelle soll als Leitfaden für die wichtigsten Anwendungsfälle dienen:
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. | Geringe Anzahl |
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 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 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
Zifferblätter, die dieser Konvention nicht entsprechen, werden von der API abgelehnt.
Paketinhalt
Die Einhaltung der APK-Inhalte wird streng durchgesetzt. Das Watch Face-Format muss die folgenden Einschränkungen erfüllen: Es ist technisch möglich, Watch Face-Format-APKs 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.
In jedem Zifferblatt-APK sind nur die folgenden Dateien/Pfade zulässig:
/AndroidManifest.xml
/resources.arsc
/res/**
/META-INF/**
Außerdem sind in der Datei AndroidManifest.xml
nur die folgenden Tags zulässig:
<manifest>
<uses-feature>
<uses-sdk>
<application>
<property>
<meta-data>
Schließlich sollte im Paket eine minSdk
von mindestens 33
angegeben werden und im <application>
-Tag das Attribut android:hasCode="false"
.
Zertifizierungsstufe
Anders als bei regulären Zifferblättern, die über Google Play vertrieben werden, ist die Marketplace-App für die Überprüfung verantwortlich, ob jedes Zifferblatt wohlgeformt ist und eine gute Leistung bietet.
Google Play verwendet die folgenden Validierungsprüfungen, um die Qualität jedes Zifferblatts zu überprüfen, das Watch Face Push verwendet:
- Alle Zifferblätter, die über die Watch Face Push API installiert oder aktualisiert werden, müssen das Watch Face Push-Validierungstool bestehen.
- Nur das offizielle Validierungstool darf zum Generieren von Validierungstokens für die Verwendung mit der API verwendet werden.
- Das verwendete Validierungstool muss zum Zeitpunkt der Validierung auf dem neuesten Stand sein.
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
- Rufen Sie den Validator aus dem Maven-Repository von Google ab.
Führen Sie das Tool so aus:
java -jar validator-push-cli-1.0.0-alpha06.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>
Bei Erfolg enthält die Ausgabe ein Validierungstoken, 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
Fügen Sie das Jitpack-Repository hinzu, das für die Validator-Abhängigkeit erforderlich ist:
repositories { ... google() maven { url = uri("https://jitpack.io") content { includeGroup("com.github.xgouchet") } } }
Fügen Sie die Validator-Abhängigkeit in Ihr Projekt ein:
// For use on JVM implementation("com.google.android.wearable.watchface.validator:1.0.0-alpha06") // For use on Android implementation("com.google.android.wearable.watchface.validator-android:1.0.0-alpha06")
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
Besondere Vorsicht ist bei Push-Zifferblättern geboten, um die APK-Größe so gering wie möglich zu halten: 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 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 es verwendet werden soll.
- Achten Sie darauf, dass die Bilder richtig zugeschnitten sind, um den Hintergrund zu entfernen.
- Schriftdateien verkleinern
- Wenn Sie beispielsweise eine bestimmte Schriftart nur verwenden, um die Uhrzeit im Format
HH:MM
anzuzeigen, können Sie ein Tool wiepyftsubset
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
- Wenn Sie beispielsweise eine bestimmte Schriftart nur verwenden, um die Uhrzeit im Format
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 alle Ihre Zifferblätter signiert werden. Erstelle einen anderen Schlüssel als den, der für deine Haupt-App verwendet wird, und verwende diesen Schlüssel für alle deine Zifferblätter.
Architektur
Sehen Sie sich die drei Hauptkomponenten des Systems an:
- Cloudbasierter Speicher: In der kanonischen Marketplace-App werden Ihre Zifferblätter in der Cloud erstellt und gespeichert, damit sie von Ihren Nutzern verwendet werden können. Die Zifferblätter sind:
- Vorgefertigt als reguläre APKs im Watch Face-Format
- Jede enthält nur ein einziges Zifferblatt, das auf dem Watch Face-Format basiert.
- Sie wurden mit dem Watch Face Push-Validierungsprozess validiert und werden zusammen mit dem zugehörigen Validierungstoken gespeichert.
- Sie können bei Bedarf von der Smartphone-App abgerufen werden.
- Telefon-App: Die Telefon-App ist die primäre Methode, mit der Ihre Nutzer mit Ihrem System interagieren. Dadurch können sie Folgendes tun:
- Zifferblattkatalog durchsuchen
- Zifferblatt auf der Smartwatch installieren oder ersetzen
- 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:
- Zifferblätter mit der Watch Face Push API installieren, aktualisieren oder ersetzen
- Erforderliche Berechtigungen anfordern und Nutzer auffordern
- Standardzifferblatt bereitstellen
- Minimalen Cache für Zifferblätter bereitstellen
- Kommunikation zwischen Smartphone und Smartwatch: Die Kommunikation zwischen Smartphone und Smartwatch ist entscheidend für den Erfolg der gesamten Nutzerfreundlichkeit. Verwenden Sie die Wear OS Data Layer APIs, die Folgendes ermöglichen:
- Installationserkennung: Mit Capabilities und
CapabilityClient
kann die Smartphone-App das Fehlen der Smartwatch-App erkennen und umgekehrt. Danach kann ein Intent an den Play Store gesendet werden, um den fehlenden Formfaktor zu installieren. - Statusverwaltung: Mit
DataClient
oderMessageClient
kann das Smartphone mit dem Status der Smartwatch synchronisiert werden. So kann beispielsweise sichergestellt werden, dass das Smartphone weiß, welches Zifferblatt eingestellt ist. - APK-Übertragung: Mit
ChannelClient
oderMessageClient
können APKs vom Smartphone an die Smartwatch gesendet werden. - Remote-Aufruf: Mit
Messageclient
kann das Smartphone die Smartwatch anweisen, die Watch Face Push API aufzurufen, um beispielsweise ein Zifferblatt zu installieren.
- Installationserkennung: Mit Capabilities und
Weitere Informationen finden Sie in der Anleitung zur Data Layer API.