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

يقدّم 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().

واجهات برمجة التطبيقات للإحالات الناجحة النصية

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

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

مع واجهة برمجة التطبيقات الجديدة لتحويل النص، يمكن للمستخدمين اليابانيين كتابة هيراغانا وعرض نتائج بحث كانجي على الفور، مع تخطي الخطوتين 2 و3.

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

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

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

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

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

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

تعديلات مكتبة يونيكود

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

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

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

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

رمز تعبيري متّجه COLRv1 (يسار) ورموز تعبيرية نقطية (يمين)

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

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

لمعرفة المزيد عن COLRv1، يمكنك الاطّلاع على الموارد التالية:

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

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

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

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

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

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

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

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

إيماءة توقّع شاشة الرجوع

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

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

Bluetooth LE Audio

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

الإصدار 2.0 من MIDI

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

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

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

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

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

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

تحسينات ART

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

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

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

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

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

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

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

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

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

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

يوفِّر Android 13 (المستوى 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)، الذي يتيح التناوب استهداف إصدار لاحق من النظام الأساسي.

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

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

لا تتطلّب التطبيقات التي لم تبدِّل مفتاح التوقيع أي إجراء إضافي عندما تختار هذه التطبيقات التدوير، يطبق النظام مخطط توقيع الإصدار 3.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، وما إذا كان يمكن إعادة محاولة الخطأ. يمكنك أيضًا تعديل طرق إنشاء المفاتيح واستخدامها (التوقيع والتشفير) لطرح الاستثناءات الجديدة. لا تقتصر عملية الإبلاغ عن الأخطاء المحسّنة على إنشاء مفتاح، ومن المفترض أن تمنحك الآن ما تحتاجه لإعادة محاولة إنشاء مفتاح.

التوافق مع الأجهزة اللوحية والشاشة الكبيرة

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

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

الرسومات

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

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

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

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

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

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

الكاميرا

التقاط فيديو بنطاق عالي الديناميكية

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

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

الوسائط

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

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

التوجيه الصوتي الاستباقي

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

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

الوصف الصوتي

يقدّم Android 13 (المستوى 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 للمتغيرات المحلية وكمعلمات lambdas.
  • طُرق جديدة في فئة السلسلة:

    • 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 باستخدام VarHandle داخليًا.

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