نظرة عامة على الميزات وواجهات برمجة التطبيقات

يقدّم نظام Android 13 ميزات وواجهات برمجة تطبيقات جديدة رائعة للمطوّرين. تساعدك الأقسام التالية في التعرّف على ميزات تطبيقاتك والبدء باستخدام واجهات برمجة التطبيقات ذات الصلة.

للحصول على قائمة مفصّلة لواجهات برمجة التطبيقات الجديدة والمعدَّلة والمُزالة، يُرجى قراءة تقرير اختلافات واجهة برمجة التطبيقات. للاطّلاع على تفاصيل عن واجهات برمجة التطبيقات الجديدة، يُرجى الانتقال إلى مرجع واجهة برمجة تطبيقات Android. ويتم تمييز واجهات برمجة التطبيقات الجديدة لسهولة الاطّلاع عليها. لمعرفة الجوانب التي قد تؤثر فيها تغييرات النظام الأساسي في تطبيقاتك، احرص على الاطّلاع على التغييرات في سلوك Android 13 بالنسبة إلى التطبيقات التي تستهدف Android 13 وبالنسبة إلى كل التطبيقات.

أدوات وإنتاجية المطوّرين

رموز تطبيقات مستوحاة من موضوع معيّن

تفعيل المستخدمين لرموز التطبيقات المستوحاة من موضوع معيّن
تفعيل رموز التطبيقات المخصّصة حسب الموضوع على Android 13

بدءًا من الإصدار 13 من نظام Android، يمكنك تفعيل رموز التطبيقات المخصّصة حسب المظهر. باستخدام هذه الميزة، يتم تلوين رموز التطبيقات في مشغّلات Android المتوافقة لتتطابق مع لون الخلفية التي اختارها المستخدم وغيرها من المظاهر.

لتفعيل هذه الميزة، يجب أن يقدّم تطبيقك كلاً من رمز متوافق ورمز تطبيق أحادي اللون، وأن يشير إلى رمز التطبيق الأحادي اللون من عنصر <adaptive-icon> في البيان. إذا فعَّل المستخدم رمزَي التطبيق المخصّصَين للنسق (بمعنى آخر، فعَّل زر التبديل الرموز المخصّصة للنسق في إعدادات النظام)، وكان مشغّل التطبيقات متوافقًا مع هذه الميزة، يستخدم النظام ألوان الخلفية والمظهر اللذَين اختارهما المستخدم لتحديد لون الصبغة، ثم يطبّق هذا اللون على رمز التطبيق الأحادي اللون.

لا تعرض الشاشة الرئيسية رمز التطبيق المخصّص لموضوع معيّن، بل تعرض بدلاً من ذلك رمز التطبيق التكيُّفي أو العادي، وذلك في أيّ من السيناريوهات التالية:

  • إذا لم يفعِّل المستخدم رموز التطبيقات المستوحاة من موضوع معيّن
  • إذا لم يقدّم تطبيقك رمزًا أحادي اللون
  • إذا كان مشغّل التطبيقات لا يتوافق مع رموز التطبيقات المستوحاة من موضوع معيّن

لمعرفة مزيد من التفاصيل والتعليمات، يُرجى الاطّلاع على الرموز التكيُّفية.

إعدادات اللغة المخصّصة حسب التطبيقات

اللغات حسب التطبيق في إعدادات النظام

