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

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

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

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

Material You

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

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 وعمليات التدخّل في "وضع الألعاب" تحسين تجربة اللعب من خلال تحديد أولويات الخصائص، مثل الأداء أو عمر البطارية، استنادًا إلى إعدادات المستخدمين أو الإعدادات الخاصة باللعبة.

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

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

رصد التصيّد الاحتيالي في تطبيقات المراسلة (على هواتف Pixel فقط)

تظهر للمستخدم رسالة مثل هذه عندما يتم رصد رسالة مريبة.

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

  • الطلبات المريبة، مثل إرسال رمز أو أموال أو ما شابه ذلك
  • عناوين URL غير موثوق بها
  • المرفقات الضارة
  • روابط تؤدي إلى تطبيقات ضارة

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

يمكن للمطوّرين إيقاف هذه الميزة من خلال إضافة علامة بيانات وصفية جديدة تتضمّن السلسلة com.google.android.ALLOW_PHISHING_DETECTION إلى ملفات بيان التطبيق. مثلاً:

<manifest>
    <application android:name="com.messagingapp">
        <meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />

    </application>
</manifest>

الوسائط

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

بدءًا من نظام التشغيل 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 الخاصة بمورّدي الأجهزة

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

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

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

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

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

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

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

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

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

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