ميزات Android 10 وواجهات برمجة التطبيقات

يقدّم نظام Android 10 ميزات وإمكانات رائعة للمستخدمين المطورين. يسلّط هذا المستند الضوء على الميزات المتاحة للمطوّرين.

للتعرّف على واجهات برمجة التطبيقات، يُرجى الاطّلاع على تقرير اختلاف واجهة برمجة التطبيقات أو الانتقال إلى مرجع واجهة برمجة تطبيقات Android - ابحث عن واجهات برمجة التطبيقات التي "تمت إضافتها في المستوى 29 من واجهة برمجة التطبيقات". اطّلِع أيضًا على سلوك Android 10 التغييرات (لتطبيقات التطبيقات التي تستهدف المستوى 29 من واجهة برمجة التطبيقات ولأغراض جميع التطبيقات)، بالإضافة إلى الخصوصية التغييرات، للتعرّف على الجوانب التي قد تطرأ فيها تغييرات على المنصة تؤثر في تطبيقاتك.

تحسينات الأمان

يقدّم نظام التشغيل Android 10 عددًا من ميزات الأمان، الأقسام التالية تلخيصها.

مربّعات حوار محسَّنة للمصادقة باستخدام المقاييس الحيوية

يقدّم نظام التشغيل Android 10 التحسينات التالية على ميزة المصادقة بالمقاييس الحيوية:

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

تشغيل رمز DEX المضمّن مباشرةً من حزمة APK

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

لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تشغيل رمز DEX المضمّن مباشرةً من حزمة APK.

إتاحة الإصدار 1.3 من بروتوكول أمان طبقة النقل

يضيف Android 10 دعمًا إلى الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) يُعد الإصدار 1.3 من بروتوكول أمان طبقة النقل مراجعة رئيسية معيار بروتوكول أمان طبقة النقل (TLS) الذي يتضمّن مزايا الأداء والأمان المحسّن تشير قياساتنا المرجعية إلى أنّه يمكن إنشاء اتصالات آمنة بشكلٍ أسرع بنسبة تصل إلى ‎40% باستخدام بروتوكول TLS 1.3 مقارنةً ببروتوكول TLS 1.2.

للحصول على مزيد من التفاصيل حول تنفيذ بروتوكول أمان طبقة النقل (TLS) الإصدار 1.3، يمكنك الاطّلاع على قسم بروتوكول أمان طبقة النقل (TLS) ضمن التغييرات في السلوك لجميع التطبيقات .

واجهة برمجة تطبيقات Public Conscrypt

بدءًا من نظام التشغيل Android 10، يشمل موفِّر أمان Conscrypt واجهة برمجة التطبيقات العامة لوظائف بروتوكول أمان طبقة النقل (TLS).

تُعد مجموعة الفئات ضمن android.net.ssl تحتوي على قيم ثابتة للوصول إلى الوظائف غير المتوفرة من الأدوات العامة javax.net.ssl من واجهات برمجة التطبيقات. ويمكن استنتاج أسماء هذه الفئات باعتبارها صيغة جمع من فئة javax.net.ssl المقابلة. على سبيل المثال، الكود الذي يعمل على يمكن أن تستخدم مثيلات javax.net.ssl.SSLSocket بدلاً من ذلك الطرق من SSLSockets

ميزات إمكانية الاتصال

يتضمّن نظام Android 10 العديد من التحسينات ذات الصلة بالشبكات والاتصال.

واجهة برمجة تطبيقات اتصال شبكة Wi-Fi

يتيح نظام التشغيل Android 10 إمكانية الاتصال من نظير إلى نظير. هذا النمط لتطبيقك بأن يطلب من المستخدم تغيير نقطة الوصول التي متصل بها باستخدام WifiNetworkSpecifier لوصف خصائص الشبكة المطلوبة. يُعد اتصال نظير إلى نظير يُستخدم لأغراض لا تتعلق بتوفير الشبكة، مثل إعداد التمهيد أجهزة ثانوية، مثل Chromecast وأجهزة Google Home

لمزيد من المعلومات، يمكنك الاطّلاع على واجهة برمجة تطبيقات طلب شبكة Wi-Fi لشبكة الند للند الاتصال.

واجهة برمجة تطبيقات اقتراحات شبكة Wi-Fi

يتيح نظام التشغيل Android 10 استخدام تطبيقك لطلب الاتصال من المستخدم. بنقطة وصول Wi-Fi. يمكنك تقديم اقتراحات بشأن الشبكة التي تريد الاتصال بها. إليه. ستختار المنصة في النهاية نقطة الوصول التي سيتم قبولها استنادًا إلى مدخلاتك والتطبيقات الأخرى.

لمزيد من المعلومات عن هذه الميزة، يمكنك الاطّلاع على اقتراح شبكات Wi-Fi