في كثير من الحالات، يحدِّد المستخدمون المتعدّدون اللغات لغة واحدة للنظام، مثل الإنجليزية، لكنّهم يريدون اختيار لغات أخرى لتطبيقات معيّنة، مثل الهولندية أو الصينية أو الهندية. لمساعدة التطبيقات في تقديم تجربة أفضل لهؤلاء المستخدِمين، يقدّم Android 13 الميزات التالية للتطبيقات التي تتيح استخدام لغات متعدّدة:

  • إعدادات النظام: موقع مركزي يمكن للمستخدمين من خلاله اختيار لغة مفضّلة لكل تطبيق.

    يجب أن يُعلن تطبيقك عن السمة android:localeConfig فيملفه التعريفي لإعلام النظام بأنّه يتيح استخدام لغات متعددة. لمزيد من المعلومات، اطّلِع على تعليمات إنشاء ملف موارد وتعريفه في ملف بيان تطبيقك.

  • واجهات برمجة التطبيقات الإضافية: تتيح واجهات برمجة التطبيقات العامة هذه، مثل الأسلوبين setApplicationLocales() و getApplicationLocales() في LocaleManager، للتطبيقات تحديد لغة مختلفة عن لغة النظام أثناء التشغيل.

    تتم مزامنة واجهات برمجة التطبيقات هذه تلقائيًا مع إعدادات النظام، وبالتالي، تضمن التطبيقات التي تستخدم واجهات برمجة التطبيقات هذه لإنشاء أدوات اختيار لغات مخصّصة داخل التطبيق حصول المستخدمين على تجربة متسقة بغض النظر عن مكان اختيارهم لإعدادات اللغة المفضّلة لديهم. تساعدك واجهات برمجة التطبيقات المتاحة للجميع أيضًا في تقليل كمية الرموز البرمجية المتكررة، كما تتيح استخدام حِزم APK مجزّأة، والاحتفاظ بنسخة احتياطية تلقائية للتطبيقات لتخزين إعدادات لغة المستخدم على مستوى التطبيق.

    للتوافق مع الإصدارات السابقة من Android، تتوفر أيضًا واجهات برمجة التطبيقات المكافئة في AndroidX. ننصحك باستخدام واجهات برمجة التطبيقات المُضافة في Appcompat 1.6.0-beta01 أو إصدار أحدث.

ولن تتأثر التطبيقات التي لا تتيح استخدام لغات متعددة بهذه التغييرات.

دعم محسّن للنصوص واللغات

يتضمّن Android 13 العديد من ميزات تحسينات النصوص واللغات التي تساعدك في تقديم تجربة أكثر دقة، كما توضّح الأقسام التالية:

تقسيم الكلمات إلى مقاطع أسرع

تجعل علامات الربط النص المنسَّق أسهل في القراءة وتساعد في جعل واجهة المستخدم أكثر تكيفًا. بدءًا من Android 13، تم تحسين أداء تقسيم الكلمات بنسبة تصل إلى ‎200% حتى تتمكّن من تفعيله في TextView بدون أي تأثير تقريبًا على أداء عرض النص. لتفعيل ميزة تقسيم الكلمات إلى مقاطع أسرع، استخدِم التردّدات fullFast أو normalFast في setHyphenationFrequency().

Text Conversion APIs

يستخدم الأشخاص الذين يتحدثون لغات مثل اليابانية والصينية طرق إدخال محتوى برمجيًا باستخدام الأحرف اللاتينية، ما يؤدي غالبًا إلى إبطاء عملية البحث والميزات مثل ميزة "إكمال تلقائي". في Android 13، يمكن للتطبيقات طلب واجهة برمجة التطبيقات لتحويل النصوص الجديدة ليتمكّن المستخدمون من العثور على ما يبحثون عنه بشكل أسرع وأسهل. في السابق، على سبيل المثال، كان على المستخدم الياباني اتّباع الخطوات التالية للبحث:

  1. إدخال Hiragana كطريقة لفظ عبارة البحث (مثل مكان أو اسم تطبيق)
  2. استخدام لوحة المفاتيح لتحويل أحرف الهيراغانا إلى كانجي
  3. إعادة البحث باستخدام أحرف الكانجي
  4. الحصول أخيرًا على نتائج البحث

باستخدام واجهة برمجة التطبيقات الجديدة لتحويل النصوص، يمكن للمستخدمين اليابانيين كتابة Hiragana والاطّلاع على نتائج البحث عن Kanji مباشرةً، مع تخطّي الخطوتَين 2 و3.

ارتفاعات سطور محسّنة للنصوص البرمجية غير اللاتينية

يحسّن نظام التشغيل Android 13 عرض النصوص غير اللاتينية (مثل التاميل والبورمية والتيلوغو والتبتية) باستخدام ارتفاع سطر مُعدّ لكل لغة. تمنع ارتفاعات الأسطر الجديدة اقتصاص الأحرف وتحسين موضع الأحرف. يمكن لتطبيقك الاستفادة من هذه التحسينات من خلال استهداف Android 13 فقط. احرص على اختبار تطبيقاتك عند استخدام المسافة الجديدة بين الأسطر لأنّ التغييرات قد تؤثر في واجهة المستخدم بلغات غير اللاتينية.

