يقدّم نظام التشغيل Android 12 ميزات وواجهات برمجة تطبيقات جديدة رائعة للمطوّرين. تساعدك الأقسام أدناه في التعرّف على ميزات تطبيقاتك وبدء استخدام واجهات برمجة التطبيقات ذات الصلة.
للحصول على قائمة مفصّلة لواجهات برمجة التطبيقات الجديدة والمعدَّلة والمُزالة، يُرجى الاطّلاع على تقرير اختلافات واجهة برمجة التطبيقات. للحصول على تفاصيل عن واجهات برمجة التطبيقات الجديدة، يُرجى الانتقال إلى مرجع واجهة برمجة تطبيقات Android ، حيث يتم تمييز واجهات برمجة التطبيقات الجديدة لسهولة الاطّلاع عليها. للاطّلاع أيضًا على التغييرات في سلوك Android 12 للتطبيقات التي تستهدف Android 12 ولجميع التطبيقات، يُرجى الاطّلاع على التغييرات في سلوك Android 12.
تجربة المستخدم
Material You
يقدّم نظام التشغيل Android 12 لغة تصميم جديدة تُعرف باسم Material You، ما يساعدك في إنشاء تطبيقات أكثر تخصيصًا وجمالًا. لاستخدام أحدث ميزات Material Design 3 في تطبيقاتك، جرِّب الإصدار التجريبي من مكونات Material Design.
تحسينات على التطبيقات المصغّرة
يُعيد نظام التشغيل 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 إنشاء ردود فعل لمسية مستمدة من جلسة صوتية باستخدام vibrater (المُهتز) في الهاتف. ويمنحك ذلك فرصة للاستمتاع بتجربة غامرة أكثر من خلال الألعاب والمحتوى الموسقي. على سبيل المثال، يمكن أن تساعد نغمات الرنين المحسَّنة باللمس في التعرّف على هوية المتصلين، أو يمكن أن تحاكي لعبة قيادة السيارة الشعور بالتضاريس الوعرة.
يُرجى الاطّلاع على مستندات مرجع HapticGenerator
لمزيد من المعلومات.
AppSearch
يقدّم نظام التشغيل Android 12 ميزة AppSearch، وهي محرّك بحث عالي الأداء على الجهاز، بصفتها خدمة نظام. يتيح AppSearch للتطبيقات فهرسة البيانات المنظَّمة والبحث فيها باستخدام إمكانات البحث عن النص الكامل المضمّنة. بالإضافة إلى ذلك، يتوافق AppSearch مع ميزات البحث المضمّنة، مثل الفهرسة والاسترجاع الفعّالَين للغاية، وإمكانية استخدام لغات متعدّدة، وترتيب النتائج حسب مدى الصلة.
يتوفّر AppSearch بنوعين: فهرس محلي يستخدمه تطبيقك ويتوافق مع الإصدارات القديمة من Android، أو فهرس مركزي يتم الاحتفاظ به للنظام بأكمله في Android 12. باستخدام الفهرس المركزي، يمكن لتطبيقك السماح بعرض بياناته على مساحات واجهة مستخدم النظام من خلال عنصر الذكاء المثبَّت مسبقًا في النظام. يعتمد تحديد البيانات التي يتم عرضها على أسطح واجهة مستخدم النظام على المصنّع الأصلي للجهاز. بالإضافة إلى ذلك، يمكن لتطبيقك مشاركة البيانات بأمان مع التطبيقات الأخرى، للسماح لها بالبحث في تلك البيانات أيضًا.
اطّلِع على مزيد من المعلومات حول AppSearch في دليل المطوّر، وابدأ استخدامه مع مكتبة AppSearch Jetpack التي تقدّم واجهة برمجة تطبيقات سهلة الاستخدام للمطوّرين، بالإضافة إلى دعم معالج التعليقات التوضيحية.
وضع اللعبة
تتيح لك واجهة برمجة التطبيقات Game Mode API وتدخلات "وضع اللعب" تحسين تجربة اللعب من خلال منح الأولوية للخصائص، مثل الأداء أو عمر البطارية، استنادًا إلى إعدادات المستخدمين أو الإعدادات الخاصة باللعبة.
لمزيد من المعلومات، يُرجى الاطّلاع على وضع "الألعاب".
اقتراحات وتحسينات بشأن ميزة "صورة داخل صورة"
يقدّم نظام التشغيل Android 12 التحسينات التالية على وضع "صورة في صورة":
إتاحة إيماءات جديدة لميزة "صورة في صورة"
يتيح نظام التشغيل Android 12 الآن إيقاف الفيديو مؤقتًا واستخدام لفتات التصغير/التكبير في نافذة PiP:
لإخفاء النافذة، يمكن للمستخدم سحبها إلى الحافة اليمنى أو اليسرى. لإزالة إخفاء النافذة، يمكن للمستخدم النقر على الجزء المرئي من النافذة المخفية أو سحبها للخارج.
يمكن للمستخدم الآن تغيير حجم نافذة "وضع الصورة في الصورة" باستخدام ميزة التصغير/التكبير بإصبعَين.
ميزات جديدة مقترَحة توفّر تجربة انتقال سلسة إلى وضع "صورة في صورة"
أضاف نظام التشغيل Android 12 تحسينات جمالية مهمة إلى التحولات المتحرّكة بين النوافذ التي تعمل بالوضع الكامل ووضع "صورة في صورة". ننصحك بشدة بتطبيق جميع التغييرات السارية، وبعد إجراء ذلك، سيتم تطبيق هذه التغييرات تلقائيًا على الشاشات الكبيرة، مثل الشاشات القابلة للطي والأجهزة اللوحية، بدون الحاجة إلى إجراء أي تعديلات أخرى.
وتشمل هذه الميزات ما يلي:
-
استخدِم العلامة
setAutoEnterEnabled
لتوفير انتقالات أكثر سلاسة إلى وضع "نافذة داخل النافذة" عند التمرير سريعًا للأعلى للانتقال إلى الشاشة الرئيسية في وضع التنقّل بالإيماءات. في السابق، كان Android ينتظر حتى انتهاء عرض الرسوم المتحركة بالتمرير سريعًا إلى الصفحة الرئيسية قبل أن يختفي في نافذة "نافذة ضمن النافذة". صور متحركة أكثر سلاسة عند الدخول إلى وضع "نافذة داخل النافذة" والخروج منه
تتم إعادة استخدام العلامة
SourceRectHint
الآن لتنفيذ رسوم متحركة أكثر سلاسة عند الدخول إلى وضع "نافذة داخل النافذة" والخروج منه.علامة جديدة في واجهة برمجة التطبيقات لإيقاف تغيير حجم المحتوى غير الفيديوهات بسلاسة
يعرض الرمز
SeamlessResizeEnabled
صورة متحركة أكثر سلاسة عند تغيير حجم المحتوى غير المرئي في نافذة "العرض في نافذة ضمن النافذة". في السابق، كان تغيير حجم المحتوى غير المرئي في نافذة "نافذة ضمن النافذة" يؤدي إلى إنشاء عناصر مرئية مزعجة.
إشعارات جديدة للمكالمات الهاتفية تتيح ترتيب أهمية المكالمات الواردة
يضيف نظام التشغيل 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 الأخيرة.
الأمان والخصوصية
لوحة بيانات الخصوصية
على الأجهزة المتوافقة التي تعمل بنظام التشغيل 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
استخدام
بدائل قد تكون أكثر ملاءمةً لحالة الاستخدام، مثل
وضع "صورة في صورة" أو
المربّعات.
علامة حماية أذونات الموقعين المعروفين
بدءًا من الإصدار 12 من نظام التشغيل Android، تتيح لك سمة
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 مجموعة قياسية من المفاتيح للتحكّم في قيمة المَعلمة quantization (QP) لترميز الفيديو، ما يسمح للمطوّرين بتجنُّب استخدام الرمز البرمجي الخاص بالمورّد.
تتوفر المفاتيح الجديدة في
MediaFormat
API
وأيضًا في
NDK Media Library.
اعتبارًا من الإصدار Android 12، تفرض برامج ترميز الفيديو الحد الأدنى من قياس الجودة. ويضمن ذلك عدم مشاهدة المستخدمين فيديوهات ذات جودة منخفضة للغاية عند ترميز الفيديوهات التي تتضمّن مشاهد معقدة للغاية.
التركيز على الصوت
بدءًا من الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات)، عندما يطلب تطبيق التركيز على الصوت بينما يكون تطبيق آخر في المقدّمة ويتم تشغيله، يخفض النظام مستوى صوت التطبيق الذي يتم تشغيله.
يمكنك الاطّلاع على ميزة "التركيز على الصوت" في الإصدار 12 والإصدارات الأحدث من نظام التشغيل Android للحصول على مزيد من التفاصيل.
تحديثات MediaDrm
لتحديد ما إذا كان مكوّن وحدة فك التشفير الآمن مطلوبًا مع واجهة برمجة التطبيقات
MediaDrm
الحالية، عليك اتّباع الخطوات التالية:
- أنشئ
MediaDrm
. - افتح جلسة للحصول على معرّف جلسة.
- أنشئ
MediaCrypto
باستخدام معرّف الجلسة. - الاتصال بالرقم
MediaCrypto.requiresSecureDecoderComponent(mimeType)
.
باستخدام الطريقتَين الجديدتَين requiresSecureDecoder(@NonNull String mime)
وrequiresSecureDecoder(@NonNull String mime, @SecurityLevel int level)
،
يمكنك تحديد ذلك فور إنشاء MediaDrm
.
الكاميرا
إضافات مورّدي Camera2
أنشأ العديد من شركاء المصنّعين للأجهزة إضافات مخصّصة للكاميرا، مثل تأثير "موهبة بوكيه" والنطاق العالي الديناميكية (HDR) و"وضع الليل" وغيرها، ويريد هؤلاء المصنّعون أن تستخدم التطبيقات هذه الإضافات لتوفير تجارب مختلفة على أجهزتهم. تتيح مكتبة CameraX استخدام إضافات المورّدين المخصّصة هذه. في Android 12، تظهر إضافات البائعين هذه الآن مباشرة في نظام التشغيل.
تساعد هذه الإضافة التطبيقات التي تتضمّن عمليات تنفيذ معقدة
Camera2
للاستفادة من إضافات المورّدين بدون الحاجة إلى إجراء
تغييرات كبيرة على الرمز القديم. توفّر واجهات برمجة تطبيقات Camera2 Extension API مجموعة التعديلات نفسها تمامًا التي يوفّرها CameraX، وهي متاحة حاليًا على العديد من
الأجهزة المختلفة، لذا يمكنك استخدامها بدون أي
إعدادات إضافية.
لمزيد من المعلومات، يُرجى الاطّلاع على
CameraExtensionCharacteristics
.
إتاحة كاميرا Quad Bayer
يتم حاليًا شحن العديد من أجهزة 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، كانت واجهة برمجة التطبيقات هذه تُفكّ ترميز الصورة الأولى فقط من
الرسوم المتحرّكة بتنسيقات WebP وGIF وAPNG.
استخدِم ImageDecoder
بدلاً من المكتبات التابعة لجهات خارجية من أجل تقليل حجم APK
والاستفادة من التحديثات المستقبلية المتعلّقة بالأمان والأداء.
لمزيد من التفاصيل حول واجهة برمجة التطبيقات، يُرجى الرجوع إلى مرجع واجهة برمجة التطبيقات والعيّنة على GitHub.
إمكانية الاتصال
إبقاء التطبيقات المصاحبة نشطة
لتلبية حاجة التطبيقات المصاحبة إلى البقاء قيد التشغيل لإدارة الجهاز،introduces Android 12 واجهات برمجة تطبيقات تؤدي ما يلي:
- يتيح لك هذا الإذن تنشيط تطبيق عندما يكون جهاز مصاحب في النطاق.
- ضمان مواصلة تنفيذ العملية عندما يظل الجهاز ضمن النطاق
لاستخدام واجهات برمجة التطبيقات، يجب أن تكون أجهزتك متصلة باستخدام مدير
الأجهزة المصاحبة. لمزيد من
المعلومات، يُرجى الاطّلاع على
CompanionDeviceManager.startObservingDevicePresence()
و
CompanionDeviceService.onDeviceAppeared()
.
الملفات الشخصية في أداة "مدير الأجهزة المصاحبة"
يمكن لتطبيقات الشركاء على نظام التشغيل Android 12 (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث استخدام ملفات ملف الشخصي للأجهزة المصاحبة عند الربط بساعة. يُبسِّط استخدام الملف الشخصي عملية التسجيل من خلال تجميع منح مجموعة من الأذونات الخاصة بنوع الجهاز في خطوة واحدة.
يتم منح الأذونات المجمّعة للتطبيق المصاحب عند اتصال الجهاز، ولا تدوم سوى أثناء ربط الجهاز. يؤدي حذف التطبيق أو إزالة الربط إلى إزالة الأذونات.
لمزيد من المعلومات، يُرجى الاطّلاع على
AssociationRequest.Builder.setDeviceProfile()
.
تحسينات على تقدير معدل نقل البيانات
في نظام التشغيل Android 12، تم تحسين إمكانات تقدير معدل نقل البيانات التي يوفّرها getLinkDownstreamBandwidthKbps()
وgetLinkUpstreamBandwidthKbps()
لإتاحة الاتصال بشبكة Wi-Fi وشبكة الجوّال. القيم التي يتم عرضها الآن
تمثل متوسط معدل نقل البيانات المرجح على مدار الوقت لكل مشغّل شبكة الجوَّال أو WiFi
وعنوان مجموعة الخدمات (SSID) ونوع الشبكة ومستوى الإشارة، وذلك على مستوى جميع التطبيقات على الجهاز.
ويمكن أن يؤدي ذلك إلى تقديم تقدير أكثر دقة وواقعية للمعدل المتوقع للعمليات،
وتوفير تقديرات لبدء تشغيل تطبيقك، ويتطلب عددًا أقل من الدورات مقارنةً باستخدام طرق أخرى لتقدير معدل العمليات.
تحسينات Wi-Fi Aware (الشبكة المحلية اللاسلكية)
يضيف نظام التشغيل Android 12 بعض التحسينات على ميزة "الاستشعار بشبكة Wi-Fi":
- على الأجهزة التي تعمل بالإصدار 12 من نظام التشغيل Android 12 (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يمكنك استخدام معاودة الاتصال
onServiceLost()
ليتم تنبيهك عندما يفقد تطبيقك خدمة تم اكتشافها بسبب توقف الخدمة أو الخروج منها. - تم تغيير طريقة إعداد مسارات البيانات المتعدّدة (مسارات بيانات NAN) لتكون أكثر فعالية. واستخدمت الإصدارات السابقة مراسلات L2 لتبادل معلومات الزملاء في البداية، الأمر الذي أدى إلى وقت الاستجابة. على الأجهزة التي تعمل بنظام التشغيل Android 12 والإصدارات الأحدث، يمكن ضبط المجيب (الخادم) لقبول أي تطبيق آخر، أي أنّه لا يحتاج إلى معرفة معلومات بادئ التشغيل مقدمًا. ويؤدي ذلك إلى تسريع عملية إعداد مسار البيانات وتفعيل روابط متعددة بين نقطتَين من خلال طلب واحد فقط على الشبكة.
- لمنع الإطار من رفض طلبات الاكتشاف أو الربط بسبب
نفاد الموارد، يمكنك على الأجهزة التي تعمل بنظام التشغيل Android 12 والإصدارات
الأحدث استدعاء
WifiAwareManager.getAvailableAwareResources()
. تتيح لك القيمة التي تعرضها هذه الطريقة الحصول على عدد مسارات البيانات المتاحة وعدد جلسات النشر المتاحة وعدد جلسات الاشتراك المتوفرة.
اتصال نظير إلى نظير بشكل متزامن + اتصال بالإنترنت
عندما تعمل الأجهزة التي تستهدف Android 12 (المستوى 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
|