تحسينات على وضعَي التشغيل العالي الأداء ووقت الاستجابة المنخفض على شبكة Wi-Fi

يسمح لك Android 10 بتقديم تلميح للمودم الأساسي لتقليل وقت الاستجابة.

يضيف نظام التشغيل Android 10 واجهة برمجة التطبيقات Wi-Fi lock API لدعم وضع الأداء العالي ووضع وقت الاستجابة المنخفض بفعالية. تم إيقاف توفير طاقة Wi-Fi للحصول على الأداء العالي وقت الاستجابة المنخفض، ويمكن تفعيل المزيد من تحسين وقت الاستجابة في وقت الاستجابة السريع بناءً على دعم المودم.

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

عمليات البحث المخصّصة في أداة حلّ نظام أسماء النطاقات

يضيف Android 10 دعمًا أصليًا لعمليات بحث نظام أسماء النطاقات المتخصّصة باستخدام كل من عمليات بحث النص الواضح ووضع نظام أسماء النطاقات عبر بروتوكول أمان طبقة النقل (DNS). في السابق، كان نظام أسماء النطاقات الأساسي برنامج التعيين يتوافق فقط مع سجلات A وAAAA، ما يسمح بالبحث عن عنوان IP فقط العناوين المرتبطة بالاسم، ولكنها لم تدعم أي أنواع سجلات أخرى. توفّر واجهة برمجة التطبيقات DnsResolver نظرة عامة حول درجة دقة غير متزامنة، مما يتيح لك البحث عن SRV وNAPTR وغير ذلك السجلات. يُرجى العِلم أنّه على التطبيق تحليل الردّ.

بالنسبة إلى التطبيقات المستندة إلى NDK، يُرجى مراجعة android_res_nsend

اتصال سهل بـ Wi-Fi

يتيح لك Android 10 استخدام الاتصال السهل لتوفير شبكة Wi-Fi بيانات الاعتماد إلى جهاز نظير، كبديل لنظام WPS الذي تم إيقافه. يمكن للتطبيقات دمج Easy Connect في عملية الإعداد وإدارة الحسابات باستخدام الـ ACTION_PROCESS_WIFI_EASY_CONNECT_URI والنية.

لمزيد من المعلومات عن هذه الميزة، يمكنك الاطّلاع على Wi-Fi Easy Connect

واجهة برمجة تطبيقات اتصال Wi-Fi المباشر

تتوفّر تحديثات لفئة واجهة برمجة التطبيقات WifiP2pConfig وWifiP2pManager في Android 10 لدعم إمكانات إنشاء اتصال سريع بشبكة Wi-Fi المباشرة باستخدام معلومات محددة مسبقًا. تتم مشاركة هذه المعلومات عبر قناة جانبية، مثل مثل Bluetooth أو NFC.

يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء مجموعة باستخدام نموذج محدد مسبقًا المعلومات:

Kotlin

val manager = getSystemService(Context.WIFI_P2P_SERVICE) as WifiP2pManager
val channel = manager.initialize(this, mainLooper, null)

// prefer 5G band for this group
val config = WifiP2pConfig.Builder()
    .setNetworkName("networkName")
    .setPassphrase("passphrase")
    .enablePersistentMode(false)
    .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ)
    .build()

// create a non-persistent group on 5GHz
manager.createGroup(channel, config, null)

Java

WifiP2pManager manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
Channel channel = manager.initialize(this, getMainLooper(), null);

// prefer 5G band for this group
WifiP2pConfig config = new WifiP2pConfig.Builder()
.setNetworkName("networkName")
.setPassphrase("passphrase")
.enablePersistentMode(false)
.setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ)
.build();

// create a non-persistent group on 5GHz
manager.createGroup(channel, config, null);

للانضمام إلى مجموعة باستخدام بيانات الاعتماد، استبدِل manager.createGroup() بما يلي:

Kotlin

manager.connect(channel, config, null)

Java

manager.connect(channel, config, null);

القنوات الموجَّهة لاتصال Bluetooth LE (CoC)

يتيح نظام التشغيل Android 10 لتطبيقك استخدام عمليات الربط في وضع "التواصل المستمر" لبروتوكول BLE لنقل مزيد من ملفّات data الكبيرة بين جهازَي BLE. تستعرض هذه الواجهة "البلوتوث" آليات الاتصال لتبسيط التنفيذ.

ميزات الاتصال الهاتفي

يتضمّن نظام Android 10 العديد من التحسينات ذات الصلة بالاتصال الهاتفي.

تحسينات على جودة المكالمات

يضيف نظام التشغيل Android 10 إمكانية جمع معلومات عن جودة مكالمات IMS الجارية، بما في ذلك الجودة من الشبكة وإليها، على الأجهزة التي تتيح هذه الميزة.

فحص المكالمات وإظهار رقم المتّصل

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