تم ضبط ارتفاعات الخطوط في الإصدار 12 (الموضَّحة أعلاه) من نظام التشغيل Android، وتم ضبطها الآن على نحو أفضل ولم يتم تثبيتها في الإصدار 13 من نظام التشغيل Android (أدناه).

تحسين التفاف النص باللغة اليابانية

اعتبارًا من الإصدار 13 من Android، يمكن أن تُلفّ TextViews النص حسب Bunsetsu (أصغر وحدة من الكلمات التي تبدو طبيعية) أو العبارات، بدلاً من حسب الحرف، لتطبيقات يابانية أكثر دقة وسهولة في القراءة. يمكنك الاستفادة من هذا الالتفاف باستخدام android:lineBreakWordStyle="phrase" مع TextViews.

التفاف النص الياباني مع تفعيل نمط العبارة (أدناه) بدونه (أعلى).

تعديلات على مكتبة Unicode

يضيف نظام التشغيل Android 13 أحدث التحسينات والإصلاحات والتغييرات المضمّنة في Unicode ICU 70، Unicode CLDR 40، وUnicode 14.0.

في ما يلي بعض التغييرات البارزة:

  • الإنجليزية (كندا) en‑CA والإنجليزية (جمهورية الفلبين) en‑PH تستخدمان موارد الترجمة باللغة الإنجليزية (الولايات المتحدة) en في حال عدم توفُّر موارد ترجمة بدلاً من الإنجليزية (المملكة المتحدة) en‑GB.
  • تمّت إضافة فئة الجمع many للغة الإسبانية es والإيطالية it والبرتغالية pt والبرتغالية (البرتغال) pt‑PT. يُستخدَم هذاالتنسيق للأرقام الكبيرة، وهو مشابه لتنسيق اللغة الفرنسية الذي تم تقديمه في الإصدار 38 من CLDR.

خطوط متجهة الألوان

رمز إيموجي مرسوم بتنسيق COLRv1 (على يمين الشاشة) ورمز إيموجي مرسوم بتنسيق مخطّط بكسل (على يمين الشاشة)

بدءًا من Android 13، يتضمّن النظام ميزة عرض خطوط COLR الإصدار 1 (COLRv1) ويحدّث رموز النظام التعبيرية إلى تنسيق COLRv1. ‫COLRv1 هو تنسيق خط مكتظ للغاية يتم عرضه بسرعة ووضوح بأي حجم.

بالنسبة إلى معظم التطبيقات، يتولى النظام كل شيء ويعمل معيار COLRv1 على نحو جيد. ومع ذلك، إذا كان تطبيقك ينفِّذ ميزة عرض النصوص الخاصة به ويستخدم خطوط النظام، ننصحك باختبار ميزة عرض الرموز التعبيرية.

لمزيد من المعلومات حول COLRv1، يُرجى الاطّلاع على المراجع التالية:

واجهة برمجة تطبيقات موضع الإعدادات السريعة

إنّ "الإعدادات السريعة" في مربّع الإشعارات هي طريقة ملائمة للمستخدمين لتغيير الإعدادات أو اتّخاذ إجراءات سريعة بدون مغادرة سياق التطبيق. بالنسبة إلى التطبيقات التي تقدّم شرائح مخصّصة، نسهّل على المستخدمين اكتشاف شرائحك وإضافتها إلى "الإعدادات السريعة". باستخدام واجهة برمجة تطبيقات جديدة مخصّصة لوضع مربّعات الشاشة، يمكن لتطبيقك الآن أن يطلب من المستخدم إضافة مربّع الشاشة المخصّص مباشرةً إلى مجموعة مربّعات الشاشة النشطة ضمن "الإعدادات السريعة". يتيح مربّع حوار النظام الجديد للمستخدم إضافة المربّع في خطوة واحدة بدون مغادرة تطبيقك، بدلاً من الانتقال إلى "الإعدادات السريعة" لإضافة المربّع.

مربّع حوار يسأل المستخدم عما إذا كان يريد إضافة مربّع إلى
          &quot;الإعدادات السريعة&quot;

معاينة الحافظة

