اجرا و اشکال‌زدایی کاشی

کاشی‌ها برنامه نیستند و بنابراین بااستفاده از سازوکارهای متفاوتی مستقر و راه‌اندازی می‌شوند. وقتی گزینه‌های توسعه‌دهندگان در دستگاهی فعال باشد (شبیه‌سازها این ویژگی‌ها را به‌طور پیش‌فرض فعال دارند)، ویژگی‌های اضافی که از توسعه کاشی پشتیبانی می‌کنند برای استفاده در استودیو Android و adb دردسترس قرار می‌گیرند.

استقرار کاشی‌ها

برای استقرار کاشی، می‌توانید برنامه‌تان را بااستفاده از Android Studio در دستگاه فیزیکی یا شبیه‌ساز نصب کنید، همان‌طور که در ساختن و اجرای برنامه شرح داده شده است. سپس، با دنبال کردن همان مراحل کاربران عادی، کاشی را به‌طور دستی به گردونه کاشی‌ها اضافه کنید.

درطول توسعه فعال، ممکن است استفاده از ویژگی پیکربندی اجرا/اشکال‌زدایی «کاشی Wear OS» در Android Studio برای شما آسان‌تر و سریع‌تر باشد. این روش کاشی شما را به‌طور خودکار مستقر و فعال می‌کند و امکان تعامل فوری را بدون مراحل دستی اضافی فراهم می‌کند.

ایجاد خودکار پیکربندی

ساده‌ترین راه برای استقرار و اجرای کاشی استفاده از نماد «اجرای سرویس» در حاشیه است. این کار به‌طور خودکار پیکربندی اجرایی ایجاد می‌کند، اگر ازقبل وجود نداشته باشد. برای اطلاعات بیشتر، به پیکربندی‌های اجرا/اشکال‌زدایی Wear OS مراجعه کنید.

نماگرفتی با پیکان قرمز که به «▷» در حاشیه اشاره می‌کند
روی «▷» در حاشیه کلیک کنید
نماگرفتی که پیکربندی اجرای منو کرکره‌ای را با پیکان قرمز نشان می‌دهد و گزینه پیکربندی «TestTileService» با خط قرمز مشخص شده است
«پیکربندی اجرا» به‌طور خودکار ایجاد می‌شود

ایجاد پیکربندی به‌صورت دستی

اگر پیکربندی خودکار کار نمی‌کند یا می‌خواهید کنترل بیشتری روی نتیجه داشته باشید، دستورالعمل‌های زیر را ببینید. نماگرفت‌ها از «استودیو Android» Meerkat (2024.3.1) گرفته شده‌اند.

  1. گزینه «⋮» («همبرگر») را از نوار عنوان انتخاب کنید.

    نماگرفتی با پیکان قرمز که به گزینه «⋮» («همبرگر») در نوار عنوان اشاره می‌کند.
  2. «ویرایش…» را انتخاب کنید.

    «ویرایش…» اولین گزینه در بخش «پیکربندی» فهرست کرکره‌ای است.
  3. در کادر گفتگویی که ظاهر می‌شود، «+» را برای افزودن پیکربندی انتخاب کنید.

    نماگرفتی با پیکان قرمز که به «+» اشاره می‌کند.
  4. «کاشی Wear OS» را به‌عنوان نوع پیکربندی جدید انتخاب کنید.

    نماگرفتی با پیکان قرمز که به گزینه پیکربندی «کاشی Wear OS» اشاره می‌کند.
  5. نامی برای پیکربندی‌تان وارد کنید و واحد و کاشی را به‌طور مناسب انتخاب کنید.

    نماگرفتی با سه پیکان قرمز که به نواحی پنجره گفتگو اشاره می‌کنند.
  6. روی «تأیید» تک‌ضرب بزنید. پیکربندی شما در نوار عنوان نشان داده خواهد شد. روی دکمه «▷» («اجرا») تک‌ضرب بزنید تا کاشی شما مستقر و فعال شود.

