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

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

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

تجربة المستخدم

Material You

يقدّم نظام التشغيل Android 12 لغة تصميم جديدة تُسمى Material You، ما يساعدك في إنشاء تطبيقات أكثر جمالاً وتخصيصًا. لإضافة جميع آخر التحديثات على التصميم المتعدد الأبعاد 3 إلى تطبيقاتك، جرِّب إصدارًا أوليًا من مكوّنات التصميم المتعدد الأبعاد.

Material You

تحسينات على التطبيقات المصغّرة

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

لمزيد من المعلومات، اطّلِع على تحسينات التطبيقات المصغّرة في Android 12.

إدراج المحتوى الوافٍ

يقدّم نظام التشغيل Android 12 واجهة برمجة تطبيقات موحّدة جديدة تتيح لتطبيقك تلقّي محتوى وافٍ من أي مصدر متاح، مثل الحافظة أو لوحة المفاتيح أو ميزة السحب والإفلات.

لمزيد من المعلومات، يُرجى الاطّلاع على تلقّي محتوى منسّق.

واجهة برمجة التطبيقات لشاشات البداية في التطبيقات

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

واجهات برمجة التطبيقات للزوايا الدائرية

يقدّم نظام التشغيل Android 12 السمتَين RoundedCorner وWindowInsets.getRoundedCorner(int position) اللتَين توفّران نصف القطر ونقطة المركز للزوايا الدائرية.

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

تجارب لمسية غنية

يوسّع نظام التشغيل Android 12 الأدوات المتاحة لإنشاء تجاوب حسّي مفيد لأحداث واجهة المستخدم، وتأثيرات غامرة وممتعة لألعاب الفيديو، وتقنية اللمس المرتبطة بالانتباه لتعزيز الإنتاجية.

تأثيرات المشغّل

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

التأثيرات الحسية المرتبطة بالصوت

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

لمزيد من المعلومات، يُرجى الاطّلاع على HapticGenerator مستندات المرجع.

AppSearch

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

مخطّط يوضّح الفهرسة والبحث داخل AppSearch

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

يمكنك الاطّلاع على مزيد من المعلومات حول AppSearch في دليل المطوّرين والبدء في استخدامها مع مكتبة AppSearch Jetpack التي توفّر واجهة برمجة تطبيقات سهلة الاستخدام للمطوّرين، بالإضافة إلى دعم معالج التعليقات التوضيحية.

وضع الألعاب

تتيح لك واجهة برمجة التطبيقات Game Mode API وإجراءات Game Mode تحسين تجربة اللعب من خلال تحديد أولويات الخصائص، مثل الأداء أو عمر البطارية، استنادًا إلى إعدادات المستخدمين أو الإعدادات الخاصة باللعبة.

لمزيد من المعلومات، يُرجى الاطّلاع على وضع "الألعاب".

اقتراحات وتحسينات بشأن ميزة "نافذة ضمن النافذة" (PiP)

يقدّم نظام التشغيل Android 12 التحسينات التالية على وضع "نافذة ضمن النافذة":

إتاحة إيماءات جديدة لاستخدام ميزة "نافذة ضمن النافذة"

يتيح الإصدار 12 من نظام التشغيل Android الآن استخدام إيماءات التخزين المؤقت والتكبير والتصغير لنافذة وضع "نافذة ضمن النافذة":

  • لتخزين النافذة، يمكن للمستخدم سحبها إلى الحافة اليمنى أو اليسرى. لإلغاء إخفاء النافذة، يمكن للمستخدم النقر على الجزء المرئي من النافذة المخفية أو سحبها.

  • يمكن للمستخدم الآن تغيير حجم نافذة "نافذة ضمن النافذة" باستخدام ميزة "التكبير والتصغير بإصبعين".

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

في ما يلي هذه الميزات:

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

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

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

نفِّذ الرمز التالي لجميع أنواع المكالمات.

Kotlin