بدءًا من الإصدار 13 من نظام Android، يعرض النظام تأكيدًا مرئيًا عاديًا عند إضافة محتوى إلى الحافظة. ينفّذ التأكيد الجديد ما يلي:

  • لتأكيد نسخ المحتوى بنجاح
  • يوفّر معاينة للمحتوى المنسوخ.

تعمل هذه الميزة على توحيد الإشعارات المختلفة التي تعرضها التطبيقات بعد النسخ، وتمنح المستخدمين مزيدًا من التحكّم في حافظة النسخ واللصق. للحصول على معلومات إضافية، انتقِل إلى صفحة ميزة النسخ واللصق.

تطبيق مصغّر للنسخ واللصق
تظهر واجهة المستخدم الجديدة عند دخول المحتوى إلى الحافظة.

إيماءة إظهار شاشة الرجوع

يوفّر Android 13 إيماءة توقّعية الرجوع إلى الشاشة السابقة لأجهزة Android، مثل الهواتف والشاشات الكبيرة والأجهزة القابلة للطي. لتفعيل هذه الميزة، عليك تحديث تطبيقك.

للاطلاع على المستندات التفصيلية، يمكنك الاطّلاع على تحديث تطبيقك لدعم إيماءة الرجوع التنبؤية. يمكنك أيضًا تجربة الدرس التطبيقي حول الترميز.

Bluetooth LE Audio

‫Bluetooth Low Energy (LE) Audio هي تقنية صوت لاسلكي تم تصميمها لاستبدال تقنية Bluetooth الكلاسيكية وتفعيل حالات استخدام وطوبولوجيات اتصال معيّنة. وتتيح هذه التطبيقات للمستخدمين مشاركة المحتوى الصوتي وبثّه مع الأصدقاء والعائلة، أو الاشتراك في البثّ العلني للحصول على معلومات أو ترفيه أو تسهيل الاستخدام. تم تصميمه لضمان حصول المستخدمين على صوت عالي الجودة بدون التأثير في عمر البطارية، ويمكنهم التبديل بسلاسة بين حالات الاستخدام المختلفة التي لا يمكن تحقيقها باستخدام البلوتوث الكلاسيكي. بدءًا من Android 13، يتضمّن النظام إمكانات مدمَجة لاستخدام تكنولوجيا LE Audio، ما يتيح للمطوّرين الحصول على هذه الإمكانات مجانًا على الأجهزة المتوافقة.

الإصدار 2.0 من MIDI

بدءًا من الإصدار 13 من نظام التشغيل Android، يتيح النظام استخدام معيار MIDI 2.0، بما في ذلك إمكانية توصيل أجهزة MIDI 2.0 عبر USB. يوفّر هذا المعيار ميزات مثل زيادة درجة دقة أدوات التحكّم، ودعم أفضل لموسيقى الشرق الأوسط، وأداء أكثر تعبيرًا باستخدام أدوات التحكّم في كل ملاحظة.

تحسينات على كفاءة شاشة البداية

يحسّن Android 13 كفاءة شاشات البداية المتحركة في واجهة برمجة التطبيقات Splash screen API:

  • يستنتج النظام مدة الحركة مباشرةً من AnimatedVectorDrawable. قبل الإصدار Android 13، كان من الضروري ضبط windowSplashScreenAnimationDuration مباشرةً.

  • استخدِم سمة windowSplashScreenBehavior الجديدة لمزيد من التحكّم في ما إذا كان تطبيقك يعرض دائمًا الرمز على شاشة البداية في الإصدار 13 من Android والإصدارات الأحدث.

للاطلاع على المستندات التفصيلية، يمكنك الاطّلاع على شاشات البداية.

تحسينات ART

في الإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) والإصدارات الأحدث، تُسري أداة ART عملية التبديل من رمز التطبيقات الأصلي وإليه بشكلٍ كبير، حيث تُجري الآن طلبات JNI عمليات أسرع بمقدار 2.5 مرة. تمت أيضًا إعادة معالجة المرجع أثناء التشغيل ليصبح غير حظر في معظم الأحيان، ما يؤدي إلى تقليل الارتباك بشكلٍ أكبر. بالإضافة إلى ذلك، يمكنك استخدام واجهة برمجة التطبيقات المفتوحة Reference.refersTo() لاسترداد الكائنات التي يتعذّر الوصول إليها في وقت أقرب، وستلاحظ أنّ المفسِّر أسرع الآن بفضل عمليات البحث المحسّنة عن الفئات والطُرق. تُجري أداة ART أيضًا عمليات تحقّق إضافية من رمز البايت أثناء التثبيت، ما يتجنّب تكاليف التحقّق أثناء وقت التشغيل ويحافظ على سرعات بدء تشغيل التطبيقات.

