Menjalankan dan men-debug kartu

Kartu bukan aplikasi, sehingga di-deploy dan diluncurkan menggunakan mekanisme yang berbeda. Jika opsi developer diaktifkan di perangkat (fitur ini diaktifkan secara default di emulator), fitur tambahan yang mendukung pengembangan kartu akan tersedia untuk digunakan di Android Studio dan adb.

Men-deploy kartu

Untuk men-deploy kartu, Anda dapat menginstal aplikasi di perangkat fisik atau emulator menggunakan Android Studio, seperti yang dijelaskan dalam Membangun dan menjalankan aplikasi. Kemudian, dengan mengikuti langkah-langkah yang sama seperti pengguna biasa, tambahkan kartu secara manual ke carousel kartu.

Selama pengembangan aktif, Anda mungkin merasa lebih mudah dan cepat menggunakan fitur Konfigurasi Run/Debug "Kartu Wear OS" Android Studio. Metode ini men-deploy dan mengaktifkan kartu Anda secara otomatis, sehingga memungkinkan interaksi langsung tanpa langkah-langkah manual tambahan.

Membuat konfigurasi secara otomatis

Cara termudah untuk men-deploy dan menjalankan kartu adalah dengan menggunakan ikon "jalankan layanan" di gutter. Tindakan ini akan otomatis membuat konfigurasi run jika belum ada. Lihat Konfigurasi run/debug Wear OS untuk mengetahui informasi selengkapnya.

Screenshot dengan panah merah yang menunjuk ke "▷" di gutter
Klik "▷" di gutter
Screenshot yang menampilkan panah merah yang mengarah ke dropdown konfigurasi run, dan opsi konfigurasi "TestTileService" yang ditandai dengan garis merah
"Konfigurasi run" akan dibuat secara otomatis

Membuat konfigurasi secara manual

Jika konfigurasi otomatis tidak berfungsi, atau Anda menginginkan kontrol lebih besar atas hasilnya, lihat petunjuk berikut. Screenshot diambil dari Android Studio Meerkat (2024.3.1).

  1. Pilih opsi "⋮" ("hamburger") dari panel judul.

    Screenshot dengan panah merah yang menunjuk ke opsi "⋮" ("hamburger") dari kolom judul.
  2. Pilih "Edit…".

    "Edit…" adalah opsi pertama di bagian Konfigurasi pada menu drop-down.
  3. Pilih "+" untuk menambahkan konfigurasi pada dialog yang muncul.

    Screenshot dengan panah merah yang menunjuk ke "+".
  4. Pilih "Wear OS Tile" sebagai jenis konfigurasi baru.

    Screenshot dengan panah merah yang mengarah ke opsi konfigurasi "Wear OS Tile".
  5. Masukkan nama untuk konfigurasi Anda, lalu pilih modul dan kartu yang sesuai.

    Screenshot dengan tiga panah merah yang mengarah ke area jendela dialog.
  6. Ketuk "Oke". Konfigurasi Anda akan muncul di kolom judul. Ketuk tombol "▷" ("jalankan") dan kartu Anda akan di-deploy dan diaktifkan.

Melihat pratinjau kartu di Android Studio

Mulai Rilis Fitur Android Studio Koala, Anda dapat melihat ringkasan kartu aplikasi Wear OS. Panel ini sangat berguna jika tampilan kartu Anda berubah sebagai respons terhadap kondisi, seperti konten yang berbeda bergantung pada ukuran layar perangkat, atau acara olahraga yang mencapai jeda istirahat.

Nama grup di panel pratinjau cocok dengan nama grup yang diberikan dalam
    anotasi pratinjau
Panel pratinjau kartu di Android Studio.

Menambahkan dependensi

Sertakan dependensi berikut dalam file build.gradle.kts atau build.gradle aplikasi Anda:

