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'i kullanıma sunar.

Kadran itme özelliğini ne zaman kullanacağınızı belirleme

Kadran Gönderme, Wear OS'teki bir API'dir. Geliştiricinin kadran eklemesine, güncellemesine veya kaldırmasına olanak tanır. Standart kadran geliştirme için gerekli değildir.

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

Kadran Push API'si çeşitli şekillerde kullanılabilir. Ancak aşağıdaki tablo, temel kullanım alanları için kılavuz olarak kullanılmalıdır:

Kullanım alanına Önerilen çözüm Karmaşıklık
Tek tek kadranlar oluşturup yayınlamak istiyorum. Doğrudan veya Watch Face Studio gibi bir araç aracılığıyla Saat Kadranı Formatı'nı kullanın ve kadranlarınızı Google Play'de yayınlayın. Düşük
Kullanıcıların, özel olarak 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. Kol saatindeki Watch Face Push API'yi kullanarak hem kol saati hem de telefon için bir uygulama oluşturun. Yüksek

Amaç

Kadran Push API'nin standart kullanım alanı, pazar yeri uygulaması oluşturmaktır. Kullanıcılar bu uygulamadan, telefonlarındaki özel bir koleksiyondan kadran seçebilir ve bu kadranların bağlı kol saatlerine yüklenmesini doğrudan kontrol edebilir.

Dikkat edilmesi gereken noktalar

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

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

Paket adları

Saat kadranı itme özelliği kullanılarak yüklenen kadranlar aşağıdaki kurallara uymalıdır:

<app name>.watchfacepush.<watchface name>

Burada <app name>, kadran Push API'sini çağıran uygulamanın paket adıdır.

Örneğin, paket adı com.example.mymarketplace olan bir uygulama için geçerli kadran paketi adları şunlardır:

  • 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 kesinlikle zorunlu kılınmıştır. Saat kadranı biçiminin aşağıdaki kısıtlamalara uyması için dikkatli olunmalıdır: Zararsız meta veri dosyaları ve diğer yapıları içeren saat kadranı biçimi APK'ları teknik olarak üretilebilir. Bu APK'lar Google Play tarafından kabul edilebilir ancak saat kadranı itme doğrulamasını geçemez (aşağıya bakın).

Her kadran 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 paket, en az 33 boyutunda bir minSdk belirtmeli ve <application> etiketi android:hasCode="false" özelliğini belirtmelidir.

Doğrulama

Google Play üzerinden dağıtılan normal kadranlardan farklı olarak, her kadranın iyi biçimlendirildiğinden ve performanslı olduğundan emin olmak için kadran itme kontrolleri Marketplace uygulamasının sorumluluğundadır.

Google Play, saat kadranı yayınlama özelliğini kullanan her kadranı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ından geçmelidir.
  2. API ile kullanılacak doğrulama jetonlarını oluşturmak için yalnızca resmi doğrulama aracı kullanılabilir.
  3. Kullanılan doğrulama aracı, doğrulama işleminin yürütüldüğü sırada 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ü geçersiz kılınsa bile jetonların süresi dolmaz.

    Doğrulayıcı düzenli olarak güncellendiğinden, doğrulamayı bir süre sonra yeniden çalıştırmanızı öneririz.

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

Doğrulayıcıyı kadran APK'sında çalıştırmak için aşağıdaki adımları uygulayın:

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

    java -jar validator-push-cli-1.0.0-alpha01.jar \
        --apk_path=youwatchface.apk \
        --package_name=<your marketplace package name>
    

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

    Bir hata oluşursa çıkışta hangi kontrolün başarısız olduğuyla ilgili ayrıntılar yer alır.

    Doğrulayıcı CLI aracını bir Gradle derlemesine dahil etme örneği için GitHub'daki Kadran Gönderme örneğine bakın.

APK boyutu

APK boyutunun minimum düzeyde tutulması için kadran itme kadranlarında özellikle dikkatli olunmalıdır: Kadran APK'sı, telefon uygulamasından kol saati uygulamasına Bluetooth üzerinden aktarılır ve bu işlem yavaş olabilir.

Çok büyük APK'ların aktarılması oldukça uzun sürebilir. Bu durum hem kötü bir kullanıcı deneyimine yol açar hem de pilin daha hızlı tükenmesine neden olur.

  • Resim dosyalarının boyutunu en aza indirmek için pngquant gibi uygun kitaplıkları kullanın
    • Bu bilgileri, kadran koleksiyonu oluşturma sürecinize dahil edin.
    • Resmin boyutlarının, kullanılacağı ölçeğe 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 en aza indirmeyle ilgili daha fazla öneri için Hafıza kullanımını optimize etme kılavuzu başlıklı makaleyi inceleyin.

APK imzalama

Normal bir APK olarak tüm kadranlarınızın imzalanması gerekir. Ana uygulamanızda kullanılandan farklı bir anahtar oluşturun ve tüm kadranlarınız için bu anahtarı kullanın.

Mimari

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

  1. Bulut tabanlı depolama alanı: Resmi Marketplace uygulamasında kadranlarınız bulutta oluşturulur ve depolanır. Böylece kullanıcılarınız tarafından kullanılabilir. Kadranlar:
    1. Normal kadran biçimi APK'ları olarak önceden oluşturulmuş
    2. Her biri yalnızca tek bir Saat Kadranı Formatı tabanlı kadran içermelidir.
    3. Kadran Gönderme doğrulama süreci kullanılarak doğrulanmış olmalıdır ve ilişkili doğrulama jetonuyla birlikte depolanmalıdır.
    4. Telefon uygulamanız tarafından gerektiğinde alınabilir.
  2. Telefon uygulaması: Telefon uygulaması, kullanıcılarınızın sisteminizle etkileşime geçmesinin ana yoludur. Bu sayede:
    1. Kadran kataloğunuza göz atma ve katalogda arama yapma
    2. Kol saatine kadran yükleme veya kadran değiştirme
  3. Kol saati uygulaması: Kol saati uygulamasında genellikle önemli bir kullanıcı arayüzü olmayabilir. Bu API, öncelikle telefon uygulaması ile kadran itme API'leri arasında bir köprü görevi görür ve aşağıdaki işlevleri sunar:
    1. Kadran yüklemek/güncellemek veya değiştirmek için Watch Face Push API'yi kullanma
    2. Gerekli izinleri isteme ve kullanıcıdan istemde bulunma
    3. Varsayılan kadran sağlama
    4. Kadranların minimum düzeyde önbelleğe alınması
  4. Telefon ve kol saati arasındaki iletişim: Telefon ve kol saati uygulaması arasındaki iletişim, genel deneyimin başarısı açısından çok önemlidir. Aşağıdakilere izin veren Wear OS Veri Katmanı API'lerini kullanın:
    1. Yükleme algılama: Telefon uygulaması, CapabilityClient ve özellikleri kullanarak kol saati uygulamasının bulunmadığını algılayabilir. Kol saati uygulaması da aynısını yapabilir. Ardından, Play Store'da eksik form faktörünü yüklemek için bir intent başlatılabilir.
    2. Durum yönetimi: DataClient veya MessageClient kullanılarak telefon, kol saatinin durumuyla senkronize edilebilir. Örneğin, telefonda hangi kadran ayarlandığından emin olunabilir.
    3. APK aktarımı: ChannelClient veya MessageClient kullanılarak APK'lar telefondan saate gönderilebilir
    4. Uzaktan çağrı: Telefon, Messageclient kullanarak saate kadran yüklemek için kadran Push API'sini çağırmasını talimat verebilir.

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