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:
- 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.
- API ile kullanılacak doğrulama jetonları oluşturmak için yalnızca resmi doğrulama aracı kullanılabilir.
- Kullanılan doğrulama aracı, doğrulama çalıştırılırken güncel olmalıdır.
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ı
- Doğrulayıcıyı Google'ın Maven deposundan edinin.
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ı
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") } } }
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")
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
- Örneğin, belirli bir yazı tipini yalnızca saati
HH:MM
biçiminde göstermek için kullanıyorsanız yazı tipi dosyasının yalnızca gerekli glifleri içermesini sağlamak içinpyftsubset
gibi bir araç kullanabilirsiniz. Bu, sonuçtaki yazı tipi dosyasının ve APK'nın boyutunu önemli ölçüde azaltabilir. Diğer durumlar için yazı tipi dosyası boyutunu en aza indirme hakkında ayrıntılı bilgi edinmek için bu blog yayınını inceleyin.
- Örneğin, belirli bir yazı tipini yalnızca saati
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:
- 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:
- Normal Saat Kadranı Formatı APK'ları olarak önceden oluşturulmuş
- Her biri yalnızca tek bir Saat Kadranı Formatı tabanlı kadran içermelidir.
- Watch Face Push doğrulama süreci kullanılarak doğrulanmış ve ilişkili doğrulama jetonuyla birlikte depolanmış olmalıdır.
- İhtiyaç duyduğunuzda telefon uygulamanız tarafından alınmaya hazır.
- Telefon uygulaması: Telefon uygulaması, kullanıcılarınızın sisteminizle etkileşim kurduğu temel yöntemdir. Bu sayede şunları yapabilirler:
- Kadran kataloğunuza göz atma ve katalogda arama yapma
- Saate saat yüzü yükleme veya saat yüzünü değiştirme
- 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:
- Saat yüzlerini yüklemek/güncellemek veya değiştirmek için Watch Face Push API'yi kullanma
- Gerekli izinleri isteme ve kullanıcıya istem gösterme
- Varsayılan bir kadran sağlama
- Minimum kadran önbelleği sağlama
- 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:
- 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. - Durum yönetimi:
DataClient
veyaMessageClient
kullanılarak telefonun durumu kol saatinin durumuyla senkronize edilebilir. Örneğin, telefonda hangi saat yüzünün ayarlandığı bilgisi gösterilir. - APK aktarımı:
ChannelClient
veyaMessageClient
kullanılarak APK'lar telefondan kol saatine gönderilebilir. - 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.
- Yükleme algılama: Telefon uygulaması, Capabilities ve
Daha fazla bilgi için veri katmanı API'si kılavuzuna bakın.