// Create a new call with the user as caller.
val incoming_caller = Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build()

Java

// Create a new call with the user as caller.
Person incoming_caller = new Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build();

استخدِم forIncomingCall() لإنشاء إشعار بنمط المكالمة لمكالمة واردة.

Kotlin

// Create a call style notification for an incoming call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
    .addPerson(incoming_caller)

Java

// Create a call style notification for an incoming call.
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
    .addPerson(incoming_caller);

استخدِم forOngoingCall() لإنشاء إشعار بنمط المكالمات الجارية.

Kotlin

// Create a call style notification for an ongoing call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forOnGoingCall(caller, hangupIntent))
    .addPerson(second_caller)

Java

// Create a call style notification for an ongoing call.
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forOnGoingCall(caller, hangupIntent))
    .addPerson(second_caller);

استخدِم forScreeningCall() لإنشاء إشعار بنمط المكالمة لفحص مكالمة.

Kotlin

// Create a call style notification for screening a call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent))
    .addPerson(second_caller)

Java

Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent))
    .addPerson(second_caller);

إتاحة الصور المحسّنة للإشعارات

في نظام التشغيل Android 12، يمكنك الآن تحسين تجربة الإشعارات في تطبيقك من خلال توفير صور متحركة في إشعارات MessagingStyle() وBigPictureStyle(). يمكن لتطبيقك الآن أيضًا أن يتيح للمستخدمين إرسال رسائل تتضمّن صورًا عند الردّ على الرسائل من مركز الإشعارات.

تحسينات على الوضع الغامر للتنقّل بالإيماءات

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

مشاركة عناوين URL من "العناصر الحديثة" (على هواتف Pixel فقط)

على أجهزة Pixel، يمكن للمستخدمين الآن مشاركة روابط إلى محتوى الويب الذي تم عرضه مؤخرًا مباشرةً من شاشة "التطبيقات المستخدَمة مؤخرًا". بعد الانتقال إلى المحتوى في أحد التطبيقات، يمكن للمستخدم التمرير سريعًا إلى شاشة "التطبيقات الحديثة" والعثور على التطبيق الذي شاهد فيه المحتوى، ثم النقر على زر الرابط لنسخ عنوان URL أو مشاركته.

لمزيد من المعلومات، يُرجى الاطّلاع على تفعيل مشاركة عناوين URL الخاصة بالتطبيقات المستخدَمة مؤخرًا.

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

لوحة بيانات الخصوصية

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

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

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

أذونات البلوتوث

يقدّم نظام التشغيل Android 12 أذونات BLUETOOTH_SCAN وBLUETOOTH_ADVERTISE وBLUETOOTH_CONNECT. تسهّل هذه الأذونات على التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android التفاعل مع أجهزة Bluetooth، خاصةً التطبيقات التي لا تتطلّب الوصول إلى الموقع الجغرافي للجهاز.

تعديل بيانات أذونات البلوتوث في تطبيقك

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

البحث عن مجموعة أذونات

على الإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث، يمكنك الاستعلام عن كيفية تنظيم النظام للأذونات التي توفّرها المنصة في مجموعات أذونات:

  • لتحديد مجموعة الأذونات التي وضع النظام فيها إذنًا محدّدًا في النظام الأساسي، استدعِ الدالة getGroupOfPlatformPermission().
  • لتحديد الأذونات المحدّدة على مستوى النظام الأساسي والتي وضعها النظام في مجموعة أذونات معيّنة، استدعِ الدالة getPlatformPermissionsForGroup().

إخفاء نوافذ تراكب التطبيقات

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

بعد الإفصاح عن إذن HIDE_OVERLAY_WINDOWS، يمكن للتطبيق استدعاء setHideOverlayWindows() للإشارة إلى أنّه يجب إخفاء جميع النوافذ من النوع TYPE_APPLICATION_OVERLAY عندما تكون نافذة التطبيق نفسه مرئية. وقد تختار التطبيقات إجراء ذلك عند عرض شاشات حسّاسة، مثل مسارات تأكيد المعاملات.

