Kart çalıştırma ve hata ayıklama

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.

Boşluktaki "▷" simgesini gösteren kırmızı oklu ekran görüntüsü
Boşlukta "▷" simgesini tıklayın
Çalıştırma yapılandırması açılır listesini gösteren kırmızı ok ve kırmızıyla vurgulanmış "TestTileService" yapılandırma seçeneğini gösteren ekran görüntüsü
"Çalıştırma yapılandırması" otomatik olarak oluşturulur

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.

  1. Başlık çubuğundan "⋮" ("hamburger") seçeneğini belirleyin.

    Başlık çubuğundaki "⋮" ("hamburger") seçeneğini gösteren kırmızı oklu ekran görüntüsü.
  2. "Düzenle…"yi seçin.

    "Düzenle…", açılır listenin Yapılandırma bölümündeki ilk seçenektir.
  3. Açılan iletişim kutusunda yapılandırma eklemek için "+" simgesini seçin.

    "+" işaretini gösteren kırmızı ok bulunan ekran görüntüsü.
  4. Yeni yapılandırmanın türü olarak "Wear OS Kartı"nı seçin.

    "Wear OS Kartı" yapılandırma seçeneğini gösteren kırmızı oklu ekran görüntüsü.
  5. Yapılandırmanız için bir ad girin ve modül ile kartı uygun şekilde seçin.

    İletişim penceresinin alanlarını gösteren üç kırmızı okun bulunduğu ekran görüntüsü.
  6. "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.

Önizleme panelindeki grup adları, önizleme ek açıklamasında verilen grup adıyla eşleşir.
Android Studio'daki Kartlar önizleme paneli.

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.