واجهة برمجة التطبيقات لخدمة إعادة توجيه المكالمات

يغيِّر Android 10 طريقة التعامل مع "الروابط والعناصر الإعلانية حسب نية العميل". تشير رسالة الأشكال البيانية تم إيقاف بث "NEW_OUTGOING_CALL" نهائيًا واستبداله واجهة برمجة التطبيقات CallRedirectionService. توفّر واجهة برمجة التطبيقات CallRedirectionService لتعديل المكالمات الصادرة التي يجريها نظام Android الأساسي. على سبيل المثال، قد تلغي التطبيقات التابعة لجهات خارجية المكالمات وتعيد توجيهها عبر بروتوكول الصوت على الإنترنت (VoIP).

تحسينات على إنشاء الملفات في مساحة التخزين الخارجية

بالإضافة إلى تقديم عروض الأسعار أو سعة التخزين يضيف Android 10 الإمكانات التالية ذات الصلة بالجهات الخارجية مساحة التخزين:

الوسائط والرسومات

يقدّم نظام التشغيل Android 10 الميزات الجديدة التالية للوسائط والرسومات وواجهات برمجة التطبيقات:

جارٍ مشاركة إدخال الصوت

يتيح نظام Android 10 لتطبيقَين مشاركة الإدخال الصوتي في الوقت نفسه. للحصول على المعلومات الكاملة، يُرجى الاطّلاع على مشاركة إدخال الصوت.

تسجيل تشغيل الصوت

يتيح نظام التشغيل Android 10 للتطبيقات إمكانية تسجيل تشغيل الصوت من تطبيقات أخرى. للحصول على المعلومات الكاملة، يمكنك الاطّلاع على التقاط التشغيل.

شريط التمرير في إشعارات MediaStyle

بدءًا من الإصدار 10 من نظام التشغيل Android، تعرض إشعارات "MediaStyle" شريط تمرير. يعرض شريط التمرير تقدم التشغيل من PlaybackState.getPosition()، وفي بعض الحالات يمكن استخدام شريط التمرير للبحث عن موقع أثناء التشغيل البرنامج. يتم التحكّم في مظهر شريط التمرير وسلوكه من خلال القواعد التالية:

  • يظهر شريط التمرير إذا كان هناك MediaSession نشط ومدته. (المحددة من خلال MediaMetadata.METADATA_KEY_DURATION) أكبر من صفر. هذا يعني أن الشريط لا يظهر في عمليات البث غير المحددة مثل وأحداث البث المباشر والبث الإذاعي
  • في حال تنفيذ الجلسة ACTION_SEEK_TO، يمكن للمستخدم سحب شريط التمرير إلى للتحكم في موقع التشغيل.

واجهة برمجة تطبيقات MIDI الأصلية

تتيح واجهة برمجة التطبيقات MIDI الأصلية من Android (AMidi) لمطوّري التطبيقات إمكانية لإرسال بيانات MIDI واستلامها باستخدام رمز C/C++ ، مع التكامل بشكل وثيق مع منطقتهم الخاصة بالصوت/التحكم باستخدام لغة C/C++ وتقليل الحاجة إلى JNI

لمزيد من المعلومات، يُرجى الاطّلاع على واجهة برمجة تطبيقات MIDI الأصلية لنظام التشغيل Android.

تحسينات MediaCodecInfo

يضيف Android 10 طرقًا إلى MediaCodecInfo التي تكشف عن المزيد للحصول على معلومات حول برنامج الترميز.

لمزيد من المعلومات، اطّلِع على برامج ترميز الوسائط.

واجهة برمجة التطبيقات Thermal API

عندما ترتفع درجة حرارة الأجهزة بشكل كبير، قد تقيِّد وحدة المعالجة المركزية (CPU) و/أو وحدة معالجة الرسومات، ما قد يؤدي إلى تؤثر في التطبيقات والألعاب بطرق غير متوقعة. التطبيقات التي تستخدم رسومات معقدة الحوسبة أو نشاط الشبكة المستمر الذي من المرجح أن يتعرض لمشكلات، وقد تختلف تلك البيانات عبر الأجهزة بناءً على مجموعة الشرائح والترددات الأساسية، ومستويات والتكامل، بالإضافة إلى غلاف الجهاز وشكل الجهاز.

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

عندما يُبلغ الجهاز عن حدوث ضغط حراري، يمكن للتطبيقات والألعاب المساعدة من خلال إيقاف الأنشطة الجارية لتقليل استهلاك الطاقة بطرق مختلفة. على سبيل المثال: يمكن لتطبيقات البث تقليل درجة الدقة/معدل البت أو حركة بيانات الشبكة، وكاميرا أحد التطبيقات التي قد توقِف الفلاش أو تحسين الصور بشكل مكثف، ويمكن أن تقلّل اللعبة معدل عرض الإطارات أو التظليل المضلّع، يمكن لتطبيق وسائط تقليل مستوى صوت مكبر الصوت، ويمكن لتطبيق الخرائط إيقاف تشغيل نظام تحديد المواقع العالمي (GPS).

