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

Watch Face Push, 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 ve telefon için bir uygulama oluşturun. Bu uygulamada, saatteki Watch Face Push API'yi kullanın. 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ı 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 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ı geçemeyen (aşağıya bakın) 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.

Kadrana Aktarma, her bir 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ı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ını kullanın.
  3. Doğrulama aracını çalıştırdığınızda güncel olması gerekir.
  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 yitirse bile jetonların süresi dolmaz.

    Aynı zamanda, doğrulayıcı düzenli olarak güncellendiği için 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:

  • Bir KSA 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-alpha10.jar \
        --apk_path=<your watch face>.apk \
        --package_name=<your marketplace package name>
    

    İşlem başarılı olursa çıkışta bir onay anahtarı bulunur. Bu anahtarı, 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ı

  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-alpha10")
    
    // For use on Android
    implementation("com.google.android.wearable.watchface.validator:validator-push-android:1.0.0-alpha10")
    
    
  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 cihaz üzerinde 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üzlerinde özellikle dikkatli olun: Saat yüzü APK'sının, Bluetooth üzerinden telefon uygulamasından kol saati uygulamasına 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 derleme işleminize 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ırmak için uygun şekilde kırpılır.
  • Yazı tipi dosyalarının boyutunu küçültme

APK boyutunu minimumda tutmayla ilgili daha fazla öneri için Bellek kullanımını optimize etme rehberi'ne bakın.

APK imzalama

Normal bir APK olarak tüm kadranlarınızı imzalamanız gerekir. Ana uygulamanızda 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 bu kadranları kullanabilir. Saat yüzleri aşağıdaki özelliklere sahiptir:
    1. Bunlar, normal Saat Kadranı Formatı APK'ları olarak önceden oluşturulur.
    2. Her APK yalnızca tek bir Saat Kadranı Formatı tabanlı kadran içerir.
    3. Bunlar, Watch Face Push doğrulama süreciyle doğrulanır ve ilişkili onay anahtarıyla birlikte saklanı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 içerir:<0xx0A>
    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 kadran sağlama
    4. Kadranların minimum düzeyde önbelleğini 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. Wear OS Data Layer API'lerini kullanın. Bu API'ler şunlara olanak tanır:
    1. Yükleme algılama: Telefon uygulaması, Capabilities ve CapabilityClient kullanarak kol saati uygulamasının eksikliğini 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.
    2. Durum yönetimi: DataClient veya MessageClient kullanarak telefonu kol saatinin durumuyla senkronize edebilirsiniz. Örneğin, etkin kadranın durumunu senkronize edebilirsiniz.
    3. APK aktarımı: ChannelClient veya MessageClient kullanarak telefondaki APK'ları kol saatine gönderme
    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.