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 saat kadranları üreten başka bir araçla tasarlanmış saat 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
Ayrı ayrı saat yüzleri 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ı, pazar yeri 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

Saat 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 saat kadranları, normal Saat Kadranı Formatı saat 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. Teknik olarak, zararsız meta veri dosyaları ve diğer yapılar içeren Saat Kadranı Formatı APK'ları oluşturmak mümkündür. Bu APK'lar Google Play tarafından kabul edilebilir ancak Saat Kadranı Push doğrulamasını geçemez (aşağıya bakın).

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ü Yayınlama, 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, Watch Face Push doğrulama aracını geçmelidir.
  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 yitirmiş olsa bile jetonların süresi dolmaz.

    Aynı zamanda, doğrulayıcı düzenli olarak güncellendiğinden doğrulama işlemini belirli aralıklarla tekrar ç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. Kadran eklerken veya güncellerken bu jetonu Kadran Push API'sine 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 saat yüzleriyle ilgili özellikle dikkatli olun: Saat yüzü 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.
    • Resimleri, etrafındaki arka planı kaldıracak şekilde uygun şekilde kırpın.
  • 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 kadranları 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 depolanı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 kadran yükleme veya kadranı 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 tespiti: Telefon uygulaması, Capabilities ve CapabilityClient kullanarak kol saati uygulamasının eksikliğini tespit edebilir 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 telefonunuzdaki APK'ları kol saatinize gönderin.
    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.