تتضمّن هذه الصفحة تفاصيل حول التحسينات الاختيارية للأدوات التي تتوفّر بدءًا من Android 12 (مستوى واجهة برمجة التطبيقات 31). هذه الميزات اختيارية، ولكن من السهل تنفيذها وتحسين تجربة المستخدمين مع الأدوات.
لمعرفة طرق إضافية حول كيفية تحسين أداتك، اطّلِع على دليل Compose تحسين أداتك.
استخدام الألوان الديناميكية
بدءًا من Android 12، يمكن للأداة استخدام ألوان مظهر الجهاز للأزرار والخلفيات والمكوّنات الأخرى. ويوفّر ذلك انتقالات أكثر سلاسة واتساقًا بين الأدوات المختلفة.
هناك طريقتان لاستخدام الألوان الديناميكية:
استخدام المظهر التلقائي للنظام (
@android:style/Theme.DeviceDefault.DayNight) في التنسيق الأساسياستخدام مظهر Material 3 (
Theme.Material3.DynamicColors.DayNight) من مكتبة Material Components لنظام Android، المتوفّرة بدءًا من 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 android:layout_width="wrap_content" android:layout_height="wrap_content" app:tint="?attr/colorPrimaryContainer" android:src="@drawable/ic_cloud" /> <!-- 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
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="?android:attr/colorBackground" android:theme="@style/MyWidgetTheme" />
تفعيل الدعم الصوتي
تتيح "مهامّ في التطبيقات" لمساعد 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 xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/background" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> </LinearLayout>
يمكن لتطبيقك استخدام @android:id/background على إصدارات Android السابقة بدون حدوث أي مشاكل، ولكن يتم تجاهله.
استخدام التعديل في وقت التشغيل لـ RemoteViews
بدءًا من Android 12، يمكنك الاستفادة من عدة طرق RemoteViews تتيح تعديل سمات RemoteViews في وقت التشغيل. اطّلِع على مرجع واجهة برمجة التطبيقات RemoteViews API
للحصول على القائمة الكاملة بالطرق المضافة.
يعرض مثال الرمز البرمجي التالي كيفية استخدام بعض هذه الطرق.
// 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_DIP )