تتضمّن هذه الصفحة تفاصيل التحسينات الاختيارية للأدوات التي تتوفّر بدءًا من Android 12 (مستوى واجهة برمجة التطبيقات 31). هذه الميزات اختيارية، ولكن من السهل تنفيذها وتحسين تجربة المستخدمين مع الأدوات.
لمعرفة طرق إضافية حول كيفية تحسين أداتك، اطّلِع على دليل Compose تحسين أداتك.
استخدام الألوان الديناميكية
بدءًا من Android 12، يمكن للأداة استخدام ألوان مظهر الجهاز للأزرار والخلفيات والمكوّنات الأخرى. ويوفّر ذلك انتقالات أكثر سلاسة واتساقًا بين الأدوات المختلفة.
هناك طريقتان لاستخدام الألوان الديناميكية:
استخدام المظهر التلقائي للنظام (
@android:style/Theme.DeviceDefault.DayNight) في التنسيق الأساسياستخدام مظهر Material 3 (
Theme.Material3.DynamicColors.DayNight) من مكتبة Material Components لنظام Android، المتوفّرة بدءًا من الإص3}Material Components for Android ر 1.6.0.
بعد ضبط المظهر في التنسيق الأساسي، يمكنك استخدام سمات الألوان الشائعة في التنسيق الأساسي أو أي من العناصر التابعة له لاختيار الألوان الديناميكية.
في ما يلي بعض الأمثلة على سمات الألوان التي يمكنك استخدامها:
?attr/primary?attr/primaryContainer?attr/onPrimary?attr/onPrimaryContainer
في المثال التالي الذي يستخدم مظهر Material 3، يكون لون مظهر الجهاز "أرجوانيًا". يتم ضبط لون التمييز وخلفية الأداة للوضعَين الفاتح والداكن، كما هو موضّح في الشكلَين 1 و2.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorPrimaryContainer"
android:theme="@style/Theme.Material3.DynamicColors.DayNight">
<ImageView
...
app:tint="?attr/colorPrimaryContainer"
android:src="@drawable/ic_partly_cloudy" />
<!-- Other widget content. -->
</LinearLayout>
التوافق مع الإصدارات السابقة للألوان الديناميكية
لا تتوفّر الألوان الديناميكية إلا على الأجهزة التي تعمل بنظام Android 12 أو إصدار أحدث. لتوفير مظهر مخصّص للإصدارات الأقدم، أنشئ مظهرًا تلقائيًا بألوانك المخصّصة ومحدِّدًا جديدًا (values-v31) باستخدام سمات المظهر التلقائي.
في ما يلي مثال على استخدام مظهر Material 3:
/values/styles.xml
<resources>
<style name="MyWidgetTheme" parent="Theme.Material3.DynamicColors.DayNight">
<!-- Override default colorBackground attribute with custom color. -->
<item name="android:colorBackground">@color/my_background_color</item>
<!-- Add other colors/attributes. -->
</style>
</resources>
/values-v31/styles.xml
<resources>
<!-- Do not override any color attribute. -->
<style name="MyWidgetTheme" parent="Theme.Material3.DynamicColors.DayNight" />
</resources>
/layout/my_widget_layout.xml
<resources>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:background="?android:attr/colorBackground"
android:theme="@style/MyWidgetTheme" />
</resources>
تفعيل الدعم الصوتي
تتيح "مهامّ في التطبيقات" لمساعد Google عرض الأدوات استجابةً للأوامر الصوتية ذات الصلة التي يوجّهها المستخدم. من خلال ضبط أداتك للاستجابة للأهداف المضمّنة (BII)، يمكن لتطبيقك عرض الأدوات بشكل استباقي على أسطح "مساعد Google"، مثل Android وAndroid Auto. يمكن للمستخدمين تثبيت الأدوات التي يعرضها "مساعد Google" على مشغّل التطبيقات، ما يشجّع على التفاعل في المستقبل.
على سبيل المثال، يمكنك ضبط أداة ملخّص التمرين لتطبيق التمارين الرياضية
من أجل تنفيذ الأوامر الصوتية للمستخدم التي تؤدي إلى تشغيل
GET_EXERCISE_OBSERVATION
الهدف المضمّن. يعرض "مساعد Google" أداتك بشكل استباقي عندما يفعّل المستخدمون هذا الهدف المضمّن من خلال
توجيه طلبات مثل "يا Google، كم عدد الأميال التي ركضتها هذا الأسبوع على
ExampleApp؟"
تتوفّر عشرات الأهداف المضمّنة التي تغطي عدة فئات من تفاعلات المستخدمين، ما يتيح لأي تطبيق Android تقريبًا تحسين أدواته للاستخدام الصوتي. للبدء، اطّلِع على دمج مهامّ في التطبيقات مع أدوات Android.
تفعيل انتقالات أكثر سلاسة
بدءًا من Android 12، توفّر مشغّلات التطبيقات انتقالاً أكثر سلاسة عندما يفتح المستخدم تطبيقك من أداة.
لتفعيل هذا الانتقال المحسّن، استخدِم @android:id/background أو android.R.id.background لتحديد عنصر الخلفية:
// Top-level layout of the widget.
<LinearLayout
android:id="@android:id/background">
</LinearLayout>
يمكن لتطبيقك استخدام @android:id/background على الإصدارات السابقة من Android بدون حدوث أي مشاكل، ولكن يتم تجاهله.
استخدام التعديل في وقت التشغيل لـ RemoteViews
بدءًا من Android 12، يمكنك الاستفادة من عدة طرق RemoteViews تتيح تعديل سمات RemoteViews في وقت التشغيل. يمكنك الاطّلاع على المرجع RemoteViews API
للحصول على القائمة الكاملة بالطرق المضافة.
يوضّح مثال الرمز البرمجي التالي كيفية استخدام بعض هذه الطرق.
Kotlin
// Set the colors of a progress bar at runtime. remoteView.setColorStateList(R.id.progress, "setProgressTintList", createProgressColorStateList()) // Specify exact sizes for margins. remoteView.setViewLayoutMargin(R.id.text, RemoteViews.MARGIN_END, 8f, TypedValue.COMPLEX_UNIT_DP)
Java
// Set the colors of a progress bar at runtime. remoteView.setColorStateList(R.id.progress, "setProgressTintList", createProgressColorStateList()); // Specify exact sizes for margins. remoteView.setViewLayoutMargin(R.id.text, RemoteViews.MARGIN_END, 8f, TypedValue.COMPLEX_UNIT_DP);