dependencies {
    implementation("androidx.wear.tiles:tiles-tooling-preview:1.5.0")
    debugImplementation("androidx.wear.tiles:tiles-tooling:1.5.0")
    implementation("androidx.wear:wear-tooling-preview:1.0.0")
}

Mengonfigurasi pratinjau kartu

Untuk melihat pratinjau tampilan kartu Anda pada berbagai ukuran layar Wear OS, tambahkan anotasi @Preview, dan teruskan parameter device. Perhatikan bahwa anotasi @Preview ini berasal dari paket yang berbeda dengan yang Anda gunakan untuk pratinjau composable.

import androidx.wear.tiles.tooling.preview.Preview

@Preview(device = WearDevices.SMALL_ROUND)
@Preview(device = WearDevices.LARGE_ROUND)
fun tilePreview(context: Context) = TilePreviewData(
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildMyTileLayout()
        ).build()
    }
)

Menambahkan dan mendaftarkan resource

Jika kartu Anda menggunakan resource Android, Anda harus mendaftarkannya dalam parameter onTileResourceRequest dari TilePreviewData, seperti yang ditunjukkan dalam cuplikan kode berikut:

import androidx.wear.tiles.tooling.preview.Preview

@Preview(device = WearDevices.SMALL_ROUND)
fun previewWithResources(context: Context) = TilePreviewData(
    onTileResourceRequest = { request ->
        Resources.Builder()
            .setVersion(myResourcesVersion)
            .addIdToImageMapping(
                    myImageId, getImageById(R.drawable.myDrawableImageId))
            .build()
    },
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildMyTileLayout()
        ).build()
    }
)

fun getImageById(
    @DrawableRes id: Int,
): ImageResource =
    ImageResource.Builder()
        .setAndroidResourceByResId(
            AndroidImageResourceByResId.Builder()
                .setResourceId(id)
                .build(),
        )
        .build()

Menampilkan nilai tertentu dari sumber data platform

Jika kartu Anda menggunakan data platform—seperti detak jantung, kalori, jarak, dan langkah—kartu akan menampilkan nilai default untuk data tersebut.

Untuk menampilkan nilai tertentu, tetapkan parameter platformDataValues saat membuat objek TilePreviewData, seperti yang ditunjukkan dalam cuplikan kode berikut:

import androidx.wear.tiles.tooling.preview.Preview

@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(
            buildMyTileLayout()
        ).build()
    }
)

Memanipulasi kartu menggunakan adb

adb dapat digunakan untuk menginstal, menghapus, dan mengaktifkan kartu secara terprogram selama pengembangan.

Dalam perintah berikut, ComponentName adalah string yang terdiri dari nama paket dan class di dalam paket tersebut, misalnya com.example.wear.tiles/com.example.wear.tiles.PreviewTileService.

add-tile

Menambahkan kartu yang disediakan oleh COMPONENT_NAME dan menampilkan indeks.

adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation add-tile --ecn component [COMPONENT_NAME]

Contoh output:

Broadcast completed: result=1, data="Index=[0]"

Jika kartu sudah ada di carousel, kartu tersebut akan dihapus dan dimasukkan kembali di lokasi yang sama. Jika tidak, akan disisipkan di Index[0]. Selain itu, jika carousel berada pada kapasitas maksimumnya, kartu terakhir akan dihapus untuk memberi ruang bagi kartu baru.

show-tile

Aktifkan kartu di indeks TILE_INDEX.

adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SYSUI --es operation show-tile --ei index [TILE_INDEX]

Contoh output:

Broadcast completed: result=1

remove-tile

Menghapus semua instance kartu di carousel yang terkait dengan COMPONENT_NAME.

adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation remove-tile --ecn component [COMPONENT_NAME]

Contoh output:

result=1, data="Tile(s) removed."

Nilai yang ditampilkan

  • result=0: Tidak ada penerima siaran yang merespons perintah ini, kemungkinan besar karena versi Wear OS terlalu lama, atau proses debug tidak berjalan.
  • result=1: Berhasil.
  • result>1: Error.