تتطلب واجهة برمجة التطبيقات الحرارية طبقة HAL جديدة للجهاز، وهي متوافقة حاليًا. على أجهزة Pixel التي تعمل بنظام Android 10 ونحن نعمل مع الشركة المصنّعة للأجهزة الشركاء لتقديم دعم واسع النطاق للمنظومة المتكاملة بأسرع وقت ممكن.

الكاميرا والصور

يقدّم نظام التشغيل Android 10 الميزات الجديدة التالية المتعلّقة بالكاميرا والصور:

التوافق مع الكاميرا الأحادية اللون

كان نظام التشغيل Android 9 (المستوى 28 من واجهة برمجة التطبيقات) هو أول نظام يتيح استخدام كاميرا أحادية اللون. يضيف نظام Android 10 العديد من التحسينات إلى دعم الكاميرا الأحادية اللون:

  • يتوافق تنسيق البث Y8 مع تحسين كفاءة الذاكرة.
  • إتاحة التقاط DNG الأولي أحادي اللون.
  • تقديم التعدادين MONO وNIR CFA للتمييز بين القيم العادية والكاميرا الأحادية اللون وبالقرب من كاميرات الأشعة تحت الحمراء.

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

تنسيق العمق الديناميكي

بدءًا من نظام التشغيل Android 10، يمكن للكاميرات تخزين بيانات العمق لصورة في ملف منفصل، باستخدام مخطط جديد يسمى تنسيق العمق الديناميكي (DDF). يمكن للتطبيقات طلب كل من صورة JPG وبياناتها الوصفية لعمقها، باستخدام هذه المعلومات من أجل تطبيق أي تمويه يريدونه في المعالجة اللاحقة بدون تعديل الصورة الأصلية بيانات الصور.

لقراءة مواصفات هذا التنسيق، يمكن مراجعة تنسيق العمق الديناميكي:

تنسيق ملف صور عالي الكفاءة

تنسيق ملف الصور العالي الكفاءة (HEIF) هو تنسيق عادي للصور والفيديوهات. يقدّم ترميزًا بجودة أعلى وحجم ملف أصغر مقارنةً بتنسيقات الملفات الأخرى.

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

تحسينات على الكاميرات المتعدّدة

يعمل نظام التشغيل Android 10 على تحسين عملية دمج عدة كاميرات في كاميرا منطقية واحدة، تم طرح ميزة في Android 9 (المستوى 28 من واجهة برمجة التطبيقات). تمت إضافة ما يلي إلى Camera2 API:

  • isSessionConfigurationSupported(SessionConfiguration sessionConfig): تتيح لك إمكانية الاستعلام عمّا إذا كانت الجلسة التي تم تمريرها أم لا من الإعدادات لإنشاء جلسة تصوير كاميرا.

  • LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID: تفعيل عليك تحديد رقم تعريف الكاميرا الفعلية النشطة التي تدعم كاميرا. ويمكنك استخدام المعرّفات التي يتم عرضها لطلب مصادر بيانات منطقية بث الكاميرا الفرعية المادية لتحقيق كفاءة أفضل في الطاقة.

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

Android 10 يقدّم الخدمة الجديدة التالية لتسهيل الاستخدام وواجهات برمجة التطبيقات:

علامة مفتاح إدخال AccessibilityNodeInfo

بدءًا من نظام Android 10، يمكنك الاتصال isTextEntryKey() لتحديد ما إذا كان AccessibilityNodeInfo معيّنًا يمثّل مفتاح إدخال نص يمثل جزءًا من لوحة مفاتيح أو لوحة مفاتيح.

الوصف الشفهي لمربّع حوار أدوات تسهيل الاستخدام

في الحالات التي يحتاج فيها المستخدمون إلى تنفيذ اختصار تسهيل الاستخدام لبدء مخصصة لتسهيل الاستخدام، يتيح Android 10 إمكانية وضع مصحوبة بمطالبة لتحويل النص إلى كلام إذا طلبت الخدمة ذلك.

اختصار تسهيل الاستخدام عند تفعيل ميزة التنقّل بالإيماءات

عند تفعيل ميزة التنقّل بالإيماءات في Android 10، لا يكون زر ميزات تسهيل الاستخدام مرئيًا أو قابلاً للاختيار. للوصول إلى قائمة خدمات تسهيل الاستخدام، على المستخدمين قم بإجراء إحدى الإيماءات التالية:

  • التمرير سريعًا للأعلى باستخدام إصبعَين
  • مرِّر سريعًا بإصبعين إلى الأعلى مع الاستمرار.

اختصار تسهيل الاستخدام للوحة المفاتيح الخارجية