الخصوصية والأمان

تصدير أكثر أمانًا للمستلِمين المسجَّلين استنادًا إلى سياقهم

للمساعدة في تعزيز أمان أجهزة استقبال وقت التشغيل، يوفّر Android 13 لتطبيقك إمكانية تحديد ما إذا كان يجب تصدير جهاز استقبال البث المسجَّل وجعله مرئيًا للتطبيقات الأخرى على الجهاز. في الإصدارات السابقة من Android، كان بإمكان أي تطبيق على الجهاز إرسال بث غير محمي إلى مقبِّل مسجَّل ديناميكيًا ما لم يكن هذا المُقبِّل محميًا باستخدام إذن توقيع.

تتوفّر إعدادات التصدير هذه في التطبيقات التي تُجري أحد الإجراءين التاليين على الأقل:

  • استخدِم فئة ContextCompat بدءًا من الإصدار 1.9.0 أو إصدار أحدث من مكتبة AndroidX Core.
  • استهدِف الإصدار 13 من نظام التشغيل Android أو إصدارًا أحدث.

أداة اختيار الصور

يتضمّن الإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) والإصدارات الأحدث تجربة أداة اختيار الصور. عندما يطلق تطبيقك "أداة اختيار الصور"، يختار المستخدمون صورًا وفيديوهات معيّنة لمشاركتها مع التطبيق، مثل صور الملف الشخصي، بدلاً من منح التطبيق إذن الوصول لعرض مكتبة الوسائط بأكملها. هذه هي الطريقة المُقترَحة للوصول إلى صور المستخدم والفيديوهات.

توفّر أداة اختيار الصور خصوصية محسّنة للمستخدمين لأنّ تطبيقك ليس بحاجة إلى الإفصاح عن أي أذونات تشغيل. بالإضافة إلى ذلك، يوفّر "أداة اختيار الصور" واجهة مستخدم مدمجة ومُعَدَّة مسبقًا للتطبيقات، ما يمنح المستخدمين تجربة متّسقة.

إذن تشغيل جديد لأجهزة Wi-Fi القريبة

يقدّم الإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) إذن وقت التشغيل جديدًا في مجموعة أذونات NEARBY_DEVICES للتطبيقات التي تدير اتصالات الجهاز بنقاط اتصال مجاورة عبر شبكة Wi-Fi. ويجب أن تذكر هذه التطبيقات الإذن الجديد، NEARBY_WIFI_DEVICES، عند استدعاء عدة واجهات برمجة تطبيقات مختلفة لشبكة Wi-Fi. بالإضافة إلى ذلك، ما دامت التطبيقات لا تحصل على الموقع الجغرافي الفعلي من واجهات برمجة التطبيقات لشبكة Wi-Fi، لن تحتاج التطبيقات إلى تقديم بيان عن إذن ACCESS_FINE_LOCATION عند استهداف نظام التشغيل Android 13 أو الإصدارات الأحدث.

مزيد من المعلومات حول إذن "أجهزة Wi-Fi المجاورة"

إذن جديد لاستخدام المنبّهات المحدَّدة الوقت

إذا كان تطبيقك يستهدف الإصدار 13 من نظام التشغيل Android أو إصدارًا أحدث، يمكنك استخدام إذن USE_EXACT_ALARM الذي يتم منحه لتطبيقك تلقائيًا. ومع ذلك، لكي يتمكّن تطبيقك من استخدام هذا الإذن، يجب أن يستوفي معيارًا واحدًا على الأقل من المعايير التالية:

  • تطبيقك هو تطبيق منبّه أو موقّت.
  • تطبيقك هو أحد تطبيقات التقويم التي تعرض إشعارات الأحداث القادمة.

إذا كان تطبيقك يضبط المنبّهات المحدَّدة الوقت ولم يستوفِ أيًا من الحالتَين الموضّحتَين في القائمة السابقة، يمكنك مواصلة تقديم بيان عن إذن SCHEDULE_EXACT_ALARM بدلاً من ذلك، والاستعداد للموقف الذي يمنع فيه المستخدم الوصول إلى تطبيقك.

