Kartlar uygulama değildir. Bu nedenle farklı mekanizmalar kullanılarak dağıtılır ve başlatılır.
Bir cihazda geliştirici seçenekleri etkinleştirildiğinde (emülatörlerde bu özellikler varsayılan olarak etkindir) kart geliştirmeyi destekleyen ek özellikler hem Android Studio'da hem de adb'da kullanılabilir hale gelir.
Kartları dağıtma
Kartınızı dağıtmak için Uygulamanızı derleme ve çalıştırma bölümünde açıklandığı gibi Android Studio'yu kullanarak uygulamanızı fiziksel bir cihaza veya emülatöre yükleyebilirsiniz. Ardından, normal kullanıcılarla aynı adımları uygulayarak kartı, kartlar bandına manuel olarak ekleyin.
Aktif geliştirme sırasında Android Studio'nun "Wear OS Kartı" Çalıştırma/Hata Ayıklama Yapılandırması özelliğini kullanmak daha kolay ve hızlı olabilir. Bu yöntem, kartınızı otomatik olarak dağıtıp etkinleştirerek ek manuel adımlar olmadan anında etkileşime olanak tanır.
Yapılandırmayı otomatik olarak oluşturma
Bir karoyu dağıtmanın ve çalıştırmanın en kolay yolu, kenar boşluğundaki "hizmeti çalıştır" simgesini kullanmaktır. Bu işlem, henüz yoksa otomatik olarak bir çalıştırma yapılandırması oluşturur. Daha fazla bilgi için Wear OS çalıştırma/hata ayıklama yapılandırmaları bölümüne bakın.
Yapılandırmayı manuel olarak oluşturma
Otomatik yapılandırma çalışmıyorsa veya sonuç üzerinde daha fazla kontrol sahibi olmak istiyorsanız aşağıdaki talimatları inceleyin. Ekran görüntüleri Android Studio Meerkat'ten (2024.3.1) alınmıştır.
Başlık çubuğundan "⋮" ("hamburger") seçeneğini belirleyin.
"Düzenle…"yi seçin.
Açılan iletişim kutusunda yapılandırma eklemek için "+" simgesini seçin.
Yeni yapılandırmanın türü olarak "Wear OS Kartı"nı seçin.
Yapılandırmanız için bir ad girin ve modül ile kartı uygun şekilde seçin.
"Tamam"a dokunun. Yapılandırmanız başlık çubuğunda görünür. "▷" ("çalıştır") düğmesine dokunduğunuzda kartınız dağıtılır ve etkinleştirilir.
Android Studio'da kartları önizleme
Android Studio Koala Yeni Özellikler Güncellemesi'nden itibaren Wear OS uygulamanızın kartlarının anlık görüntülerini görüntüleyebilirsiniz. Bu panel, özellikle kartınızın görünümü koşullara göre değişiyorsa (ör. cihazın ekran boyutuna göre farklı içerik veya bir spor etkinliğinin devre arasına girmesi) kullanışlıdır.
Bağımlılık ekleme
Uygulamanızın build.gradle.kts veya build.gradle dosyasına aşağıdaki bağımlılıkları ekleyin:
dependencies {
implementation("androidx.wear.tiles:tiles-tooling-preview:1.6.2")
debugImplementation("androidx.wear.tiles:tiles-tooling:1.6.2")
implementation("androidx.wear:wear-tooling-preview:1.0.0")
}
Kart önizlemelerini yapılandırma
Kartınızın farklı Wear OS ekran boyutlarındaki görünümünün önizlemesini görmek için @Preview ek açıklamasını ekleyin ve device parametresini iletin. Bu @Preview ek açıklamasının, composable önizlemeler için kullandığınız paketten farklı bir paketten geldiğini unutmayın.
@Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) fun tilePreview(context: Context) = TilePreviewData { request -> TilePreviewHelper.singleTimelineEntryTileBuilder( buildMyTileLayout(context, request.deviceConfiguration) ).build() }
Kaynak ekleme ve kaydetme
Kartınız Android kaynakları kullanıyorsa bunları aşağıdaki kod snippet'inde gösterildiği gibi TilePreviewData öğesinin onTileResourceRequest parametresine kaydetmeniz gerekir:
@Preview(device = WearDevices.SMALL_ROUND) fun previewWithResources(context: Context) = TilePreviewData( onTileResourceRequest = { request -> Resources.Builder() .setVersion(RESOURCES_VERSION) .addIdToImageMapping( myImageId, getImageById(R.drawable.animated_walk) ) .build() }, onTileRequest = { request -> TilePreviewHelper.singleTimelineEntryTileBuilder( buildMyTileLayout(context, request.deviceConfiguration) ).build() } )
Platform veri kaynaklarından belirli değerleri gösterme
Kartınızda nabız, kalori, mesafe ve adım gibi platform verileri kullanılıyorsa kartta bu veriler için varsayılan değerler gösterilir.
Belirli bir değeri göstermek için TilePreviewData nesnesini oluştururken platformDataValues parametresini aşağıdaki kod snippet'inde gösterildiği gibi ayarlayın:
@Preview(device = WearDevices.SMALL_ROUND) fun previewWithPlatformOverride(context: Context) = TilePreviewData( platformDataValues = PlatformDataValues.of( PlatformHealthSources.Keys.HEART_RATE_BPM, DynamicDataBuilders.DynamicDataValue.fromFloat(160f) ), onTileRequest = { request -> TilePreviewHelper.singleTimelineEntryTileBuilder( buildMyTileLayoutDynamic(context, request.deviceConfiguration) ).build() } )
adb kullanarak kartları değiştirme
adb, geliştirme sırasında kartları programatik olarak yüklemek, kaldırmak ve etkinleştirmek için kullanılabilir.
Aşağıdaki komutlarda ComponentName, paket adından ve bu paketteki bir sınıftan oluşan bir dizedir (ör. com.example.wear.tiles/com.example.wear.tiles.PreviewTileService).
add-tile
COMPONENT_NAME tarafından sağlanan bir kart ekler ve dizini döndürür.
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation add-tile --ecn component [COMPONENT_NAME]
Örnek çıkış:
Broadcast completed: result=1, data="Index=[0]"
Kart, rulo listesinde zaten varsa kaldırılır ve aynı konuma yeniden eklenir. Aksi takdirde Index[0] konumuna eklenir. Ayrıca, bant maksimum kapasitesine ulaştıysa yeni karoya yer açmak için son karo kaldırılır.
show-tile
TILE_INDEX dizinindeki karoyu etkinleştirin.
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SYSUI --es operation show-tile --ei index [TILE_INDEX]
Örnek çıkış:
Broadcast completed: result=1
remove-tile
COMPONENT_NAME ile ilişkili banttaki tüm kart örneklerini kaldırır.
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation remove-tile --ecn component [COMPONENT_NAME]
Örnek çıkış:
result=1, data="Tile(s) removed."
Döndürülen değerler
- result=0: Büyük olasılıkla Wear OS sürümü çok eski olduğundan veya hata ayıklama işlemi çalışmadığından bu komuta hiçbir yayın alıcısı yanıt vermedi.
- result=1: Başarılı.
- result>1: Hata.