في Android 10، يمكن للمستخدمين تفعيل اختصار تسهيل الاستخدام على لوحة مفاتيح خارجية من خلال الضغط على Control+Alt+Z.

تحسين وحدة التحكّم في لوحة المفاتيح الافتراضية

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

مهلات إمكانية الوصول التي يحددها المستخدم

يقدّم نظام التشغيل Android 10 واجهة برمجة التطبيقات getRecommendedTimeoutMillis() . توفر هذه الطريقة دعمًا للمهلات التي يحددها المستخدم لعمليات البحث التفاعلية عناصر واجهة المستخدم غير التفاعلية. تتأثر القيمة المعروضة بكلا المستخدمَين والتفضيلات وواجهات برمجة تطبيقات خدمة إمكانية الوصول.

تحسينات على ميزة "الملء التلقائي"

يحتوي الإصدار 10 من نظام التشغيل Android على التحسينات التالية على خدمة الملء التلقائي.

طلبات الملء التلقائي ذات الصلة بالتوافق

يمكنك استخدام العلامة FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST لتحديد ما إذا تم إنشاء طلب الملء التلقائي من خلال وضع التوافق .

حفظ اسم المستخدم وكلمة المرور في آنٍ واحد

يمكنك دعم الحالات التي يستخدم فيها التطبيق أنشطة متعددة اعرض اسم المستخدم وكلمة المرور والحقول الأخرى باستخدام SaveInfo.FLAG_DELAY_SAVE .

تفاعل المستخدم مع واجهة مستخدم الحفظ

يمكنك إظهار حقل كلمة مرور وإخفاؤه في مربّع حوار الحفظ من خلال ضبط إجراء. أداة استماع في مربع الحوار وتغيير إمكانية رؤية كلمة المرور المقابلة العرض عن بُعد.

دعم تحديث مجموعات البيانات

يمكن لميزة "الملء التلقائي" تعديل كلمات المرور الحالية. على سبيل المثال، إذا سبق للمستخدم تخزين كلمة مرور وحفظ كلمة مرور جديدة، تطلب ميزة "الملء التلقائي" من المستخدم تعديل كلمة المرور الحالية بدلاً من حفظ كلمة مرور جديدة.

تحسينات على تصنيف الحقول

يحتوي الإصدار 10 من نظام التشغيل Android على التحسينات التالية على واجهة برمجة تطبيقات التصنيف الميداني.

الدالة الإنشائية UserData.Builder

تشير رسالة الأشكال البيانية UserData.Builder تم تغيير الدالة الإنشائية لمحاذاة بشكل أفضل مع النمط Builder.

السماح بربط قيمة بأنواع متعددة من أرقام تعريف الفئات

عند استخدام UserData.Builder بوصة في Android 10، يمكنك الآن ربط قيمة بأنواع متعدّدة من أرقام تعريف الفئات. في الإصدارات السابقة، كان يتم طرح استثناء في حال إضافة قيمة أكثر من مرة.

دعم محسّن لأرقام بطاقات الائتمان

يمكن الآن لتصنيف الحقول رصد الأرقام المكونة من أربعة أرقام على أنّها الأرقام الأربعة الأخيرة من رقم بطاقة الائتمان.

إتاحة تصنيف الحقول الخاصة بالتطبيق

يضيف نظام التشغيل Android 10 FillResponse.setUserData()، مما يتيح لك ضبط بيانات المستخدم الخاصة بالتطبيق طوال مدة الجلسة. ويساعد ذلك خدمة الملء التلقائي في اكتشاف أنواع الحقول التي تحتوي على بيانات خاصة بالتطبيق. المحتوى.

واجهة المستخدم وعناصر التحكم في النظام

يوفر Android 10 التحسينات التالية على واجهة المستخدم:

إتاحة استخدام حروف كبيرة في إطار JVMTI PopFrame

يضيف Android 10 دعمًا can_pop_frames في تطبيق JVMTI في Android. عند تصحيح الأخطاء، تعمل هذه الميزة إعادة تشغيل الدوال بعد الإيقاف المؤقت عند نقطة توقف وضبط أو محلية أو عمومية أو تنفيذ دالة. لمزيد من المعلومات، يُرجى مراجعة الصفحة المرجعية لإطار Pop في Oracle.

واجهة برمجة التطبيقات الخاصة بعناصر التحكّم في السطح

يوفّر Android 10 واجهة برمجة التطبيقات SurfaceControl للوصول منخفض المستوى إلى مركب النظام (SurfaceFlinger) بالنسبة مع معظم المستخدمين، فإن SurfaceView هي الطريقة الصحيحة للاستفادة من المكون. تشير رسالة الأشكال البيانية يمكن أن تكون واجهة برمجة التطبيقات SurfaceControl مفيدة في حالات معيّنة، مثل:

  • مزامنة مساحات عرض متعددة
  • تضمين مساحات عرض متعددة العمليات
  • الإدارة ذات المستوى الأدنى منذ الإنشاء

