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

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

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

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

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

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

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

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

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

وضع اللعبة

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

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

اقتراحات وتحسينات بشأن ميزة "صورة داخل صورة"

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

إتاحة إيماءات جديدة لميزة "صورة في صورة"

يتيح نظام التشغيل Android 12 الآن إيقاف الفيديو مؤقتًا واستخدام لفتات التصغير/التكبير في نافذة PiP:

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

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

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

مشاركة عناوين URL للعناصر الأخيرة (على هواتف Pixel فقط)

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

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

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

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

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

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

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

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

يقدّم نظام التشغيل Android 12 أذونات BLUETOOTH_SCAN، BLUETOOTH_ADVERTISE، و BLUETOOTH_CONNECT . تسهِّل هذه الأذونات على التطبيقات التي تستهدف الإصدار Android 12 التفاعل مع أجهزة تقنية 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 أو إصدارًا أحدث verifying خصائص الجهاز في شهادات الإثبات هذه. بدءًا من 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 عن فئة الأداء التي يقبلها. يمكن للمطوّرين التحقّق من فئة أداء الجهاز أثناء التشغيل و تقديم تجارب مُحسَّنة تستفيد إلى أقصى حد من capabilities. الجهاز

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

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

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

تتوفر المفاتيح الجديدة في MediaFormat API وأيضًا في NDK Media Library.

اعتبارًا من الإصدار 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

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

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

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

عندما تعمل الأجهزة التي تستهدف Android 12 (المستوى 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