האריחים הם לא אפליקציות, ולכן הם נפרסים ומופעלים באמצעות מנגנונים שונים.
כשאפשרויות למפתחים מופעלות במכשיר (התכונות האלה מופעלות כברירת מחדל באמולטורים), תכונות נוספות שתומכות בפיתוח של רכיבים גרפיים הופכות זמינות לשימוש גם ב-Android Studio וגם ב-adb.
פריסת כרטיסי מידע
כדי לפרוס את הלחצן, אפשר להתקין את האפליקציה במכשיר פיזי או באמולטור באמצעות Android Studio, כמו שמתואר במאמר Build and run your app. לאחר מכן, פועלים לפי אותם השלבים כמו משתמשים רגילים כדי להוסיף את הלחצן ידנית לגלגל הלחצנים.
במהלך פיתוח פעיל, יכול להיות שיהיה לכם קל ומהיר יותר להשתמש בתכונה "Wear OS Tile" Run/Debug Configuration של Android Studio. השיטה הזו מאפשרת לפרוס ולהפעיל את המשבצת באופן אוטומטי, כך שאפשר להתחיל להשתמש בה באופן מיידי בלי לבצע פעולות ידניות נוספות.
יצירת הגדרה באופן אוטומטי
הדרך הכי קלה לפרוס ולהפעיל משבצת היא באמצעות הסמל 'הפעלת שירות' בשוליים. אם הגדרת ההרצה לא קיימת, היא נוצרת באופן אוטומטי. מידע נוסף מופיע במאמר בנושא הגדרות הרצה/ניפוי באגים ב-Wear OS.
יצירת הגדרה באופן ידני
אם ההגדרה האוטומטית לא פועלת, או אם אתם רוצים יותר שליטה על התוצאה, אפשר להיעזר בהוראות הבאות. צילומי המסך הם מ-Android Studio Meerkat (2024.3.1).
בוחרים באפשרות '⋮' ('המבורגר') מסרגל הכותרת.
בוחרים באפשרות 'עריכה…'.
לוחצים על '+' כדי להוסיף הגדרה בתיבת הדו-שיח שמופיעה.
בוחרים באפשרות Wear OS Tile (משבצת Wear OS) כסוג ההגדרה החדשה.
נותנים שם להגדרה ובוחרים את המודול והאריח לפי הצורך.
מקישים על 'אישור'. ההגדרה שלכם תופיע בסרגל הכותרת. מקישים על הלחצן "▷" ("הפעלה"), והאריח ייפרס ויופעל.
תצוגה מקדימה של משבצות ב-Android Studio
החל מ-Android Studio Koala Feature Drop, אפשר לראות תמונות מצב של כרטיסי המידע של אפליקציית Wear OS. החלונית הזו שימושית במיוחד אם המראה של המשבצת משתנה בתגובה לתנאים, למשל תוכן שונה בהתאם לגודל המסך של המכשיר, או אירוע ספורט שמגיע להפסקה בין המחציות.
הוספת יחסי תלות
מוסיפים את יחסי התלות הבאים לקובץ build.gradle.kts או build.gradle של האפליקציה:
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")
}
הגדרת תצוגות מקדימות של אריחים
כדי לראות תצוגה מקדימה של מראה ה-Tile בגדלים שונים של מסכים ב-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() }
הוספה ורישום של משאבים
אם ה-Tile משתמש במשאבים של 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: שגיאה.