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 Studio kullanılarak tasarlanan veya Saat Kadranı Formatı'nı kullanan kadranlar üreten diğer araçlarla tasarlanan kadranlar yer alabilir.

Watch Face Push API, çeşitli şekillerde kullanılabilir. Ancak aşağıdaki tablo, başlıca kullanım alanları için kılavuz olarak kullanılmalıdır:

Kullanım alanına Önerilen çözüm Karmaşıklık
Kendi kadranlarımı oluşturup yayınlamak istiyorum. Doğrudan veya 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

Bu kurala uymayan kadranlar API tarafından reddedilir.

Paket içeriği

APK içerikleri sıkı bir şekilde uygulanır. Saat Kadranı Formatı'nın aşağıdaki kısıtlamalara uygun olduğundan emin olmak için dikkatli olunmalıdır: 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. Bu APK'lar Google Play tarafından kabul edilebilir ancak Saat Kadranı Push doğrulamasından geçmez (aşağıya bakın).

Her bir kol saati yüzü APK'sında yalnızca aşağıdaki dosyalar/yollar kabul edilir:

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

Ayrıca AndroidManifest.xml dosyasında yalnızca aşağıdaki etiketlere izin verilir:

  • <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, Watch Face Push'ta her kadranın iyi biçimlendirilmiş ve yüksek performanslı olduğundan emin olmak için yapılan kontroller Marketplace uygulamasının sorumluluğundadır.

Google Play, Watch Face Push'u kullanan her saat kadranı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ı kullanılabilir.
  3. Kullanılan doğrulama aracı, doğrulama çalıştırılırken güncel olmalıdır.
  4. Değişmeyen bir APK'nın yeniden doğrulanması gerekmez. Kullanılan doğrulama aracının sürümü değiştirilse 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-alpha06.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. Kadran eklerken veya güncellerken bu jetonu 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. Doğrulayıcı bağımlılığı için gerekli olan Jitpack deposunu ekleyin:

    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:1.0.0-alpha06")
    
    // For use on Android
    implementation("com.google.android.wearable.watchface.validator-android:1.0.0-alpha06")
    
    
  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 boyutunun minimum düzeyde tutulması için Watch Face Push kadranları konusunda özellikle dikkatli olunmalıdır: Kadran APK'sının Bluetooth üzerinden telefon uygulamasından kol saati uygulamasına aktarılması muhtemeldir ve 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, kullanılacağı ölçek için uygun olup olmadığını kontrol edin.
    • Resimlerin, etrafındaki arka planı kaldıracak şekilde uygun şekilde kırpıldığından emin olun.
  • 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ın imzalanması gerekir. Ana uygulamanızda kullanılan anahtardan farklı bir anahtar oluşturun ve tüm kadranlarınız için bu farklı anahtarı kullanın.

Mimari

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

  1. Bulut tabanlı depolama: Standart Marketplace uygulamasında, saat yüzleriniz bulutta oluşturulup depolanır ve kullanıcılarınızın kullanımına hazır hâle getirilir. Kadranlar:
    1. Normal Saat Kadranı Formatı APK'ları olarak önceden oluşturulmuş
    2. Her biri yalnızca tek bir Saat Kadranı Formatı tabanlı kadran içermelidir.
    3. Watch Face Push doğrulama süreci kullanılarak doğrulanmış ve ilişkili doğrulama jetonuyla birlikte depolanmış olmalıdır.
    4. İhtiyaç duyduğunuzda telefon uygulamanız tarafından alınmaya hazır.
  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 kullanılarak kol saati uygulamasının eksikliğini algılayabilir ve bunun tersi de geçerlidir. Bunu, eksik form faktörünü yüklemek için Play Store'a yönelik bir amaç başlatarak takip edebilirsiniz.
    2. Durum yönetimi: DataClient veya MessageClient kullanılarak telefonun durumu kol saatinin durumuyla senkronize edilebilir. Örneğin, telefonda hangi saat yüzünün ayarlandığı bilgisi gösterilir.
    3. APK aktarımı: ChannelClient veya MessageClient kullanılarak APK'lar telefondan kol saatine gönderilebilir.
    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.