يجب أن تبحث التطبيقات التي تعرض نوافذ من النوع TYPE_APPLICATION_OVERLAY عن بدائل قد تكون أكثر ملاءمة لحالة الاستخدام، مثل وضع "نافذة ضمن النافذة" أو الفقاعات.

علامة الحماية من خلال أذونات الموقّعين المعروفين

بدءًا من نظام التشغيل Android 12، تتيح لك السمة knownCerts الخاصة بالأذونات على مستوى التوقيع الإشارة إلى خلاصات شهادات التوقيع المعروفة في وقت البيان.

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

مصادقة خصائص الجهاز

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

اعتبارًا من الإصدار 9 من نظام التشغيل Android (المستوى 28 من واجهة برمجة التطبيقات)، يمكن لجهات توفير سياسات الأجهزة (DPO) التي تستخدم Keymaster 4.0 أو إصدارًا أحدث التحقّق من خصائص الجهاز في شهادات التصديق هذه. بدءًا من الإصدار 12 من نظام التشغيل Android، يمكن لأي تطبيق يستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث إجراء عملية التحقّق هذه باستخدام الطريقة setDevicePropertiesAttestationIncluded().

تتضمّن خصائص الجهاز التي تم إنشاؤها الحقول التالية Build:

  • BRAND
  • DEVICE
  • MANUFACTURER
  • MODEL
  • PRODUCT

إجراءات الإشعارات على شاشة القفل الآمنة

بدءًا من نظام التشغيل Android 12، تتيح الفئة Notification.Action.Builder استخدام الطريقة setAuthenticationRequired()، التي تسمح لتطبيقك باشتراط أن يكون الجهاز غير مقفل قبل أن يستدعي تطبيقك إجراء إشعار معيّنًا. تساعد هذه الطريقة في إضافة طبقة أمان إضافية إلى الإشعارات على الأجهزة المقفلة.

سلاسل قابلة للترجمة في BiometricPrompt

يقدّم نظام التشغيل Android 12 واجهات برمجة تطبيقات جديدة لمساعدتك في تحسين تجربة المستخدم في المصادقة البيومترية لتطبيقك. يتضمّن الصف المتداخل الجديد BiometricManager.Strings الطرق getButtonLabel() وgetPromptMessage() وgetSettingName() التي تتيح لتطبيقك استرداد تصنيف زر أو رسالة طلب أو اسم إعداد تطبيق قابل للقراءة ومترجَم. استخدِم هذه التصنيفات لإنشاء تعليمات أكثر دقة للمستخدمين تتعلّق بطرق المصادقة البيومترية المستخدَمة، مثل "استخدام ميزة فتح الجهاز ببصمة الوجه" أو "استخدام بصمة إصبعك للمتابعة".

الوسائط

تحويل الوسائط إلى تنسيق متوافق

بدءًا من Android 12 (مستوى واجهة برمجة التطبيقات 31)، يمكن للنظام تلقائيًا تحويل ترميز فيديوهات HEVC(H.265) وHDR (HDR10 وHDR10+) المسجّلة على الجهاز إلى AVC (H.264)، وهو تنسيق متوافق على نطاق واسع مع مشغّلات الفيديو العادية. ويستفيد ذلك من برامج الترميز الحديثة عندما تكون متاحة بدون التأثير سلبًا في التوافق مع التطبيقات القديمة.

يمكنك الاطّلاع على تحويل الوسائط إلى تنسيق متوافق لمزيد من التفاصيل.

فئة الأداء

يقدِّم نظام التشغيل Android 12 معيارًا يُعرف باسم فئة الأداء. تحدّد فئة الأداء إمكانات الأجهزة التي تتجاوز الحد الأدنى من متطلبات Android. يحدّد كل جهاز Android فئة الأداء التي يتوافق معها. يمكن للمطوّرين التحقّق من فئة أداء الجهاز في وقت التشغيل وتقديم تجارب محسّنة تستفيد بشكل كامل من إمكانات الجهاز.