أذونات قابلة للإبطال من المطوّرين

بدءًا من الإصدار 13 من نظام التشغيل Android، يمكن لتطبيقك سحب الإذن بالوصول إلى أذونات وقت التشغيل غير المستخدَمة. تسمح واجهة برمجة التطبيقات هذه لتطبيقك بتنفيذ مهام لتحسين الخصوصية، مثل ما يلي:

  • إزالة الأذونات غير المستخدمة
  • الالتزام بأفضل الممارسات المتعلّقة بالأذونات، ما يعزّز ثقة المستخدمين ننصحك بعرض مربّع حوار للمستخدمين يعرض الأذونات التي تمَّ إبطالها بشكل استباقي.

الإصدار 3.1 من مخطّط توقيع حزمة APK

يتيح نظام التشغيل Android 13 استخدام الإصدار 3.1 من مخطّط توقيع حِزم APK، وهو يمثّل تحسينًا على الإصدار الحالي منمخطّط توقيع حِزم APK. يعالج هذا المخطّط بعض المشاكل المعروفة في الإصدار 3 من مخطّط توقيع حزمة APK في ما يتعلّق بالدوران. بشكل خاص، يدعم مخطط التوقيع v3.1 استهداف إصدارات حزمة تطوير البرامج (SDK)، الذي يتيح التناوب استهداف إصدار لاحق من النظام الأساسي.

يستخدم نظام التوقيع في الإصدار 3.1 رقم تعريف حظر لا يتم التعرّف عليه على الإصدار 12L أو الإصدارات الأقدم. لذلك، تطبّق المنصة سلوك الموقّع التالي:

  • تستخدم الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android أو إصدار أحدث الموقّع المتغيّر في الحزمة 3.1.
  • تتجاهل الأجهزة التي تعمل بإصدارات قديمة من Android الموقّع الذي تمّت بدالته ويستخدم بدلاً من ذلك الموقّع الأصلي في مجموعة التوقيعات من الإصدار 3.0.

لا تتطلّب التطبيقات التي لم يتم استبدال مفتاح توقيعها بعد أي إجراء إضافي. عندما تختار هذه التطبيقات التبديل، يطبّق النظام مخطّط التوقيع v3.1 تلقائيًا.

على التطبيقات التي تم تغيير إعداداتها والتي تريد مواصلة استخدام مفتاح التوقيع المتغير في مجموعة توقيع الإصدار 3.0 تعديل استدعاء apksigner:

apksigner sign --ks keystore.jks |
  --key key.pk8 --cert cert.x509.pem
  --rotation-min-sdk-version API_LEVEL
  [signer_options] app-name.apk

حيث يكون API_LEVEL هو 32 أو أقل

تحسين ميزة الإبلاغ عن الأخطاء في Keystore وKeyMint

بالنسبة إلى التطبيقات التي تنشئ المفاتيح، يوفّر كل من Keystore وKeyMint الآن مؤشرات أكثر تفصيلاً ودقة للخطأ. أضفنا تسلسلاً هرميًا لفئة الاستثناءات ضمن java.security.ProviderException، مع استثناءات خاصة بنظام التشغيل Android تشمل رموز أخطاء Keystore/KeyMint، وما إذا كان من الممكن إعادة محاولة الخطأ. يمكنك أيضًا تعديل طرق إنشاء المفتاح واستخدامه (التوقيع والتشفير) لطرح الاستثناءات الجديدة. لا تقتصر ميزة reporting reporting المحسّنة على إنشاء المفاتيح، ومن المفترض أن تمنحك الآن ما تحتاجه لإعادة محاولة إنشاء المفاتيح.

إتاحة استخدام الأجهزة اللوحية والشاشات الكبيرة

يستند Android 13 إلى تحسينات الأجهزة اللوحية التي تم تقديمها في Android 12 وطرح ميزات الإصدار 12L، بما في ذلك تحسينات على واجهة مستخدم النظام وأداء أفضل للمهام المتعددة وتحسين أوضاع التوافق. كجزء من عملية الاختبار، تأكَّد من أنّ تطبيقاتك تُظهر أفضل مظهر لها على الأجهزة اللوحية والأجهزة الأخرى ذات الشاشات الكبيرة.

