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

Döşemeler uygulama olmadığından 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), hem Android Studio hem de adb'da kullanılabilen karo geliştirme destekli ek özellikler sunulur.

Karoları dağıtma

Döşemenizi dağıtmak için Uygulamanızı oluşturma 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 döşemeyi manuel olarak döşeme karuselininize ekleyin.

Aktif geliştirme sırasında Android Studio'nun "Wear OS Tile" Çalıştırma/Hata Ayıklama Yapılandırması özelliğini kullanmak daha kolay ve hızlı olabilir. Bu yöntem, kutunuzu otomatik olarak dağıtır ve etkinleştirir. Böylece, ek manuel adımlar olmadan anında etkileşimde bulunabilirsiniz.

Yapılandırmayı otomatik olarak oluşturma

Bir kutuyu dağıtıp çalıştırmanın en kolay yolu, oluktaki "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ı başlıklı makaleyi inceleyin.

Oluktaki "▷" işaretini gösteren kırmızı ok içeren ekran görüntüsü
Olukta "▷"yı tıklayın
Çalıştırma yapılandırması açılır listesini gösteren kırmızı ok ve kırmızı renkle ana hatları çizilmiş "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 talimatlara bakın. Ekran görüntüleri Android Studio Meerkat (2024.3.1) sürümüne aittir.

  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ı okla işaretlenmiş 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. Görünen iletişim kutusunda yapılandırma eklemek için "+"yı seçin.

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

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

    İletişim kutusunun alanlarını gösteren üç kırmızı ok içeren 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 önizleme döşemeleri

Android Studio Koala Feature Drop'tan itibaren Wear OS uygulamanızın kutularının anlık görüntülerini görebilirsiniz. Bu panel, özellikle kutucuğunuzun görünümü koşullara göre değişiyorsa (ör. cihazın ekran boyutuna bağlı olarak farklı içerikler veya bir spor etkinliğinde devre arasına ulaşılması) yararlıdır.

Önizleme panelindeki grup adları, önizleme açıklamasında verilen grup adıyla eşleşir.
Android Studio'daki kutucuk ö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.0-alpha02")
    debugImplementation("androidx.wear.tiles:tiles-tooling:1.6.0-alpha02")
    implementation("androidx.wear:wear-tooling-preview:1.0.0")
}

Kutu önizlemelerini yapılandırma

Kutucuğunuzun 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 açıklamasının, birleştirilebilir önizlemeler için kullandığınız paketten farklı bir pakete ait olduğunu 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

Döşemeniz Android kaynaklarını kullanıyorsa aşağıdaki kod snippet'inde gösterildiği gibi bunları TilePreviewData parametresinin onTileResourceRequest içinde 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ındaki belirli değerleri gösterme

Döşemenizde nabız, kalori, mesafe ve adım sayısı gibi platform verileri kullanılıyorsa döşemede 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'yi kullanarak kutuları işleme

adb, geliştirme sırasında kutuları programatik olarak yüklemek, kaldırmak ve etkinleştirmek için kullanılabilir.

Aşağıdaki komutlarda ComponentName, paket adı ve bu paketin içindeki bir sınıftan oluşan bir dizedir. Örneğin, com.example.wear.tiles/com.example.wear.tiles.PreviewTileService.

add-tile

COMPONENT_NAME tarafından sağlanan bir kutucuk 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]"

Döngüde zaten bulunan bir kutucuk kaldırılır ve aynı konuma yeniden eklenir. Aksi takdirde Index[0] konumuna eklenir. Ayrıca, döngü maksimum kapasitesine ulaştıysa yeni kutuya yer açmak için son kutu kaldırılır.

show-tile

TILE_INDEX dizinindeki kutuyu etkinleştir.

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 karo ö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: Bu komuta hiçbir yayın alıcısı yanıt vermedi. Bunun nedeni büyük olasılıkla Wear OS sürümünün çok eski olması veya hata ayıklama işleminin çalışmamasıdır.
  • result=1: Başarılı.
  • result>1: Hata.