يمكنك الاطّلاع على فئة الأداء لمزيد من التفاصيل.

تحسينات على ترميز الفيديو

يحدّد نظام التشغيل Android 12 مجموعة معيارية من المفاتيح للتحكّم في قيمة مَعلمة التكميم (QP) لترميز الفيديو، ما يتيح للمطوّرين تجنُّب الرموز البرمجية الخاصة بمورّد معيّن.

تتوفّر المفاتيح الجديدة في واجهة برمجة التطبيقات MediaFormat وفي مكتبة الوسائط في NDK.

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

التركيز على الصوت

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

لمزيد من التفاصيل، يمكنك الاطّلاع على أولويّة الصوت في نظام التشغيل Android 12 والإصدارات الأحدث.

تحديثات MediaDrm

لتحديد ما إذا كان يجب استخدام مكوّن برنامج ترميز آمن مع واجهات برمجة التطبيقات الحالية MediaDrm، عليك اتّباع الخطوات التالية:

  1. أنشئ MediaDrm.
  2. افتح جلسة للحصول على معرّف الجلسة.
  3. أنشئ MediaCrypto باستخدام رقم تعريف الجلسة.
  4. الاتصال بالرقم MediaCrypto.requiresSecureDecoderComponent(mimeType).

باستخدام الطريقتَين الجديدتَين requiresSecureDecoder(@NonNull String mime) وrequiresSecureDecoder(@NonNull String mime, @SecurityLevel int level)، يمكنك تحديد ذلك فور إنشاء MediaDrm.

الكاميرا

إضافات Camera2 الخاصة بمقدّم الخدمة

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

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

لمزيد من المعلومات، يُرجى الاطّلاع على CameraExtensionCharacteristics.

إتاحة استخدام أداة الاستشعار Quad Bayer في الكاميرا

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

الرسومات والصور

توفير وصول مباشر للتطبيقات إلى عمليات تتبُّع Tombstone

بدءًا من الإصدار 12 من نظام التشغيل Android، يمكنك الوصول إلى ملف شاهد القبر الخاص بالعطل الداخلي في نظام التشغيل لتطبيقك كـ Protocol Buffers من خلال طريقة ApplicationExitInfo.getTraceInputStream(). يتم تسلسل Protocol Buffers باستخدام هذا المخطط. في السابق، كانت الطريقة الوحيدة للوصول إلى هذه المعلومات هي من خلال Android Debug Bridge (adb).

لمزيد من المعلومات، يُرجى الاطّلاع على منح التطبيقات إذن الوصول المباشر إلى عمليات تتبُّع بيانات الأعطال.

إتاحة صور AVIF

يتيح نظام التشغيل Android 12 استخدام الصور التي تستخدم تنسيق ملفات صور AV1‏ (AVIF). ‫AVIF هو تنسيق حاوية للصور وتسلسلات الصور التي تم ترميزها باستخدام AV1. يستفيد تنسيق AVIF من المحتوى المرمّز داخل الإطار من ضغط الفيديو. يؤدي ذلك إلى تحسين جودة الصورة بشكل كبير مع الحفاظ على حجم الملف نفسه مقارنةً بتنسيقات الصور القديمة، مثل JPEG. للحصول على نظرة مفصّلة حول مزايا هذا التنسيق، يمكنك الاطّلاع على مشاركة المدونة التي كتبها Jake Archibald.

تمويه أسهل وفلاتر ألوان وتأثيرات أخرى

يضيف نظام التشغيل Android 12 RenderEffect جديدًا يطبّق تأثيرات الرسومات الشائعة، مثل التمويه وفلاتر الألوان وتأثيرات Android shader وغيرها على Views وعمليات العرض الهرمية. يمكن دمج المؤثرات كإما مؤثرات متسلسلة (تتألف من مؤثر داخلي وخارجي) أو مؤثرات مدمجة. قد تتوافق بعض أجهزة Android مع هذه الميزة وقد لا تتوافق معها بسبب محدودية قدرتها على المعالجة.