لمزيد من المعلومات حول الميزات الجديدة والعناصر التي يجب اختبارها، يُرجى الاطّلاع على صفحة توافق الأجهزة اللوحية والشاشات الكبيرة.

الرسومات

عوامل التظليل القابلة للبرمجة

أداة تظليل الصور المتحركة من AGSL، وهي مقتبسة من GLSL Shader.

بدءًا من الإصدار Android 13، سيوفّر النظام إمكانية استخدام كائنات RuntimeShader القابلة للبرمجة، مع تحديد السلوك باستخدام لغة تظليل رسومات Android (AGSL). تشترك AGSL في الكثير من بنية GLSL، ولكنها تعمل ضمن محرّك عرض Android ل تخصيص الرسم ضمن لوحة Android بالإضافة إلى فلترة محتوى العرض. يستخدم نظام التشغيل Android هذه المؤثرات الداخلية لتنفيذ تأثيرات التموج، تمويه، و تمديد التمرير السريع. يتيح لك الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث إنشاء تأثيرات متقدّمة مماثلة لتطبيقك.

تحسينات على مصمّمي الرقص

يوفّر Android 13 أساليب عامة لواجهات برمجة التطبيقات في Choreographer وASurfaceControl اللتين توفّران للتطبيقات مزيدًا من المعلومات حول المخططات الزمنية المحتملة للإطارات وتضيف المزيد من السياق إلى SurfaceFlinger حول مراحل نشاط اللقطات. كما في السابق، يمكن للتطبيقات نشر طلب معاودة الاتصال باستخدام Choreographer وتلقّي معلومات المخطط الزمني للإطارات. في Android 13 (المستوى 33 لواجهة برمجة التطبيقات)، يعرض Choreographer عدة أوقات عرض محتمَلة والمواعيد النهائية المقابلة للإطارات. يمكن للتطبيقات اختيار وقت العرض ثم إشعار SurfaceFlinger بهذا الاختيار. لا يحاول SurfaceFlinger بعد ذلك تطبيق المعاملات أو تثبيت وحدات التخزين المؤقت قبل وقت العرض المطلوب.

إذا كان تطبيقك يستخدم الطريقتَين Choreographer وSurfaceControl الجديدتَين، يمكنك عرض دورة حياة اللقطات في التطبيق في عملية تتبُّع Perfetto.

الكاميرا

تسجيل فيديوهات بنطاق عالي الديناميكية (HDR)

بدءًا من نظام التشغيل Android 13، تتيح واجهات برمجة التطبيقات Camera2 API التقاط الفيديوهات بنطاق عالي الديناميكية (HDR)، ما يتيح لك معاينة محتوى الفيديو بنطاق عالي الديناميكية وتسجيله باستخدام الكاميرا. مقارنةً بالنطاق الديناميكي القياسي (SDR)، يوفر HDR مجموعة أكبر من الألوان ويزيد من النطاق الديناميكي لمكون الإضاءة (من 100 قرص مضغوط/م2 الحالي إلى 1000 قرص مضغوط/م2). ويؤدي ذلك إلى جودة فيديو تشبه الواقع بشكل أكبر، مع ألوان أكثر ثراءً وإبرازًا أكثر إشراقًا وظلالاً أكثر قتامة.

لمعرفة مزيد من المعلومات حول التقاط الفيديوهات باستخدام تقنية HDR، يمكنك الاطّلاع على مستندات التقاط الفيديو بنطاق عالي الديناميكية.

الوسائط

الصوت المكاني

الصوت المكاني هو تجربة صوتية غامرة تجعل محتوى الوسائط يبدو أكثر واقعية للمستخدمين. ويمكنك الاطّلاع على مستندات الصوت المكاني للحصول على تفاصيل حول كيفية الدمج مع هذه الميزة.

التوجيه الصوتي التوقّعي

لمساعدة تطبيقات الوسائط في تحديد كيفية توجيه الصوت، يوفّر الإصدار 13 من نظام التشغيل Android واجهات برمجة تطبيقات لتوجيه الصوت في فئة AudioManager. تتيح لك واجهة برمجة التطبيقات getAudioDevicesForAttributes() استرداد قائمة بالأجهزة التي يمكن استخدامها لتشغيل المحتوى الصوتي المحدّد، وتساعدك واجهة برمجة التطبيقات getDirectProfilesForAttributes() في معرفة ما إذا كان يمكن تشغيل المحتوى الصوتي مباشرةً. استخدِم واجهات برمجة التطبيقات هذه لتحديد أفضل AudioFormat لاستخدامه في مقطعك الصوتي.

