הפעלה וניפוי באגים של משבצת

משבצות הן לא אפליקציות, ולכן הן נפרסות ומופעלות באמצעות מנגנונים שונים. כשאפשרויות למפתחים מופעלות במכשיר (באמולטורים התכונות האלה מופעלות כברירת מחדל), תכונות נוספות שתומכות בפיתוח משבצות זמינות לשימוש גם ב-Android Studio וגם ב-adb.

פריסת משבצות

כדי לפרוס את המשבצת, אתם יכולים להתקין את האפליקציה במכשיר פיזי או באמולטור באמצעות Android Studio, כפי שמתואר במאמר פיתוח והפעלה של האפליקציה. לאחר מכן, בצעו את אותם השלבים כמו משתמשים רגילים, והוסיפו באופן ידני את המשבצת לקרוסלת המשבצות.

במהלך הפיתוח, יכול להיות שיהיה לכם קל ומהיר יותר להשתמש בתכונה "משבצת Wear OS" הגדרת הרצה/ניפוי באגים של Android Studio. השיטה הזו פורסת ומפעילה את המשבצת באופן אוטומטי, ומאפשרת אינטראקציה מיידית בלי שלבים ידניים נוספים.

יצירת הגדרה אישית באופן אוטומטי

הדרך הכי קלה לפרוס ולהריץ משבצת היא להשתמש בסמל "הפעלת השירות" בשוליים. אם עדיין לא קיימת הגדרת הרצה, היא נוצרת באופן אוטומטי. מידע נוסף זמין במאמר הגדרות הרצה/ניפוי באגים ב-Wear OS.

צילום מסך עם חץ אדום שמצביע על "▷" בשוליים
לוחצים על "▷" בשוליים
צילום מסך עם חץ אדום שמצביע על התפריט הנפתח של הגדרת ההפעלה, והאפשרות TestTileService מוקפת באדום
המערכת יוצרת באופן אוטומטי "תצורת הרצה"

יצירת הגדרה אישית באופן ידני

אם ההגדרה האוטומטית לא עובדת, או אם אתם רוצים יותר שליטה על התוצאה, אתם יכולים להיעזר בהוראות הבאות. צילומי המסך הם מ-Android Studio Meerkat‏ (2024.3.1).

  1. לוחצים על סמל האפשרויות הנוספות (⋮) בסרגל הכותרת.

    צילום מסך עם חץ אדום שמצביע על האפשרות "⋮" (תפריט ההמבורגר) בסרגל הכותרת.
  2. לוחצים על "עריכה…".

    האפשרות "עריכה…" היא האפשרות הראשונה בקטע "הגדרה" בתפריט הנפתח.
  3. לוחצים על "+" כדי להוסיף הגדרה בתיבת הדו-שיח שמופיעה.

    צילום מסך עם חץ אדום שמצביע על "+".
  4. בוחרים באפשרות Wear OS Tile (משבצת Wear OS) כסוג ההגדרה החדשה.

    צילום מסך עם חץ אדום שמצביע על אפשרות ההגדרה "משבצת Wear OS".
  5. נותנים שם להגדרה ובוחרים את המודול והמשבצת המתאימים.

    צילום מסך עם שלושה חצים אדומים שמצביעים על אזורים בחלון תיבת הדו-שיח.
  6. לוחצים על "אישור". ההגדרה תופיע בסרגל הכותרת. לוחצים על הכפתור "▷" ("הפעלה") כדי לפרוס ולהפעיל את המשבצת.

תצוגה מקדימה של משבצות ב-Android Studio

החל מגרסת Android Studio Koala Feature Drop, אפשר לראות תמונות מצב של כרטיסי המידע של האפליקציה ל-Wear OS. החלונית הזו שימושית במיוחד אם המראה של המשבצת משתנה בתגובה לתנאים, כמו תוכן שונה בהתאם לגודל המסך של המכשיר, או אירוע ספורט שמגיע למחצית.

שמות הקבוצות בחלונית התצוגה המקדימה תואמים לשם הקבוצה שניתן בהערת התצוגה המקדימה
חלונית התצוגה המקדימה של משבצות ב-Android Studio.

הוספת יחסי תלות

מוסיפים את יחסי התלות הבאים לקובץ 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()
    }
)

הצגת ערכים ספציפיים ממקורות נתונים בפלטפורמה

אם המשבצת משתמשת בנתוני פלטפורמה, כמו דופק, קלוריות, מרחק וצעדים, המשבצת מציגה את ערכי ברירת המחדל שלהם.

כדי להציג ערך ספציפי, מגדירים את הפרמטר platformDataValues כשיוצרים את האובייקט TilePreviewData, כמו שמוצג בקטע הקוד הבא:

@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: הצלחה.
  • ‫result>1: שגיאה.