يمكن أيضًا تطبيق التأثيرات على RenderNode الأساسي لـ View من خلال استدعاء View.setRenderEffect(RenderEffect).

لتنفيذ RenderEffect، اتّبِع الخطوات التالية:

view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))

فك ترميز الصور المتحركة المدمجة مع المحتوى

في نظام التشغيل Android 12، تم توسيع نطاق واجهة برمجة التطبيقات NDK ImageDecoder لتتمكّن من فك ترميز جميع اللقطات وبيانات التوقيت من الصور التي تستخدم تنسيقات الملفات المتحركة GIF وWebP. عندما تم طرح واجهة برمجة التطبيقات هذه في Android 11، كانت تفك تشفير الصورة الأولى فقط من الصور المتحركة بهذه التنسيقات.

استخدِم الإصدار ImageDecoder بدلاً من المكتبات التابعة لجهات خارجية من أجل تقليل حجم حِزم APK والاستفادة من التحديثات المستقبلية المتعلّقة بالأمان والأداء.

لمزيد من التفاصيل حول واجهة برمجة التطبيقات، يُرجى الرجوع إلى مرجع واجهة برمجة التطبيقات والمثال على GitHub.

إمكانية الاتصال

إبقاء التطبيقات المصاحبة نشطة

لتلبية حاجة التطبيقات المصاحبة إلى البقاء قيد التشغيل لإدارة الجهاز، يقدّم نظام التشغيل Android 12 واجهات برمجة تطبيقات تنفّذ ما يلي:

  • تتيح لك تنشيط تطبيق عندما يكون جهاز مرتبط ضِمن النطاق المحدَّد.
  • ضمان استمرار تشغيل العملية طالما ظل الجهاز ضِمن النطاق

لاستخدام واجهات برمجة التطبيقات، يجب ربط أجهزتك باستخدام Companion Device Manager. لمزيد من المعلومات، راجِع CompanionDeviceManager.startObservingDevicePresence() وCompanionDeviceService.onDeviceAppeared().

الملفات الشخصية في "أداة إدارة الأجهزة المصاحبة"

مربّع حوار أذونات يستخدم ملفًا شخصيًا لجهاز مصاحب من أجل طلب أذونات متعددة في طلب واحد.

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

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

لمزيد من المعلومات، يُرجى الاطّلاع على AssociationRequest.Builder.setDeviceProfile().

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

في نظام التشغيل Android 12، تم تحسين إمكانات تقدير معدل نقل البيانات التي توفّرها getLinkDownstreamBandwidthKbps() و getLinkUpstreamBandwidthKbps() لكلّ من شبكة Wi-Fi وشبكة الجوّال. تمثّل القيم المعروضة الآن متوسّط سرعة معالجة البيانات المرجّح للمستخدم على مدار الوقت لكل شركة نقل أو معرّف SSID لشبكة Wi-Fi ونوع الشبكة ومستوى الإشارة، وذلك على مستوى جميع التطبيقات على الجهاز. يمكن أن يؤدي ذلك إلى عرض تقدير أكثر دقة وواقعية للإنتاجية المتوقّعة، وتقديم تقديرات عند بدء تشغيل تطبيقك للمرة الأولى، ويتطلّب عددًا أقل من الدورات مقارنةً باستخدام طرق تقدير الإنتاجية الأخرى.

تحسينات على Wi-Fi Aware (NAN)

