Wear OS 6 memperkenalkan API baru, Watch Face Push, yang menciptakan peluang untuk kasus penggunaan publikasi tampilan jam yang lebih canggih.
Identifikasi kapan harus menggunakan Watch Face Push
Watch Face Push adalah API di Wear OS yang memungkinkan developer menambahkan, mengupdate, atau menghapus tampilan jam secara langsung. Hal ini tidak diperlukan untuk pengembangan tampilan jam standar.
Tampilan jam yang digunakan dengan Watch Face Push harus ditulis menggunakan Format Tampilan Jam. Hal ini dapat mencakup tampilan jam yang didesain menggunakan Watch Face Studio atau alat lain yang menghasilkan tampilan jam yang menggunakan Format Tampilan Jam.
Meskipun Watch Face Push API berpotensi dapat digunakan dengan sejumlah cara, tabel berikut harus digunakan sebagai panduan untuk kasus penggunaan utama:
Kasus penggunaan | Solusi yang disarankan | Kompleksitas |
---|---|---|
Saya ingin membuat setiap tampilan jam dan memublikasikannya. | Gunakan Format Tampilan Jam, baik secara langsung maupun melalui alat seperti Watch Face Studio, dan publikasikan di Google Play. | Rendah |
Saya ingin membuat aplikasi ponsel yang memungkinkan pengguna memilih tampilan jam dari koleksi pilihan, atau mendesain dan menyesuaikan tampilan jam untuk diinstal langsung di smartwatch Wear OS mereka. | Buat aplikasi, untuk smartwatch dan ponsel, menggunakan Watch Face Push API di smartwatch. | Tinggi |
Tujuan
Kasus penggunaan kanonis untuk Watch Face Push API adalah untuk membuat aplikasi marketplace. Dari aplikasi ini, pengguna dapat memilih tampilan jam dari koleksi yang diseleksi di ponsel mereka, dan mengontrol penginstalan tampilan jam ini secara langsung ke smartwatch yang terhubung.
Pertimbangan
Untuk mengetahui detail tentang cara mem-build tampilan jam, lihat panduan Format Tampilan Jam: Tampilan jam yang di-deploy menggunakan Watch Face Push adalah tampilan jam Format Tampilan Jam reguler.
Saat mem-build tampilan jam, perhatikan pertimbangan berikut.
Nama paket
Tampilan jam yang diinstal menggunakan Watch Face Push harus sesuai dengankonvensi berikut:
<app name>.watchfacepush.<watchface name>
... dengan <app name>
adalah nama paket aplikasi yang memanggil Watch Face Push API.
Misalnya, untuk aplikasi dengan nama paket com.example.mymarketplace
, berikut adalah nama paket tampilan jam yang valid:
com.example.mymarketplace.watchfacepush.watchface1
com.example.mymarketplace.watchfacepush.watchface2
com.example.mymarketplace.watchfacepush.another_watchface
Tampilan jam yang tidak sesuai dengan konvensi ini akan ditolak oleh API.
Isi paket
Konten APK diberlakukan secara ketat. Anda harus berhati-hati untuk memastikan Format Tampilan Jam sesuai dengan batasan berikut: Secara teknis, Anda dapat membuat APK Format Tampilan Jam yang berisi file metadata yang tidak berbahaya dan artefak lainnya, yang mungkin dapat diterima oleh Google Play, tetapi tidak lulus validasi Push Tampilan Jam (lihat di bawah).
Hanya file/jalur berikut yang dapat diterima di setiap APK tampilan jam:
/AndroidManifest.xml
/resources.arsc
/res/**
/META-INF/**
Selain itu, hanya tag berikut yang diizinkan dalam file
AndroidManifest.xml
:
<manifest>
<uses-feature>
<uses-sdk>
<application>
<property>
<meta-data>
Terakhir, paket harus menentukan minSdk
minimal 33
, dan
tag <application>
harus menentukan atribut android:hasCode="false"
.
Validasi
Tidak seperti tampilan jam reguler yang didistribusikan melalui Google Play, pemeriksaan Push Tampilan Jam untuk memastikan bahwa setiap tampilan jam dibentuk dengan baik dan berperforma tinggi adalah tanggung jawab aplikasi Marketplace.
Google Play menggunakan pemeriksaan validasi berikut untuk memverifikasi kualitas setiap tampilan jam yang menggunakan Watch Face Push:
- Semua tampilan jam yang diinstal atau diupdate melalui Watch Face Push API harus lulus alat validasi Watch Face Push.
- Hanya alat validasi resmi yang dapat digunakan untuk membuat token validasi untuk digunakan dengan API.
- Alat validasi yang digunakan harus yang terbaru pada saat menjalankan validasi.
Tidak ada persyaratan untuk memvalidasi ulang APK yang belum berubah. Masa berlaku token tidak berakhir, meskipun versi alat validasi yang digunakan diganti.
Pada saat yang sama, sebaiknya jalankan kembali validasi sesekali, karena validator diperbarui secara berkala.
Menjalankan validator
Pengvalidasi tersedia sebagai alat CLI, atau sebagai library.
Penggunaan validator command line
- Dapatkan validator dari repositori Maven Google.
Jalankan alat sebagai berikut:
java -jar validator-push-cli-1.0.0-alpha03.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>
Jika berhasil, output akan menyertakan token validasi, yang harus Anda berikan ke Watch Face Push API saat menambahkan atau mengupdate tampilan jam.
Jika terjadi error, output akan menyertakan detail tentang pemeriksaan tertentu yang gagal.
Penggunaan validator library
Sertakan repositori Jitpack, yang diperlukan untuk dependensi validator:
repositories { ... maven { url = uri("https://jitpack.io") content { includeGroup("com.github.xgouchet") } } }
Sertakan dependensi validator dalam project Anda:
// Check for the latest version implementation("com.google.android.wearable.watchface.validator:1.0.0-alpha03")
Jalankan validator:
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()}") // ... } }
Untuk contoh penggunaan library ini, lihat contoh GitHub.
Ukuran APK
Perhatian khusus harus dilakukan dengan tampilan jam Watch Face Push untuk memastikan ukuran APK tetap minimal: APK tampilan jam kemungkinan akan dikirim dari aplikasi ponsel ke aplikasi smartwatch melalui Bluetooth, yang dapat lambat.
APK yang terlalu besar dapat memerlukan waktu yang cukup lama untuk dikirim, yang merupakan pengalaman pengguna yang buruk dan juga menguras baterai.
- Gunakan library yang sesuai seperti
pngquant
untuk menjaga ukuran file gambar seminimal mungkin- Sertakan ini dalam proses build koleksi tampilan jam Anda
- Periksa dimensi gambar yang sesuai dengan skala tempat gambar akan digunakan.
- Pastikan gambar dipangkas dengan tepat untuk menghapus latar belakang di sekitarnya.
- Mengurangi ukuran file font
- Misalnya, jika menggunakan font tertentu hanya untuk menampilkan waktu, dalam
format
HH:MM
, Anda dapat menggunakan alat sepertipyftsubset
untuk membatasi file font agar hanya berisi glyph yang diperlukan. Hal ini dapat mengurangi ukuran file font dan APK yang dihasilkan secara drastis. Lihat postingan blog ini untuk mengetahui detail tentang cara meminimalkan ukuran file font, untuk kasus lainnya.
- Misalnya, jika menggunakan font tertentu hanya untuk menampilkan waktu, dalam
format
Lihat Panduan mengoptimalkan penggunaan memori untuk mendapatkan saran lebih lanjut tentang cara menjaga ukuran APK tetap minimum.
Penandatanganan APK
Sebagai APK reguler, semua tampilan jam Anda perlu ditandatangani. Buat kunci yang berbeda dari yang digunakan dengan aplikasi utama Anda dan gunakan kunci yang berbeda untuk semua tampilan jam Anda.
Arsitektur
Pertimbangkan tiga komponen utama sistem:
- Penyimpanan berbasis cloud: Di aplikasi Marketplace kanonis, tampilan jam Anda
di-build dan disimpan di Cloud, siap digunakan oleh pengguna. Tampilan
jam adalah:
- Di-build sebagai APK Format Tampilan Jam reguler
- Masing-masing hanya berisi satu tampilan jam berbasis Format Tampilan Jam
- Telah divalidasi menggunakan proses validasi Push Tampilan Jam dan disimpan bersama dengan token validasi terkait.
- Siap diambil oleh aplikasi ponsel Anda sesuai kebutuhan.
- Aplikasi ponsel: Aplikasi ponsel adalah cara utama pengguna berinteraksi
dengan sistem Anda. Hal ini memungkinkan mereka untuk:
- Menjelajahi dan menelusuri katalog tampilan jam
- Menginstal atau mengganti tampilan jam di smartwatch
- Aplikasi smartwatch: Aplikasi smartwatch biasanya tidak memiliki antarmuka
pengguna yang signifikan. API ini terutama berfungsi sebagai jembatan antara aplikasi ponsel dan Watch Face Push API, dengan fungsi berikut:
- Menggunakan Watch Face Push API untuk menginstal/mengupdate atau mengganti tampilan jam
- Meminta izin yang diperlukan dan meminta pengguna
- Menyediakan tampilan jam default
- Menyediakan cache tampilan jam minimal
- Komunikasi ponsel-smartwatch: Komunikasi aplikasi ponsel dan smartwatch
sangat penting untuk keberhasilan pengalaman secara keseluruhan. Gunakan API Lapisan Data
Wear OS, yang memungkinkan:
- Deteksi penginstalan: Dengan menggunakan Kemampuan dan
CapabilityClient
, aplikasi ponsel dapat mendeteksi tidak adanya aplikasi smartwatch, dan sebaliknya. Tindakan ini dapat diikuti dengan meluncurkan intent ke Play Store untuk menginstal faktor bentuk yang hilang. - Pengelolaan status: Dengan menggunakan
DataClient
atauMessageClient
, ponsel dapat terus disinkronkan dengan status smartwatch, misalnya, memastikan bahwa ponsel mengetahui tampilan jam yang disetel. - Transmisi APK: Dengan menggunakan
ChannelClient
atauMessageClient
, APK dapat dikirim dari ponsel ke smartwatch - Pemanggilan jarak jauh: Dengan menggunakan
Messageclient
, ponsel dapat menginstruksikan smartwatch untuk memanggil Watch Face Push API, misalnya, untuk menginstal tampilan jam.
- Deteksi penginstalan: Dengan menggunakan Kemampuan dan
Lihat panduan Data Layer API untuk mengetahui detail selengkapnya.