تتوفّر واجهة برمجة التطبيقات SurfaceControl في كلّ من حِزم SDK وعمليات ربط NDK. يتضمن تنفيذ NDK واجهة برمجة تطبيقات للتبادل اليدوي للموارد الاحتياطية مع للمكون. يوفر هذا بديلاً للمستخدمين الذين واجهوا القيود على BufferQueue

رصد العارض المعلَّق في WebView

يقدّم Android 10 WebViewRenderProcessClient فئة التجريد، التي يمكن للتطبيقات استخدامها لاكتشاف ما إذا لم يستجِب WebView. إلى استخدام هذه الفئة:

  1. حدد فئتك الفرعية ونفذها onRenderProcessResponsive() أو onRenderProcessUnresponsive() الطرق.
  2. إرفاق مثيل من WebViewRenderProcessClient بكائن واحد أو أكثر من WebView
  3. في حال عدم استجابة "WebView"، سيستدعي النظام onRenderProcessUnresponsive() للعميل، مع تمرير WebView WebViewRenderProcess (إذا كان WebView عملية واحدة، تكون المَعلمة WebViewRenderProcess فارغة). يمكن لتطبيقك اتخاذ الإجراء المناسب، مثل عرض المستخدم يسأله عما إذا كان يريد إيقاف عملية العرض.

إذا ظل WebView غير مستجيب، يطلب النظام onRenderProcessUnresponsive(). دوريًا (لا يزيد عن مرة واحدة كل خمس ثوانٍ)، ولكن لا يتم اتخاذ أي إجراء آخر. في حال أصبحت "WebView" متجاوبة مجددًا، يستدعي النظام onRenderProcessResponsive() مرة واحدة فقط.

لوحات الإعدادات

يقدّم Android 10 Settings Panels (لوحات الإعدادات)، وهي واجهة برمجة تطبيقات تسمح للتطبيقات بعرض الإعدادات للمستخدمين في سياق تطبيقاتهم. يمنع ذلك المستخدمين من الحاجة الانتقال إلى الإعدادات لتغيير بعض الإعدادات مثل NFC أو بيانات الجوّال في من أجل استخدام التطبيق.

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

الشكل 2. يمكن للمستخدم تفعيل Wi-Fi واختيار شبكة بدون مغادرة تطبيق Chrome.

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

لعرض لوحة إعدادات، نشِّط هدفًا باستخدام أحد الخيارات التالية: Settings.Panel الإجراءات:

Kotlin

val panelIntent = Intent(Settings.Panel.settings_panel_type)
startActivityForResult(panelIntent)

Java

Intent panelIntent = new Intent(Settings.Panel.settings_panel_type);
startActivityForResult(panelIntent);

يمكن أن يكون الحقل "settings_panel_type" واحدًا مما يلي:

ACTION_INTERNET_CONNECTIVITY
تعرض هذه البطاقة الإعدادات ذات الصلة بالاتصال بالإنترنت، مثل "وضع الطيران" وWi-Fi و"بيانات الجوّال".
ACTION_WIFI
يعرض إعدادات Wi-Fi، ولكن ليس إعدادات الاتصال الأخرى. ويُعدّ ذلك مفيداً للتطبيقات التي تحتاج إلى اتصال Wi-Fi لإجراء عمليات تحميل أو تنزيل كبيرة.
ACTION_NFC
تعرض كل الإعدادات ذات الصلة بالاتصال القصير المدى (NFC).
ACTION_VOLUME
عرض إعدادات مستوى الصوت لكل عمليات البث الصوتي

تحسينات المشاركة

يوفّر Android 10 عددًا من التحسينات على المشاركة:

واجهة برمجة تطبيقات اختصارات المشاركة

Shared Shortcuts API (واجهة برمجة تطبيقات اختصارات المشاركة) يحل محل المشاركة المباشرة API.

بدلاً من استرداد النتائج بشكل تفاعلي عند الطلب، تتيح واجهة برمجة التطبيقات لاختصارات المشاركة يسمح للتطبيقات بنشر أهداف المشاركة المباشرة مسبقًا. هذه هي الطريقة عمل ShortcutManager. نظرًا إلى تشابه واجهتَي برمجة التطبيقات، لقد وسّعنا نطاق ShortcutInfo واجهة برمجة التطبيقات لإجراء استخدام الميزات الجديدة. باستخدام واجهة برمجة التطبيقات Sharing Shortcuts API، يمكنك تحديد فئات أو مستخدمين مباشرةً كهدف للمشاركة. تظلّ أهداف المشاركة قائمة في النظام. إلى أن يتم تحديثهما أو إلغاء تثبيت التطبيق نفسه

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