يضيف نظام التشغيل Android 12 بعض التحسينات إلى Wi-Fi Aware:

  • على الأجهزة التي تعمل بالإصدار Android 12 (المستوى 31 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يمكنك استخدام onServiceLost() للحصول على تنبيه عندما يفقد تطبيقك خدمة تم اكتشافها بسبب توقّف الخدمة أو خروجها عن النطاق.
  • سيتم تغيير طريقة إعداد مسارات البيانات المتعدّدة (مسارات بيانات NAN) لتصبح أكثر كفاءة. كانت الإصدارات السابقة تستخدم مراسلة L2 لتبادل معلومات النظراء الخاصة بالمبادرين، ما أدّى إلى حدوث تأخير. على الأجهزة التي تعمل بالإصدار 12 من نظام التشغيل Android والإصدارات الأحدث، يمكن ضبط الجهاز المستجيب (الخادم) لقبول أي جهاز آخر، أي أنّه لا يحتاج إلى معرفة معلومات الجهاز المبدئي مسبقًا. يؤدي ذلك إلى تسريع عملية إعداد مسار البيانات ويتيح إنشاء روابط متعدّدة من نقطة إلى نقطة باستخدام طلب شبكة واحد فقط.
  • لمنع إطار العمل من رفض طلبات البحث عن الأجهزة أو طلبات الربط بسبب نقص الموارد، يمكنك استدعاء WifiAwareManager.getAvailableAwareResources() على الأجهزة التي تعمل بنظام التشغيل Android 12 والإصدارات الأحدث. تتيح لك قيمة العرض لهذه الطريقة الحصول على عدد مسارات البيانات المتاحة وعدد جلسات النشر المتاحة وعدد جلسات الاشتراك المتاحة.

استخدام شبكة الند للند واتصال الإنترنت في الوقت نفسه

عندما تعمل الأجهزة التي تستهدف الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31) والإصدارات الأحدث على أجهزة تتوافق مع الأجهزة، لن يؤدي استخدام عمليات الربط بين الأجهزة إلى قطع اتصال Wi-Fi الحالي عند إنشاء اتصال بالجهاز الآخر. للتحقّق من توفّر هذه الميزة، استخدِم WifiManager.isMultiStaConcurrencySupported().

تفعيل الدفع باستخدام تقنية NFC عندما تكون الشاشة مطفأة

في التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android والإصدارات الأحدث، يمكنك تفعيل الدفعات عبر NFC بدون الحاجة إلى تشغيل شاشة الجهاز من خلال ضبط requireDeviceScreenOn على false. لمزيد من المعلومات حول عمليات الدفع باستخدام NFC عندما تكون الشاشة مطفأة أو مقفلة، يُرجى الاطّلاع على سلوك الشاشة المطفاة وشاشة القفل.

مساحة التخزين

يقدّم نظام التشغيل Android 12 إمكانات إدارة التخزين التالية:

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

تحديثات التطبيقات التلقائية

يقدّم نظام التشغيل Android 12 الطريقة setRequireUserAction() للتطبيقات التي تستخدم واجهة برمجة التطبيقات PackageInstaller. تتيح هذه الطريقة لتطبيقات التثبيت إجراء تحديثات للتطبيقات بدون الحاجة إلى تأكيد المستخدم.

معلومات عن مجموعة شرائح الجهاز

يضيف نظام التشغيل Android 12 ثابتَين إلى android.os.Build يعرضان معلومات عن مورّد شريحة تعريف المنظومة على الرقاقة (SoC) وطرازها من خلال حزمة تطوير البرامج (SDK). يمكنك الحصول على هذه المعلومات من خلال الاتصال بالرقم Build.SOC_MANUFACTURER والرقم Build.SOC_MODEL على التوالي.

تعديلات على واجهات برمجة التطبيقات الأساسية في Java

استنادًا إلى الطلبات والتعاون مع المطوّرين، أضفنا مكتبات أساسية التالية في Android 12:

الفئة واجهات برمجة التطبيقات
java.lang.Deprecated
java.lang.Byte
java.lang.Short
java.lang.Math
java.lang.StrictMath
java.util.Set copyOf()
java.util.Map copyOf()
java.util.List copyOf()
java.time.Duration
java.time.LocalTime