تسهيل الاستخدام

الوصف الصوتي

يقدّم الإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) إعدادات مفضّلة جديدة على مستوى النظام لتحسين تسهيل الاستخدام تسمح للمستخدمين بتفعيل الأوصاف الصوتية في جميع التطبيقات. الوصف الصوتي هو مقطع صوتي إضافي يتضمّن راويًا يتحدث أثناء العرض التقديمي ويصف ما يحدث على الشاشة أثناء الفواصل الطبيعية في الصوت. يمكن للتطبيقات اتّباع الإعدادات المفضّلة للمستخدم في ما يتعلّق بمقاطع الوصف الصوتي من خلال البحث عنها باستخدام isAudioDescriptionRequested()، كما هو موضّح في مقتطف الرمز التالي:

Kotlin

private lateinit var accessibilityManager: AccessibilityManager

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager::class.java)

// Where your media player is initialized
if (accessibilityManager.isAudioDescriptionRequested) {
    // User has requested to enable audio descriptions
}

Java

private AccessibilityManager accessibilityManager;

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager.class);

// Where your media player is initialized
if(accessibilityManager.isAudioDescriptionRequested()) {
    // User has requested to enable audio descriptions
}

يمكن للتطبيقات تتبُّع تغيير الإعدادات المفضّلة للمستخدم من خلال إضافة مستمع إلى: AccessbilityManager:

Kotlin

private val listener =
    AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled ->
        // Preference changed; reflect its state in your media player
    }

override fun onStart() {
    super.onStart()

    accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener)
}

override fun onStop() {
    super.onStop()

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener)
}

Java

private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> {
    // Preference changed; reflect its state in your media player
};

@Override
protected void onStart() {
    super.onStart();

    accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener);
}

@Override
protected void onStop() {
    super.onStop();

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener);
}

الوظيفة الأساسية

تحديثات OpenJDK 11

يبدأ نظام التشغيل Android 13 العمل على تحديث المكتبات الأساسية لنظام التشغيل Android بما يتوافق مع إصدار OpenJDK 11 LTS من خلال تحديثات المكتبة ودعم لغة Java 11 لمطوّري التطبيقات والمنصات. ستتوفّر أيضًا تغييرات المكتبة الأساسية التي تم تقديمها في Android 13 لأجهزة Android 12 من خلال تحديث نظام Google Play إلى "وحدة ART Mainline".

يتضمّن Android 13 التغييرات التالية على المكتبات الأساسية:

  • إتاحة الكلمة الرئيسية var للمتغيّرات المحلية وكمَعلمات لامدا
  • طرق جديدة في فئة String:

    • isBlank()
    • lines()
    • repeat()
    • strip()
    • stripLeading()
    • stripTrailing()
  • إتاحة Collection.toArray(IntFunction) لتسهيل تكييف مجموعة مع صفيف

  • إتاحة ifPresentOrElse() وisEmpty() وorElseThrow() وstream() في فئات java.util Optional وOptionalDouble وOptionalInt OptionalLong

  • تم توفير دعم لـ SocketOptions، بما في ذلك إعادة استخدام المقابس.

  • NullReader وNullWriter وInputStream وOutputStream وtransferTo() Reader وظائف لنقل الأحرف المقروءة إلى Writer

  • تمّت إضافة وظيفة لتشفير عناوين URL وفك تشفيرها باستخدام Charsets.

  • وظائف Charset لFileReader وFileWriter وPrintStream و PrintWriter

  • دوال transferTo() وreadNBytes() وreadAllBytes() وwriteBytes() جديدة لـ ByteArrayInput أو OutputStream وInput أو OutputStream

  • توفُّر بيئة التشغيل والمجمِّع لنظام التشغيل java.lang.invoke.VarHandle

  • تعديلات java.util.concurrent إلى OpenJDK 11 API باستخدام VarHandle داخليًا

Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو شركائها التابعين.