ShortcutInfo.Builder تُضيف هذه الميزة طرقًا لتوفير معلومات إضافية عن استهداف المشاركة وتحسينها.

أهداف المشاركة المباشرة

يمكنك نشر اختصار ديناميكي كهدف المشاركة المباشرة. راجِع نشر أهداف المشاركة المباشرة.

ShortcutManagerCompat واجهة برمجة تطبيقات AndroidX API جديدة توفّر توافقًا مع الإصدارات القديمة مع واجهة برمجة التطبيقات DirectShare القديمة. وهذه هي الطريقة المفضّلة لنشر أهداف المشاركة.

معاينة النص

عند مشاركة محتوى نصي، يمكن للتطبيق عرض معاينة اختيارية للمحتوى في واجهة مستخدم "قائمة المشاركة".

الاطّلاع على إضافة معاينات النصوص المنسّقة

مزيد من المعلومات

لمزيد من المعلومات حول كيفية مشاركة التطبيقات للبيانات، راجِع القسم إرسال بيانات بسيطة إلى تطبيقات أخرى تلقّي بيانات بسيطة من تطبيقات أخرى

المظهر الداكن

يقدّم نظام التشغيل Android 10 "مظهرًا داكنًا" ينطبق على كلّ من واجهة مستخدم نظام Android والتطبيقات التي تعمل على الجهاز. للحصول على المعلومات الكاملة، راجِع المظهر الداكن.

أنواع الخدمات التي تعمل في المقدّمة

يقدّم Android 10 foregroundServiceType سمة بيان XML، والتي يمكنك تضمينها في تعريف عدة لغات وعلى الرغم من أنه نادرًا ما يكون ذلك مناسبًا، قد يكون من الممكن تعيين أنواع الخدمات التي تعمل في المقدّمة إلى خدمة معيّنة.

يعرض الجدول التالي أنواع الخدمات التي تعمل في المقدّمة المختلفة الخدمات حيث يكون من المناسب الإفصاح عن نوع معيّن:

نوع الخدمة التي تعمل في المقدّمة مثال لحالة استخدام لخدمة يجب أن تذكر هذا النوع
connectedDevice مراقبة جهاز متتبع اللياقة البدنية القابل للارتداء
dataSync تنزيل الملفات من الشبكة
location متابعة إجراء ينفّذه المستخدم
mediaPlayback تشغيل كتاب مسموع أو بودكاست أو موسيقى
mediaProjection تسجيل فيديو لشاشة الجهاز خلال فترة زمنية قصيرة
phoneCall التعامل مع المكالمة الهاتفية الجارية

Kotlin

يتضمّن نظام Android 10 التحديثات التالية لتطوير لغة Kotlin.

التعليقات التوضيحية للقيم الفارغة في واجهات برمجة تطبيقات libcore

يحسّن نظام Android 10 من تغطية التعليقات التوضيحية للتوافق مع القيم الفارغة في حزمة SDK لواجهات برمجة تطبيقات libcore. تتيح هذه التعليقات التوضيحية لمطوّري التطبيقات الذين يستخدمون تحليل ما إذا كان العنصر فارغًا في Kotlin أو Java في Android Studio الحصول على معلومات حول ما إذا كان العنصر فارغًا عند التفاعل مع واجهات برمجة التطبيقات هذه.

عادةً ما تؤدي انتهاكات عقود قابلية الإلغاء في Kotlin إلى التجميع الأخطاء. لضمان التوافق مع التعليمات البرمجية الحالية، يجب تضمين ملف تمت إضافة تعليقات @RecentlyNullable و@RecentlyNonNull التوضيحية. يعني ذلك أن انتهاكات إمكانية القيم الفارغة تؤدي إلى تحذيرات بدلاً من أخطاء.

بالإضافة إلى ذلك، فإن أي تعليقات توضيحية باللون @RecentlyNullable أو @RecentlyNonNull كانت التي تمت إضافتها في Android 9 سيتم تغييرها إلى @Nullable و@NonNull على التوالي. هذا يعني أنّه في نظام Android 10 والإصدارات الأحدث، تحدث انتهاكات لقابلية القيم الفارغة إلى أخطاء بدلاً من التحذيرات.

لمزيد من المعلومات عن التغييرات في التعليقات التوضيحية، يُرجى الاطّلاع على مقالة حزمة SDK لنظام التشغيل Android Pie متوافقة الآن بشكل أكبر مع لغة Kotlin في مدوّنة مطوّري تطبيقات Android.

كرونة دنماركية

يتضمّن Android 10 التغييرات التالية على NDK.

تحسين تصحيح الأخطاء لملكية واصف الملف

يضيف Android 10 الأمر fdsan الذي يساعدك في العثور على ملكية واصف الملف وإصلاحها. المشكلات بسهولة أكبر.

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

