إنّ المربّعات ليست تطبيقات، لذا يتم نشرها وتشغيلها باستخدام آليات مختلفة.
عندما يكون خيار خيارات المطوّرين مفعّلاً على الجهاز (تكون هذه الميزات مفعّلة تلقائيًا في المحاكيات)، تصبح الميزات الإضافية التي تتيح تطوير مربّعات المعلومات متاحة للاستخدام في كلّ من Android Studio وadb
.
نشر المربّعات
لنشر مربّع العرض، يمكنك تثبيت تطبيقك على جهاز فعلي أو محاكي باستخدام Android Studio، كما هو موضّح في مقالة إنشاء تطبيقك وتشغيله. بعد ذلك، اتّبِع الخطوات نفسها التي يتّبعها المستخدمون العاديون، وأضِف مربّع العرض يدويًا إلى لوحة العرض الدوّارة للمربّعات.
خلال مرحلة التطوير النشطة، قد يكون من الأسهل والأسرع استخدام ميزة "إعدادات تشغيل/تصحيح أخطاء شاشة Wear OS" في "استوديو Android". تعمل هذه المحاولة على نشر مربّع العرض وتفعيله تلقائيًا، ما يتيح التفاعل معه على الفور بدون خطوات يدوية إضافية.
إنشاء الإعدادات تلقائيًا
إنّ أسهل طريقة لنشر مربّع وتشغيله هي استخدام رمز "تشغيل الخدمة" في الشريط الجانبي. يؤدي ذلك تلقائيًا إلى إنشاء إعداد تشغيل إذا لم يكن متوفّرًا. اطّلِع على إعدادات التشغيل/تصحيح الأخطاء في Wear OS للحصول على مزيد من المعلومات.


إنشاء الإعداد يدويًا
إذا لم تنجح عملية الضبط التلقائي أو كنت تريد التحكّم بشكل أكبر في النتيجة، اطّلِع على التعليمات التالية. لقطات الشاشة مأخوذة من Android Studio Meerkat (2024.3.1).
انقر على رمز "⋮" ("الشرائح الثلاث") من شريط العنوان.
انقر على "تعديل…".
انقر على علامة الإضافة "+" لإضافة عملية ضبط في مربّع الحوار الذي يظهر.
اختَر "وحدة Wear OS" كنوع الإعداد الجديد.
أدخِل اسمًا لإعدادك واختَر الوحدة والقسم وفقًا للملاءمة.
انقر على "حسنًا". ستظهر الإعدادات في شريط العنوان. انقر على الزر "▷" ("تشغيل") وسيتم نشر مربّع الشاشة وتفعيله.
معاينة المربّعات في "استوديو Android"
اعتبارًا من الإصدار الذي يتضمّن ميزات جديدة من "استوديو Android"، وهو Koala، يمكنك عرض نبذات عن شاشة التطبيقات المكوّنة من مربّعات في Wear OS. تكون هذه اللوحة مفيدة بشكل خاص إذا كان شكل مربّع الشاشة يتغيّر استجابةً للظروف، مثل محتوى مختلف استنادًا إلى حجم شاشة الجهاز أو حدث رياضي يصل إلى وقت الاستراحة.

إضافة التبعيات
أدرِج التبعيات التالية في ملف build.gradle.kts
أوملف
build.gradle
في تطبيقك:
dependencies {
implementation("androidx.wear.tiles:tiles-tooling-preview:1.5.0-alpha10")
debugImplementation("androidx.wear.tiles:tiles-tooling:1.5.0-alpha10")
implementation("androidx.wear:wear-tooling-preview:1.0.0")
}
ضبط معاينات المربّعات
للاطّلاع على معاينة لشكل مربّع التطبيق على أحجام مختلفة من شاشات Wear OS،
أضِف التعليق التوضيحي @Preview
وأدخِل المَعلمة device
. يُرجى العِلم أنّ annotation
@Preview
هذا من حزمة مختلفة عن الحزمة التي تستخدمها في
المعاينات القابلة للتجميع.
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()
}
)
إضافة الموارد وتسجيلها
إذا كانت مربّعة الرموز التعبيرية تستخدم موارد Android، عليك تسجيلها ضمن المَعلمة
onTileResourceRequest
في TilePreviewData
، كما هو موضّح في
مقتطف الرمز التالي:
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()
عرض قيم معيّنة من مصادر بيانات المنصة
إذا كان مربّع التطبيق يستخدم بيانات المنصة، مثل معدّل ضربات القلب والسعرات الحرارية والمسافة والخطوات، يعرض مربّع التطبيق قيمًا تلقائية لها.
لعرض قيمة معيّنة، اضبط المَعلمة platformDataValues
عند إنشاء
كائن TilePreviewData
، كما هو موضّح في مقتطف الرمز البرمجي التالي:
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() } )
التلاعب بشاشات المعلومات باستخدام 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: خطأ.