Kadran Push

Wear OS 6, daha gelişmiş kadran yayınlama kullanım alanları için fırsatlar sunan yeni bir API olan Watch Face Push'u kullanıma sunuyor.

Watch Face Push'un ne zaman kullanılacağını belirleme

Kadranı cihaza gönderme, geliştiricinin doğrudan kadran eklemesine, güncellemesine veya kaldırmasına olanak tanıyan bir Wear OS API'sidir. Standart saat yüzü geliştirme için gerekli değildir.

Watch Face Push ile kullanılan kadranlar, Saat Kadranı Formatı kullanılarak yazılmalıdır. Bu kapsamda, Watch Face Designer, Watch Face Studio veya Saat Kadranı Formatı'nı kullanan kadranlar üreten başka bir araçla tasarlanmış kadranlar yer alabilir.

Watch Face Push API, çeşitli şekillerde kullanılabilir. Aşağıdaki tabloda, başlıca kullanım alanları hakkında bilgi verilmektedir:

Kullanım alanı Önerilen çözüm Karmaşıklık
Kendi kadranlarımı oluşturup yayınlamak istiyorum. Doğrudan veya Watch Face Designer ya da Watch Face Studio gibi bir araç aracılığıyla Saat Kadranı Formatı'nı kullanarak kadranlar oluşturun ve bunları Google Play'de yayınlayın. Düşük
Kullanıcıların, seçilmiş bir koleksiyondan kadran seçmesine veya doğrudan Wear OS kol saatlerine yüklenecek kadranlar tasarlayıp özelleştirmesine olanak tanıyan bir telefon uygulaması oluşturmak istiyorum. Saat üzerindeki Watch Face Push API'yi kullanarak hem saat hem de telefon için bir uygulama oluşturun. Yüksek

Amaç

Watch Face Push API'nin asıl kullanım alanı Marketplace uygulaması oluşturmaktır. Bu uygulamada kullanıcılar, telefonlarındaki seçilmiş koleksiyondan kadranları seçebilir ve bu kadranların bağlı saatlerine yüklenmesini doğrudan kontrol edebilir.

Dikkat edilmesi gereken noktalar

Kadranlarınızı oluşturma hakkında ayrıntılı bilgi için Saat Kadranı Formatı rehberine bakın: Watch Face Push kullanılarak dağıtılan kadranlar, normal Saat Kadranı Formatı kadranlarıdır.

Saat yüzünüzü oluştururken aşağıdaki noktaları göz önünde bulundurun.

Paket adları

Watch Face Push kullanılarak yüklenen kadranlar aşağıdaki kurala uygun olmalıdır:

<app name>.watchfacepush.<watchface name>

... burada <app name>, Watch Face Push API'yi çağıran uygulamanın paket adıdır.

Örneğin, paket adı com.example.mymarketplace olan bir uygulama için aşağıdaki saat yüzü paket adları geçerlidir:

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

API, bu kurala uymayan saat yüzlerini reddeder.

Paket içeriği

Sistem, APK içeriklerini sıkı bir şekilde uygular. Google Play için kabul edilebilir ancak Saat Kadranı Push doğrulamasını (aşağıya bakın) geçemeyen, zararsız meta veri dosyaları ve diğer yapılar içeren Saat Kadranı Formatı APK'ları oluşturmak teknik olarak mümkündür.

Her kadran APK'sı yalnızca aşağıdaki dosyaları/yolları içermelidir:

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

Ayrıca, AndroidManifest.xml dosyası yalnızca aşağıdaki etiketleri içermelidir:

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

Son olarak, pakette en az 33 boyutunda bir minSdk belirtilmelidir ve <application> etiketinde android:hasCode="false" özelliği belirtilmelidir.

Doğrulama

Google Play üzerinden dağıtılan normal kadranların aksine, Marketplace uygulaması her Watch Face Push kadranının iyi biçimlendirilmiş ve yüksek performanslı olduğunu doğrulamaktan sorumludur.

Saat Yüzü Aktarma, her saat yüzünün kalitesini doğrulamak için aşağıdaki doğrulama kontrollerini kullanır:

  1. Watch Face Push API aracılığıyla yüklenen veya güncellenen tüm kadranların Watch Face Push doğrulama aracını geçmesi gerekir.
  2. API ile kullanılacak doğrulama jetonları oluşturmak için yalnızca resmi doğrulama aracını kullanın.
  3. Doğrulamayı çalıştırdığınızda doğrulama aracı güncel olmalıdır.
  4. Değişmeyen bir APK'yı yeniden doğrulamanız gerekmez. Kullanılan doğrulama aracının sürümü güncelliğini yitirse bile jetonların süresi dolmaz.

    Aynı zamanda, doğrulayıcı düzenli olarak güncellendiğinden doğrulama işlemini belirli aralıklarla yeniden çalıştırmanızı öneririz.

Doğrulayıcıyı çalıştırma

Doğrulayıcı üç şekilde kullanılabilir:

  • CLI aracı
  • JVM ile kullanılacak bir kitaplık
  • Android'de kullanılacak bir kitaplık

