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

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

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

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

Material You

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

Material You

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

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

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

إدراج محتوى منسّق

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

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

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

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

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

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

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

تجارب حسّية تفاعلية

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

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

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

تأثيرات اللمس المقترنة بالصوت

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

اطّلِع على مستندات HapticGenerator المرجعية للحصول على مزيد من المعلومات.

البحث في التطبيقات

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

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

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

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

وضع اللعبة

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

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

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

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

إتاحة إيماءات جديدة لميزة "نافذة ضمن النافذة" (PIP)

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

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

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

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

وفي ما يلي الميزات التالية:

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

يضيف 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. شاشة استخدام الموقع الجغرافي، وهي جزء من "لوحة بيانات الخصوصية".

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

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

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

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

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

لإعداد جهازك لاستهداف الإصدار 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 مجموعة التطبيقات التي يمكنها التحقّق من خصائص الجهاز الحاصلة على شهادة مصادقة عندما تنشئ هذه التطبيقات مفتاحًا جديدًا.

اعتبارًا من Android 9 (المستوى 28 من واجهة برمجة التطبيقات)، يمكن لمالكي سياسات الأجهزة (DPOs) الذين يستخدمون Keymaster 4.0 أو إصدار أحدث إثبات ملكية خصائص الجهاز في شهادات المصادقة هذه. بدءًا من Android 12، يمكن لأي تطبيق يستهدف الإصدار 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 API وأيضًا في NDK Media Library.

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

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

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

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

الإشعارات من MediaDrm

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

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

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

الكاميرا

إضافات مورّدي Camera2

أنشأ العديد من الشركاء المصنِّعين للأجهزة إضافات مخصّصة للكاميرا - مثل Bokeh وHDR (النطاق العالي الديناميكية) والوضع الليلي وغيرها، والتي يريدون أن تستخدمها التطبيقات لتقديم تجارب مختلفة على أجهزتهم. تدعم مكتبة CameraX بالفعل إضافات الموردين المخصصة هذه. في Android 12، تظهر إضافات البائعين هذه الآن مباشرة في نظام التشغيل.

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

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

دعم أداة استشعار الكاميرا الرباعية

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

رسومات وصور

منح التطبيقات إمكانية الوصول المباشر إلى سجلّ آثار القبور

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

لمزيد من المعلومات، يُرجى الاطّلاع على منح التطبيقات إمكانية الوصول المباشر إلى آثار سجلّ القبور

إتاحة صور AVIF

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

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

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

  • يمكنك تفعيل أحد التطبيقات عند وجود جهاز مصاحب ضمن النطاق.
  • عليك ضمان استمرار العملية مع بقاء الجهاز ضمن النطاق.

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

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

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

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

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

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

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

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

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

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

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

اتصال نظير إلى نظير بشكل متزامن + اتصال بالإنترنت

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

تفعيل ميزة "إطفاء الشاشة" لتسديد دفعات عبر NFC

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

سعة التخزين

يوفّر Android 12 إمكانيات إدارة مساحة التخزين التالية:

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

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

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

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

يضيف Android 12 قيمتين ثابتتين إلى android.os.Build تعرضان مورِّد مجموعة شرائح المنظومة على الرقاقة ومعلومات الطراز من خلال حزمة تطوير البرامج (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