Push Tampilan Jam

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:

  1. Semua tampilan jam yang diinstal atau diupdate melalui Watch Face Push API harus lulus alat validasi Watch Face Push.
  2. Hanya alat validasi resmi yang dapat digunakan untuk membuat token validasi untuk digunakan dengan API.
  3. Alat validasi yang digunakan harus yang terbaru pada saat menjalankan validasi.
  4. 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

  1. Dapatkan validator dari repositori Maven Google.
  2. 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

  1. Sertakan repositori Jitpack, yang diperlukan untuk dependensi validator:

    repositories {
        ...
        maven {
            url = uri("https://jitpack.io")
            content {
                includeGroup("com.github.xgouchet")
            }
        }
    }
    
  2. Sertakan dependensi validator dalam project Anda:

    // Check for the latest version
    implementation("com.google.android.wearable.watchface.validator:1.0.0-alpha03")
    
  3. 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

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:

  1. Penyimpanan berbasis cloud: Di aplikasi Marketplace kanonis, tampilan jam Anda di-build dan disimpan di Cloud, siap digunakan oleh pengguna. Tampilan jam adalah:
    1. Di-build sebagai APK Format Tampilan Jam reguler
    2. Masing-masing hanya berisi satu tampilan jam berbasis Format Tampilan Jam
    3. Telah divalidasi menggunakan proses validasi Push Tampilan Jam dan disimpan bersama dengan token validasi terkait.
    4. Siap diambil oleh aplikasi ponsel Anda sesuai kebutuhan.
  2. Aplikasi ponsel: Aplikasi ponsel adalah cara utama pengguna berinteraksi dengan sistem Anda. Hal ini memungkinkan mereka untuk:
    1. Menjelajahi dan menelusuri katalog tampilan jam
    2. Menginstal atau mengganti tampilan jam di smartwatch
  3. 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:
    1. Menggunakan Watch Face Push API untuk menginstal/mengupdate atau mengganti tampilan jam
    2. Meminta izin yang diperlukan dan meminta pengguna
    3. Menyediakan tampilan jam default
    4. Menyediakan cache tampilan jam minimal
  4. Komunikasi ponsel-smartwatch: Komunikasi aplikasi ponsel dan smartwatch sangat penting untuk keberhasilan pengalaman secara keseluruhan. Gunakan API Lapisan Data Wear OS, yang memungkinkan:
    1. 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.
    2. Pengelolaan status: Dengan menggunakan DataClient atau MessageClient, ponsel dapat terus disinkronkan dengan status smartwatch, misalnya, memastikan bahwa ponsel mengetahui tampilan jam yang disetel.
    3. Transmisi APK: Dengan menggunakan ChannelClient atau MessageClient, APK dapat dikirim dari ponsel ke smartwatch
    4. Pemanggilan jarak jauh: Dengan menggunakan Messageclient, ponsel dapat menginstruksikan smartwatch untuk memanggil Watch Face Push API, misalnya, untuk menginstal tampilan jam.

Lihat panduan Data Layer API untuk mengetahui detail selengkapnya.