Komut satırı doğrulayıcısının kullanımı

  1. Doğrulayıcıyı Google'ın Maven deposundan edinin.
  2. Aracı aşağıdaki şekilde çalıştırın:

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

    İşlem başarılı olursa çıkışta bir doğrulama jetonu bulunur. Bu jetonu, kadran eklerken veya güncellerken Watch Face Push API'ye sağlamanız gerekir.

    Bir hata oluşursa çıkış, hangi kontrolün başarısız olduğuna dair ayrıntıları içerir.

Kitaplık doğrulayıcı kullanımı

  1. Google ve Jitpack depolarını ekleyin. Doğrulayıcı kitaplığı kullanmak için her ikisi de gereklidir.

    repositories {
        ...
        google()
        maven {
            url = uri("https://jitpack.io")
            content {
                includeGroup("com.github.xgouchet")
            }
        }
    }
    
  2. Doğrulayıcı bağımlılığını projenize ekleyin:

    // 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. Doğrulayıcıyı çalıştırın:

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

Bu kitaplığın kullanımına ilişkin bir örnek için GitHub örneğine bakın. Ayrıca, Android tabanlı doğrulayıcıyla kullanılmak üzere cihazda APK oluşturmak için yararlı olan Portable Asset Compiler Kit (Pack) kitaplığına da göz atın.

APK boyutu

APK boyutunu en aza indirmek için Watch Face Push kadranlarında özellikle dikkatli olun: Kadran APK'sının, telefon uygulamasından kol saati uygulamasına Bluetooth üzerinden aktarılması muhtemeldir. Bu işlem yavaş olabilir.

Çok büyük bir APK'nın iletilmesi önemli ölçüde zaman alabilir. Bu durum hem kötü bir kullanıcı deneyimine yol açar hem de pilin boşalmasına neden olur.

  • Resim dosyası boyutlarını minimumda tutmak için pngquant gibi uygun kitaplıkları kullanın.
    • Bunu kadran koleksiyonu oluşturma sürecinize dahil edin.
    • Resmin boyutlarının, kullandığınız ölçek için uygun olup olmadığını kontrol edin.
    • Resimler, etrafındaki arka planı kaldıracak şekilde uygun şekilde kırpılmalıdır.
  • Yazı tipi dosyalarının boyutunu küçültme

APK boyutunu minimumda tutmayla ilgili daha fazla öneri için Bellek kullanımını optimize etme rehberine bakın.

APK imzalama

Normal bir APK olarak tüm kadranlarınızı imzalamanız gerekir. Ana uygulamanızla kullandığınız anahtardan farklı bir anahtar oluşturun ve tüm kadranlarınız için bu farklı anahtarı kullanın.

Mimari

Sistemin dört ana bileşenini göz önünde bulundurun:

  1. Bulut tabanlı depolama: Standart Marketplace uygulamasında, kadranlarınızı bulutta oluşturup depolarsınız. Böylece kullanıcılarınız bunları kullanmaya hazır hale gelir. Kadranlar aşağıdaki özelliklere sahiptir:
    1. Bunlar, normal Saat Kadranı Formatı APK'ları olarak önceden oluşturulur.
    2. Her APK yalnızca tek bir Watch Face Format tabanlı kadran içerir.
    3. Bunlar, Watch Face Push doğrulama süreciyle doğrulanır ve ilişkili doğrulama jetonuyla birlikte saklanır.
    4. Telefon uygulamanız gerektiğinde bu bilgileri alabilir.
  2. Telefon uygulaması: Telefon uygulaması, kullanıcılarınızın sisteminizle etkileşim kurduğu temel yöntemdir. Bu sayede şunları yapabilirler:
    1. Kadran kataloğunuza göz atma ve katalogda arama yapma
    2. Saate saat yüzü yükleme veya saat yüzünü değiştirme
  3. Saat uygulaması: Saat uygulaması genellikle önemli bir kullanıcı arayüzüne sahip olmayabilir. Bu API, öncelikle telefon uygulaması ile Watch Face Push API'leri arasında bir köprü görevi görür ve aşağıdaki işlevleri sunar:
    1. Saat yüzlerini yüklemek/güncellemek veya değiştirmek için Watch Face Push API'yi kullanma
    2. Gerekli izinleri isteme ve kullanıcıya istem gösterme
    3. Varsayılan bir kadran sağlama
    4. Minimum kadran önbelleği sağlama
  4. Telefon ve kol saati arasındaki iletişim: Telefon ve kol saati uygulaması arasındaki iletişim, genel deneyimin başarısı için çok önemlidir. Şunlara izin veren Wear OS Data Layer API'lerini kullanın:
    1. Yükleme algılama: Telefon uygulaması, Capabilities ve CapabilityClient kullanarak kol saati uygulamasının olmadığını algılayabilir ve bunun tersi de geçerlidir. Ardından, eksik form faktörünü yüklemek için Play Store'a bir amaç başlatabilirsiniz.
    2. Durum yönetimi: DataClient veya MessageClient kullanarak telefonu saatin durumuyla senkronize edebilirsiniz. Örneğin, etkin saat yüzünün durumunu senkronize edebilirsiniz.
    3. APK aktarımı: ChannelClient veya MessageClient kullanarak telefondaki APK'ları kol saatine gönderme
    4. Uzaktan çağırma: Telefon, Messageclient kullanarak saati, örneğin saat yüzü yüklemek için Watch Face Push API'yi çağırmaya yönlendirebilir.

Daha fazla bilgi için Veri Katmanı API'si kılavuzuna bakın.