يقدِّم Android 12 ميزات وواجهات برمجة تطبيقات جديدة رائعة للمطوّرين. تساعدك الأقسام الواردة أدناه في التعرّف على ميزات تطبيقاتك وبدء استخدام واجهات برمجة التطبيقات ذات الصلة.
للحصول على قائمة مفصّلة بواجهات برمجة التطبيقات الجديدة والمعدّلة والتي تمت إزالتها، يُرجى الاطّلاع على تقرير اختلاف واجهات برمجة التطبيقات. للحصول على تفاصيل حول واجهات برمجة التطبيقات الجديدة، يمكنك الانتقال إلى مرجع واجهة برمجة تطبيقات Android، ويتم تمييز واجهات برمجة التطبيقات الجديدة من أجل الوصول إليها. بالإضافة إلى ذلك، يمكنك الاطّلاع على التغييرات في سلوك نظام التشغيل Android 12 للتطبيقات التي تستهدف Android 12 ولجميع التطبيقات، وذلك لمعرفة المزيد عن الجوانب التي قد تؤثر فيها تغييرات النظام الأساسي في تطبيقاتك.
تجربة المستخدم
Material You
يقدّم Android 12 لغة تصميم جديدة اسمها Material You، مما تساعدك على إنشاء تطبيقات أكثر تخصيصًا وجمالاً. لجلب جميع تحديثات التصميم Material Design 3 الأخيرة إلى تطبيقاتك، يمكنك تجربة إصدار ألفا من Material Design Components.
تحسينات التطبيقات المصغّرة
يجدّد نظام 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](https://developer.android.google.cn/static/images/about/versions/12/appsearch.png?authuser=7&hl=ar)
تقدّم AppSearch نوعَين: فهرس محلي لتطبيقك يتم استخدامه متوافق مع الإصدارات القديمة من Android، أو فهرس مركزي يتم الاحتفاظ به للنظام بأكمله في الإصدار 12 من نظام التشغيل Android. باستخدام الفهرس المركزي، يمكن أن يسمح تطبيقك بعرض بياناته على مساحات عرض واجهة مستخدم النظام من خلال مكوّن الذكاء المثبَّت مسبقًا. وتعتمد البيانات التي يتم عرضها على أسطح واجهة المستخدم الخاصة بالنظام على المُصنّع الأصلي. بالإضافة إلى ذلك، يمكن لتطبيقك مشاركة البيانات مع التطبيقات الأخرى بأمان، وذلك للسماح لها بالبحث في تلك البيانات أيضًا.
يمكنك الحصول على مزيد من المعلومات حول AppSearch في دليل المطوّر، وبدء استخدامه مع مكتبة AppSearch Jetpack التي توفّر واجهة برمجة تطبيقات مناسبة للمطوّرين بالإضافة إلى إمكانية معالجة التعليقات التوضيحية.
وضع اللعبة
تتيح لك واجهة برمجة تطبيقات وضع الألعاب والتدخّلات المتعلّقة بوضع الألعاب تحسين أسلوب اللعب من خلال تحديد أولويات الخصائص، مثل الأداء أو عمر البطارية، استنادًا إلى إعدادات المستخدم أو الإعدادات الخاصة باللعبة.
لمزيد من المعلومات، يُرجى الاطّلاع على وضع الألعاب.
اقتراحات وتحسينات في ميزة "نافذة ضمن النافذة" (PiP)
يقدّم Android 12 التحسينات التالية على وضع "نافذة ضمن النافذة":
دعم الإيماءات الجديدة في وضع "نافذة ضمن النافذة"
يتوافق نظام التشغيل Android 12 الآن مع إيماءات التخزين والتصغير أو التكبير بإصبعين للنافذة في وضع "نافذة ضمن النافذة":
لتخزين النافذة، يمكن للمستخدم سحب النافذة إلى الحافة اليسرى أو اليمنى. لإلغاء إخفاء النافذة، يمكن للمستخدم إما النقر على الجزء المرئي من النافذة المخزنة أو سحبه للخارج.
يمكن للمستخدم الآن تغيير حجم نافذة "نافذة ضمن النافذة" باستخدام ميزة "التصغير أو التكبير بإصبعين".
الميزات الجديدة المقترَحة التي توفِّر تجربة انتقال محسَّنة إلى "نافذة ضمن النافذة" (PIP)
أضاف نظام التشغيل Android 12 تحسينات تجميلية مهمة إلى جانب الانتقالات المتحركة بين النوافذ بملء الشاشة ونافذة "نافذة ضمن النافذة". نوصي بشدة بتنفيذ جميع التغييرات السارية، فبعد الانتهاء من ذلك، سيتم تغيير حجم هذه التغييرات تلقائيًا إلى الشاشات الكبيرة مثل الهواتف القابلة للطي والأجهزة اللوحية بدون الحاجة إلى إجراء أي جهد إضافي.
وفي ما يلي الميزات التي يوفّرها التطبيق:
-
استخدِم العلامة
setAutoEnterEnabled
لتوفير انتقال أكثر سلاسة إلى وضع "نافذة ضمن النافذة" عند التمرير بسرعة للأعلى إلى الشاشة الرئيسية في وضع التنقّل بالإيماءات. في السابق، كان نظام Android ينتظر انتهاء الرسوم المتحركة التي تظهر عند التمرير إلى الشاشة الرئيسية قبل أن تتلاشى في نافذة "نافذة ضمن النافذة". صور متحركة أكثر سلاسة عند الدخول والخروج من وضع "نافذة ضمن النافذة"
تتم الآن إعادة استخدام العلامة
SourceRectHint
لتنفيذ صور متحركة أكثر سلاسة عند الدخول إلى وضع "نافذة ضمن النافذة" والخروج منه.علامة واجهة برمجة تطبيقات جديدة لإيقاف تغيير الحجم السلس للمحتوى من غير الفيديوهات
توفّر العلامة
SeamlessResizeEnabled
صورة متحركة أكثر سلاسة تتلاشى عند تغيير حجم المحتوى من غير الفيديوهات في نافذة "نافذة ضمن النافذة". في السابق، كان تغيير حجم المحتوى من غير الفيديوهات في نافذة ضمن النافذة (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 الحديثة.
الأمان والخصوصية
لوحة بيانات الخصوصية
على الأجهزة المتوافقة التي تعمل بالإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث، تظهر شاشة "لوحة بيانات الخصوصية" في إعدادات النظام. في هذه الشاشة، يمكن للمستخدمين الوصول إلى شاشات منفصلة تظهر عندما تصل التطبيقات إلى معلومات الموقع والكاميرا والميكروفون. تعرض كل شاشة جدولاً زمنيًا لوقت وصول التطبيقات المختلفة إلى نوع معين من البيانات. يوضح الشكل 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، يمكن لأي تطبيق يستهدف الإصدار Android 12 (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث إجراء
عملية التحقق هذه باستخدام الطريقة
setDevicePropertiesAttestationIncluded()
.
تتضمّن سمات الجهاز التي تم إنشاؤها حقول
Build
التالية:
BRAND
DEVICE
MANUFACTURER
MODEL
PRODUCT
إجراءات الإشعارات الآمنة على شاشة القفل
بدءًا من نظام التشغيل Android 12، تتيح الفئة Notification.Action.Builder
استخدام طريقة
setAuthenticationRequired()
التي تسمح لتطبيقك بطلب فتح قفل الجهاز
قبل أن يستدعي تطبيقك إجراء إشعار معيّنًا. تساعد هذه الطريقة في توفير
طبقة أمان إضافية للإشعارات على الأجهزة المقفلة.
سلاسل قابلة للترجمة من أجل BiometricPrompt
يقدّم Android 12 واجهات برمجة تطبيقات جديدة لمساعدتك في تحسين تجربة المستخدم لمصادقة المقاييس الحيوية في تطبيقك. تتضمن الفئة الجديدة BiometricManager.Strings
المدمجة طرق getButtonLabel()
وgetPromptMessage()
وgetSettingName()
التي تسمح لتطبيقك باسترداد تصنيف زر مترجم أو رسالة مطالبة أو اسم إعداد التطبيق يمكن للمستخدمين قراءته ومترجَمة. استخدِم هذه التصنيفات لإنشاء تعليمات أكثر دقة موجّهة للمستخدمين وخاصة بطرق المصادقة بالمقاييس الحيوية المستخدَمة، مثل "استخدام ميزة فتح الجهاز بالتعرف على الوجه" أو "استخدِم بصمة إصبعك للمتابعة".
رصد التصيّد الاحتيالي في تطبيقات المراسلة (على هواتف Pixel فقط)
![](https://developer.android.google.cn/static/images/about/versions/12/phishing-detection.png?authuser=7&hl=ar)
على أجهزة 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، افرِض حدًّا أدنى للجودة. ويضمن ذلك ألّا يحصل المستخدمون على جودة منخفضة للغاية عند ترميز فيديوهات ذات درجة عالية من التعقيد في المشهد.
التركيز على الصوت
بدءًا من نظام التشغيل Android 12 (المستوى 31 لواجهة برمجة التطبيقات)، عندما يطلب تطبيق تركيز الصوت أثناء تشغيل تطبيق آخر، يتلاشى النظام مع تطبيق التشغيل.
يمكنك الاطّلاع على التركيز على الصوت في الإصدار 12 من نظام التشغيل Android والإصدارات الأحدث لمعرفة مزيد من التفاصيل.
تحديثات MediaDrm
لتحديد ما إذا كان يجب استخدام مكوّن برنامج فك الترميز الآمن مع واجهات برمجة تطبيقات MediaDrm
الحالية، عليك اتّباع الخطوات التالية:
- أنشِئ
MediaDrm
. - افتح جلسة للحصول على رقم تعريف الجلسة.
- أنشئ
MediaCrypto
باستخدام رقم تعريف الجلسة. - الاتصال بالرقم
MediaCrypto.requiresSecureDecoderComponent(mimeType)
.
باستخدام الطرق الجديدة requiresSecureDecoder(@NonNull String mime)
وrequiresSecureDecoder(@NonNull String mime, @SecurityLevel int level)
يمكنك تحديد ذلك فور إنشاء MediaDrm
.
الكاميرا
إضافات مورّد Camera2
أنشأ العديد من شركائنا في مجال تصنيع الأجهزة إضافات مخصّصة للكاميرا، مثل Bokeh وHDR و"الوضع الليلي" وغيرها، والتي يريدون من التطبيقات استخدامها لإنشاء تجارب مختلفة على أجهزتهم. تتوافق مكتبة CameraX بالفعل هذه مع إضافات المورّدين المخصّصة هذه. في Android 12، يتم الآن عرض إضافات المورّدين هذه مباشرةً في النظام الأساسي.
تساعد هذه الإضافة التطبيقات التي تتضمّن عمليات تنفيذ
Camera2
معقّدة في الاستفادة من إضافات المورّدين بدون الحاجة إلى إجراء
تغييرات كبيرة على الرموز البرمجية القديمة. تعرض واجهات برمجة التطبيقات Camera2 Extension مجموعة الإضافات نفسها كما هي في CameraX، وهي متوافقة حاليًا مع العديد من الأجهزة
المختلفة، لكي تتمكن من استخدامها بدون أي
إعدادات إضافية.
لمزيد من المعلومات، يُرجى الاطّلاع على
CameraExtensionCharacteristics
.
دعم أداة استشعار كاميرا Quad Bayer
تتوفّر في العديد من أجهزة Android حاليًا أدوات استشعار للكاميرا عالية الدقة، وعادةً ما تتّبع أنماط Quad أو Nona Bayer، وتوفّر هذه الأجهزة مرونة كبيرة من حيث جودة الصور وأداء الإضاءة المنخفضة. يقدّم Android 12 واجهات برمجة تطبيقات جديدة للنظام الأساسي والتي تسمح للتطبيقات التابعة لجهات خارجية بالاستفادة بشكل كامل من أدوات الاستشعار متعددة الاستخدامات هذه. تتوافق واجهات برمجة التطبيقات الجديدة مع السلوك الفريد لأدوات الاستشعار هذه، وتأخذ في الاعتبار أنّها قد تتوافق مع إعدادات مجموعات البث وإعداداتها المختلفة عند تشغيلها في وضع الدقة الكاملة أو وضع "الحد الأقصى للدقة" مقارنةً بالوضع "التلقائي".
الرسومات والصور
توفير إمكانية الوصول المباشر للتطبيقات إلى بيانات آثار ملفات Tombstone
بدءًا من نظام التشغيل Android 12، يمكنك الوصول إلى ملف tombstone الأصلي للأعطال في تطبيقك باعتباره
مخزنًا مؤقتًا للبروتوكول من خلال اتّباع الإجراء
ApplicationExitInfo.getTraceInputStream()
. ويتم ترتيب المخزن المؤقت للبروتوكولات على نحو تسلسلي باستخدام هذا المخطط.
في السابق، كانت الطريقة الوحيدة للوصول إلى هذه المعلومات هي من خلال Android Debug Bridge (adb).
لمزيد من المعلومات، يمكنك الاطّلاع على مقالة منح التطبيقات إمكانية الوصول المباشر إلى آثار ملفات Tombstone.
إتاحة صور 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()
.
الملفات الشخصية في أداة "مدير الأجهزة المصاحبة"
![](https://developer.android.google.cn/static/images/about/versions/12/companion-device-profile.png?authuser=7&hl=ar)
يمكن لتطبيقات الشركاء على نظام التشغيل Android 12 (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث استخدام الملفات الشخصية للأجهزة المصاحبة عند الاتصال بساعة. يؤدي استخدام ملف شخصي إلى تبسيط عملية التسجيل من خلال تجميع عملية منح مجموعة من الأذونات الخاصة بنوع الجهاز في خطوة واحدة.
يتم منح الأذونات المجمَّعة للتطبيق المصاحب بعد اتصال الجهاز، ولا تستمر هذه الأذونات إلا عندما يكون الجهاز مرتبطًا. ويؤدي حذف التطبيق أو إزالة الربط إلى إزالة الأذونات.
لمزيد من المعلومات، يُرجى الاطّلاع على
AssociationRequest.Builder.setDeviceProfile()
.
تحسينات على تقدير معدل نقل البيانات
في نظام التشغيل Android 12، تم تحسين إمكانات تقدير معدل نقل البيانات المتوفرة من خلال
getLinkDownstreamBandwidthKbps()
وgetLinkUpstreamBandwidthKbps()
لكل من اتصال Wi-Fi وشبكة الجوّال. وتمثل القيم التي يتم إرجاعها الآن متوسط سرعة معالجة البيانات المرجحة لكل الوقت للمستخدم لكل مشغل شبكة جوّال أو SSID لشبكة Wi-Fi ونوع الشبكة ومستوى الإشارة في جميع التطبيقات على الجهاز.
وقد يؤدي ذلك إلى عرض تقدير أكثر دقة وواقعية لإنتاج البيانات المتوقّع،
وتقديم تقديرات بشأن البدء البارد لتطبيقك، ويتطلب دورات أقل
عند مقارنته باستخدام طرق أخرى لتقدير سرعة معالجة البيانات.
تحسينات على خدمة Wi-Fi Aware (NAN)
يضيف نظام التشغيل Android 12 بعض التحسينات إلى ميزة Wi-Fi Aware:
- على الأجهزة التي تعمل بالإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يمكنك استخدام ميزة معاودة الاتصال
onServiceLost()
لإرسال تنبيهات عند فقدان تطبيقك لخدمة تم اكتشافها بسبب إيقاف الخدمة أو نقلها خارج النطاق. - تتغير طريقة إعداد مسارات بيانات متعددة (NAN) لتصبح أكثر كفاءة. استخدمت الإصدارات السابقة المراسلة L2 لتبادل معلومات الزملاء في البداية، والتي قدّمت وقت الاستجابة. على الأجهزة التي تعمل بالإصدار 12 من نظام التشغيل Android والإصدارات الأحدث، يمكن ضبط المجيب (الخادم) لقبول أي نظير، أي أنه لا يحتاج إلى معرفة معلومات المُنشئ مسبقًا. يؤدي ذلك إلى تسريع إحضار مسار البيانات وتفعيل روابط متعددة من نقطة إلى نقطة مع طلب شبكة واحد فقط.
- لمنع إطار العمل من رفض طلبات الاكتشاف أو الاتصال بسبب
نفاد الموارد، يمكنك طلب الرمز
WifiAwareManager.getAvailableAwareResources()
على الأجهزة التي تعمل بالإصدار 12 والإصدارات الأحدث من نظام التشغيل Android. تتيح لك القيمة المعروضة لهذه الطريقة الحصول على عدد مسارات البيانات المتاحة وعدد جلسات النشر المتاحة وعدد جلسات الاشتراك المتاحة.
اتصال نظير إلى نظير متزامن + اتصال إنترنت
عندما تعمل الأجهزة التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث على أجهزة مزوَّدة
بالأجهزة المتوافقة مع الأجهزة، لن يؤدي استخدام الاتصالات من نظير إلى نظير إلى قطع
اتصال Wi-Fi الحالي عند إنشاء الاتصال بالجهاز المشابه. للتحقّق من توفّر هذه الميزة، استخدِم
WifiManager.isMultiStaConcurrencySupported()
.
تفعيل الشاشة مقفلة للدفع عبر NFC
في التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android والإصدارات الأحدث، يمكنك تفعيل الدفعات عبر تقنية NFC بدون تشغيل شاشة الجهاز من خلال ضبط requireDeviceScreenOn
على
false
. لمزيد من المعلومات حول الدفعات عبر تقنية NFC عندما تكون الشاشة مقفلة أو مغلقة، يُرجى الاطّلاع على المقالة
سلوك الشاشة عندما تكون مقفلة وشاشة القفل.
مساحة التخزين
يقدّم Android 12 إمكانيات إدارة مساحة التخزين التالية:
- تتوفر خدمة تخزين الوسائط لـ
MediaDocumentsProvider
عندما يسترد تطبيقك معرّف موارد منتظم (URI) للوسائط يعادل معرّف موارد منتظم (URI) محدّد لموفّر المستندات. - دليل للتسجيلات الصوتية.
- إذن
MANAGE_MEDIA
الذي يتيح للتطبيق تنفيذ عمليات إدارة الوسائط بدون عرض مربّع حوار تأكيد للمستخدم لكل عملية. - يمكن للتطبيقات التي لديها كل من الإذن
MANAGE_EXTERNAL_STORAGE
وإذنQUERY_ALL_PACKAGES
مثل تطبيقات إدارة الملفات أن تستدعي نشاطًا مخصّصًا لإدارة مساحة التخزين في تطبيق آخر، شرط أن ينشئ التطبيق الآخر النشاط المخصَّص.
الوظيفة الأساسية
التحديثات التلقائية للتطبيقات
يقدّم نظام التشغيل 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
|