پیش‌دید کردن کاشی‌ها در «استودیو Android»

از نسخه «نوویژگی Koala در استودیو Android» به‌بعد، می‌توانید عکس‌های آنی کاشی‌های برنامه Wear OS خود را مشاهده کنید. این پانل به‌ویژه زمانی مفید است که ظاهر کاشی شما در پاسخ به شرایط تغییر می‌کند، مانند محتوای متفاوت بسته به اندازه نمایشگر دستگاه، یا رسیدن یک رویداد ورزشی به نیمه بازی.

نام‌های گروه در پانل پیش‌نمایش با نام گروه ارائه‌شده در حاشیه‌نویسی پیش‌نمایش مطابقت دارد
پانل پیش‌نمایش «کاشی‌ها» در «استودیو Android».

افزودن وابستگی‌ها

وابستگی‌های زیر را در فایل build.gradle.kts یا build.gradle برنامه‌تان اضافه کنید:

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")
}

پیکربندی پیش‌نمایش کاشی‌ها

برای دیدن پیش‌نمایش ظاهر کاشی در اندازه‌های مختلف نمایشگر Wear OS، حاشیه‌نویسی @Preview را اضافه کنید و پارامتر device را وارد کنید. توجه داشته باشید که این حاشیه‌نویسی @Preview از بسته متفاوتی نسبت به بسته‌ای است که برای پیش‌نمایش‌های ترکیب‌پذیر استفاده می‌کنید.

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

افزودن و ثبت منابع

اگر کاشی شما از منابع Android استفاده می‌کند، باید آن‌ها را در پارامتر onTileResourceRequest از TilePreviewData ثبت کنید، همان‌طور که در تکه‌کد زیر نشان داده شده است:

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

نمایش مقادیر خاص از منابع داده پلاتفرم

اگر کاشی شما از داده‌های پلاتفرم (مثل ضربان قلب، کالری، مسافت، و تعداد قدم‌ها) استفاده می‌کند، کاشی مقادیر پیش‌فرض را برای آن‌ها نشان می‌دهد.

برای نشان دادن مقدار خاص، هنگام ایجاد شیء TilePreviewData، پارامتر platformDataValues را تنظیم کنید، همان‌طور که در تکه‌کد زیر نشان داده شده است:

@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

از adb می‌توان برای نصب، برداشتن، و فعال کردن کاشی‌ها به‌صورت برنامه‌نویسی‌شده درطول توسعه استفاده کرد.

در فرمان‌های زیر، ComponentName رشته‌ای است که از نام بسته و کلاسی در آن بسته تشکیل شده است، برای مثال com.example.wear.tiles/com.example.wear.tiles.PreviewTileService.

add-tile

کاشی ارائه‌شده توسط COMPONENT_NAME را اضافه می‌کند و نمایه را برمی‌گرداند.

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

خروجی نمونه:

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

اگر کاشی ازقبل در گردونه وجود داشته باشد، برداشته می‌شود و دوباره در همان مکان درج می‌شود. درغیراین‌صورت، در Index[0] درج می‌شود. همچنین، اگر گردونه در حداکثر ظرفیت خود باشد، آخرین کاشی برداشته می‌شود تا فضا برای کاشی جدید باز شود.

show-tile

کاشی را در نمایه TILE_INDEX فعال کنید.

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

خروجی نمونه:

Broadcast completed: result=1

remove-tile

همه نمونه‌های کاشی را در گردونه مرتبط با COMPONENT_NAME برمی‌دارد.

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

خروجی نمونه:

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

برگرداندن مقادیر

  • result=0: هیچ گیرنده رویداد ثبت‌شده‌ای به این فرمان پاسخ نداد، احتمالاً به‌دلیل قدیمی بودن نسخه Wear OS یا اجرا نشدن فرایند اشکال‌زدایی.
  • result=1: موفقیت‌آمیز بود.
  • نتیجه>۱: خطا.