لمزيد من المعلومات عن الأعطال المرتبطة بهذه المشاكل، يُرجى الاطّلاع على خطأ رصده fdsan. لمزيد من المعلومات حول fdsan، يُرجى الاطّلاع على صفحة Googlesource حول fdsan.

معيار ELF TLS

يمكن للتطبيقات التي تم إنشاؤها باستخدام حزمة NDK التي تستهدِف المستوى 29 من واجهة برمجة التطبيقات على الأقل استخدام بروتوكول ELF TLS بدلاً من emutls. تمت إضافة دعم الروابط الديناميكية والثابتة إلى الدعم طريقة التعامل هذه مع متغيرات سلسلة التعليمات المحلية.

بالنسبة إلى التطبيقات المصمَّمة للمستوى 28 من واجهة برمجة التطبيقات والمستويات الأدنى، تم تطبيق تحسينات عليها. في "libgcc/compiler-rt" لحلّ بعض مشاكل "emutls".

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

وقت التشغيل

يتضمّن Android 10 التغيير التالي في بيئة التشغيل.

تشغيل عملية جمع البيانات غير المرغوب فيها استنادًا إلى المعلومات التجارية

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

في Android 10، يتتبّع نظام تجميع البيانات المهملة (GC) الحجم الإجمالي من الذاكرة التي خصصها النظام malloc()، مع ضمان أن تكون القيمة كبيرةmalloc() يتم تضمين المخصصات دائمًا في العمليات الحسابية التي تؤدي إلى تجميع البيانات المهملة. قد تلاحظ التطبيقات التي تُجري بين الفينة والأخرى عمليات تخصيص كبيرة لواجهة برمجة التطبيقات C++ مع تنفيذ Java زيادة في وتيرة جمع المهملات نتيجةً لذلك. وقد تشهد تطبيقات أخرى انخفاضًا طفيفًا.

الاختبار وتصحيح الأخطاء

يتضمّن نظام Android 10 التحسينات التالية للاختبار وتصحيح الأخطاء.

تحسينات لتتبُّع النظام على الجهاز

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

استخدم هذه المعلمات الإضافية لاختبار حالات استخدام مختلفة عما قد تختبره مع التتبع القياسي. على سبيل المثال، قد تكون بصدد تشخيص خطأ في الأداء لا تحدث إلا بعد تشغيل تطبيقك لفترة طويلة. في هذه الحالة، يمكنك تسجيل تتبع طويل على مدار يوم كامل، ثم تحليل جدولة وحدة المعالجة المركزية ونشاط القرص وخيوط التطبيق والبيانات الأخرى في التقريرเพื่อช่วยك في تحديد سبب الخطأ.

في الإصدار 10 من نظام التشغيل Android والإصدارات الأحدث، يتم حفظ ملفات التتبُّع بتنسيق يمكن فتحه باستخدام Perfetto، وهو مشروع مفتوح المصدر لقياس الأداء والتتبُّع. يمكنك تحويل ملفات تتبُّع Perfetto إلى Systrace .

تحسينات على أداة تصنيف النص

يوفّر Android 10 وظيفة إضافية لتصنيف النص في TextClassifier من واجهة pyplot.

اكتشاف اللغة

تشير رسالة الأشكال البيانية detectLanguage() بشكل مشابه لطرق التصنيف الموجودة سابقًا. يتلقّى الإجراء عنصرًا من نوع TextLanguage.Request ويعرض عنصرًا من نوع TextLanguage .

تتألّف كائنات TextLanguage من قائمة بالأزواج المرتبة. كل زوج من الأجهزة على لغة ودرجة ثقة مقابلة للتصنيف.

إجراءات المحادثات المقترَحة

تعمل طريقة suggestConversationActions() بالطريقة نفسها التي تعمل بها طرق التصنيف الحالية. يتلقّى العنصر ConversationActions.Request ويعرض العنصر ConversationActions .

ConversationActions الكائنات تتكون من قائمة ConversationAction الأخرى. يحتوي كل عنصر ConversationAction على احتمال الإجراء المقترح ونتيجة الثقة الخاصة به.

الردود/الإجراءات السريعة في الإشعارات

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

تُعد واجهة برمجة التطبيقات المستخدمة لإنشاء هذه الردود جزءًا من TextClassifier، وتم أيضًا عرضها مباشرةً للمطوّرين في نظام التشغيل Android 10. يُرجى قراءة القسم الذي يتناول تحسينات "أداة تصنيف النص". لمزيد من المعلومات.

إذا كان تطبيقك يقدّم اقتراحاته الخاصة، لن تنشئ المنصة أي الاقتراحات التلقائية إذا كنت لا تريد عرض إشعارات تطبيقك أي ردود أو إجراءات مقترَحة، يمكنك إيقاف الردود التي ينشئها النظام والإجراءات باستخدام setAllowGeneratedReplies() أو setAllowSystemGeneratedContextualActions()