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:
- 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ını kullanın.
- Doğrulamayı çalıştırdığınızda doğrulama aracı güncel olmalıdır.
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ı
- 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-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ı
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") } } }
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")
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
- Ö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ı 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:
- 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:
- Bunlar, normal Saat Kadranı Formatı APK'ları olarak önceden oluşturulur.
- Her APK yalnızca tek bir Watch Face Format tabanlı kadran içerir.
- Bunlar, Watch Face Push doğrulama süreciyle doğrulanır ve ilişkili doğrulama jetonuyla birlikte saklanır.
- Telefon uygulamanız gerektiğinde bu bilgileri alabilir.
- 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
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. - Durum yönetimi:
DataClient
veyaMessageClient
kullanarak telefonu saatin durumuyla senkronize edebilirsiniz. Örneğin, etkin saat yüzünün durumunu senkronize edebilirsiniz. - APK aktarımı:
ChannelClient
veyaMessageClient
kullanarak telefondaki APK'ları kol saatine gönderme - 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.