يقدّم نظام التشغيل Android 10 ميزات وإمكانات رائعة للمستخدمين والمطوّرين. يوضّح هذا المستند الميزات المتاحة للمطوّرين.
للتعرّف على واجهات برمجة التطبيقات، يمكنك الاطّلاع على تقرير الاختلافات في واجهات برمجة التطبيقات أو زيارة مرجع Android API والبحث عن واجهات برمجة التطبيقات التي تم "إضافتها في المستوى 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 API
بدءًا من نظام التشغيل 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 Network Request API للاتصال من جهاز إلى جهاز.
Wi-Fi network suggestion API
يوفّر نظام التشغيل Android 10 إمكانية أن يطلب تطبيقك من المستخدم الاتصال بنقطة وصول Wi-Fi. يمكنك تقديم اقتراحات بشأن الشبكة التي تريد الاتصال بها. سيختار النظام الأساسي في النهاية نقطة الوصول التي سيقبلها استنادًا إلى البيانات التي أدخلتها أنت والتطبيقات الأخرى.
لمزيد من المعلومات حول هذه الميزة، يُرجى الاطّلاع على مقالة اقتراح شبكة Wi-Fi.
تحسينات على وضعَي الأداء العالي ووقت الاستجابة المنخفض لشبكة Wi-Fi
يتيح لك نظام التشغيل Android 10 تقديم تلميح إلى المودم الأساسي لتقليل وقت الاستجابة.
يوسّع نظام التشغيل Android 10 نطاق واجهة برمجة التطبيقات الخاصة بقفل Wi-Fi لتوفير الدعم الفعّال لوضع الأداء العالي ووضع وقت الاستجابة المنخفض. يتم إيقاف ميزة توفير الطاقة في شبكة Wi-Fi في وضعَي الأداء العالي والاستجابة المنخفضة، ويمكن تفعيل المزيد من التحسينات على الاستجابة في وضع الاستجابة المنخفضة، وذلك حسب إمكانية توفيرها في المودم.
لا يتم تفعيل وضع زمن الاستجابة المنخفض إلا عندما يكون التطبيق الذي يحصل على القفل قيد التشغيل في المقدّمة والشاشة مفعَّلة. ويُعدّ وضع وقت الاستجابة المنخفض مفيدًا بشكل خاص لتطبيقات ألعاب الفيديو على الأجهزة الجوّالة في الوقت الفعلي.
عمليات البحث المتخصّصة في محلّل نظام أسماء النطاقات
يضيف نظام التشغيل Android 10 إمكانية البحث عن نظام أسماء النطاقات المتخصّص باستخدام عمليات البحث بنص عادي ووضع DNS-over-TLS. في السابق، كان محلّل نظام أسماء النطاقات (DNS) الخاص بالمنصة يتيح استخدام سجلّات A وAAAA فقط، ما يسمح بالبحث عن عناوين IP المرتبطة باسم فقط، ولكنّه لم يكن يتيح استخدام أي أنواع أخرى من السجلّات.
توفّر واجهة برمجة التطبيقات DnsResolver
عملية تحليل عامة وغير متزامنة، ما يتيح لك البحث عن SRV
وNAPTR
وأنواع سجلات أخرى. يُرجى العِلم أنّ مهمة تحليل الردّ تقع على عاتق التطبيق.
بالنسبة إلى التطبيقات المستندة إلى NDK، يُرجى الاطّلاع على
android_res_nsend
.
Wi-Fi Easy Connect
يتيح لك نظام التشغيل Android 10 استخدام ميزة "الاتصال السهل" لتوفير بيانات اعتماد شبكة Wi-Fi لجهاز آخر، وذلك كبديل عن ميزة WPS التي تم إيقافها نهائيًا.
يمكن للتطبيقات دمج ميزة "الربط السريع" في عملية الإعداد والتوفير باستخدام الغرض
ACTION_PROCESS_WIFI_EASY_CONNECT_URI
.
لمزيد من المعلومات حول هذه الميزة، يُرجى الاطّلاع على Wi-Fi Easy Connect.
Wi-Fi Direct connection API
تم تعديل فئتَي واجهة برمجة التطبيقات WifiP2pConfig
وWifiP2pManager
في نظام التشغيل Android 10
لإتاحة إمكانية إنشاء اتصال سريع بشبكة Wi-Fi Direct باستخدام
معلومات محدّدة مسبقًا. تتم مشاركة هذه المعلومات عبر قناة جانبية، مثل البلوتوث أو 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);
قنوات موجّهة للاتصال (CoC) في Bluetooth LE
يتيح نظام التشغيل Android 10 لتطبيقك استخدام اتصالات CoC عبر البلوتوث المنخفض الطاقة لنقل تدفقات بيانات أكبر بين جهازَين متوافقَين مع البلوتوث المنخفض الطاقة. تجرِّد هذه الواجهة آليات البلوتوث والاتصال لتسهيل عملية التنفيذ.
ميزات الاتصالات الهاتفية
يتضمّن نظام التشغيل Android 10 العديد من التحسينات المتعلّقة بالاتصال الهاتفي.
تحسينات على جودة المكالمة
يتيح نظام التشغيل Android 10 إمكانية جمع معلومات حول جودة مكالمات نظام IP المتعدد الوسائط (IMS) الجارية، بما في ذلك جودة المكالمات الواردة من الشبكة والصادرة إليها، وذلك على الأجهزة التي تتوافق مع هذه الميزة.
فحص المكالمات وإظهار رقم المتّصل
يوفّر نظام التشغيل Android 10 لتطبيقك وسيلة لتحديد المكالمات التي لم يتم حفظها في دفتر عناوين المستخدم على أنّها مكالمات غير مرغوب فيها محتملة، كما يوفّر وسيلة لرفض المكالمات غير المرغوب فيها تلقائيًا نيابةً عن المستخدم. يتم تسجيل معلومات حول هذه المكالمات المحظورة كمكالمات محظورة في سجلّ المكالمات لتوفير قدر أكبر من الشفافية للمستخدم عندما تفوته مكالمات. يؤدي استخدام واجهة برمجة التطبيقات هذه إلى إلغاء شرط الحصول على أذونات READ_CALL_LOG
من المستخدم لتوفير وظائف فحص المكالمات ومعرّف المتصل.
واجهة برمجة تطبيقات خدمة إعادة توجيه المكالمات
يغيّر نظام التشغيل Android 10 طريقة التعامل مع أغراض الاتصال. تم إيقاف البث NEW_OUTGOING_CALL
نهائيًا واستبداله بواجهة برمجة التطبيقات CallRedirectionService
. توفّر واجهة برمجة التطبيقات CallRedirectionService
واجهات لتعديل المكالمات الصادرة التي يجريها نظام التشغيل Android. على سبيل المثال، قد تلغي التطبيقات الخارجية المكالمات وتعيد توجيهها عبر بروتوكول نقل الصوت عبر الإنترنت (VoIP).
تحسينات في إنشاء الملفات على وحدة التخزين الخارجية
بالإضافة إلى طرح ميزة التخزين الفرعي، يضيف نظام التشغيل Android 10 الإمكانات التالية ذات الصلة بمساحة التخزين الخارجية:
- يمكنك استخدام العلامة
IS_PENDING
لمنح تطبيقك إذن الوصول الحصري إلى ملف وسائط أثناء كتابته على القرص. - إذا كنت تعرف موقعًا معيّنًا يجب تخزين الملفات فيه، يمكنك تزويد النظام بتلميح حول مكان تخزين الملفات المكتوبة حديثًا.
- يحتوي كل جهاز تخزين خارجي على اسم وحدة تخزين فريد.
الوسائط والرسومات
يقدّم نظام التشغيل Android 10 الميزات وواجهات برمجة التطبيقات الجديدة التالية للوسائط والرسومات:
مشاركة إدخال الصوت
يضيف نظام التشغيل Android 10 إمكانية مشاركة إدخال الصوت بين تطبيقَين في الوقت نفسه. للحصول على معلومات كاملة، يُرجى الاطّلاع على مشاركة إدخال الصوت.
تسجيل تشغيل الصوت
يمنح نظام التشغيل Android 10 التطبيق إمكانية تسجيل الصوت الذي يتم تشغيله من تطبيقات أخرى. للحصول على معلومات كاملة، يُرجى الاطّلاع على تسجيل التشغيل.
شريط البحث في إشعارات MediaStyle
بدءًا من نظام التشغيل Android 10، تعرض إشعارات MediaStyle
شريط تمرير. يعرض شريط التقديم/الترجيع مستوى تقدّم التشغيل من
PlaybackState.getPosition()
،
وفي بعض الحالات، يمكن استخدام شريط التقديم/الترجيع للانتقال إلى موضع معيّن في البرنامج
الذي يتم تشغيله. يتم التحكّم في مظهر شريط التقدّم وسلوكه من خلال القواعد التالية:
- يظهر شريط التقدّم إذا كان هناك
MediaSession
نشط وكانت مدته (المحدّدة بواسطةMediaMetadata.METADATA_KEY_DURATION
) أكبر من صفر. وهذا يعني أنّ شريط التقدم لا يظهر في أحداث البث المباشر وبث الراديو التي لا يمكن تحديد مدتها. - إذا كانت الجلسة تنفّذ
ACTION_SEEK_TO
، يمكن للمستخدم سحب شريط التقدّم للتحكّم في موضع التشغيل.
Native MIDI API
تتيح واجهة برمجة التطبيقات الأصلية لنظام التشغيل Android الخاصة بـ MIDI (AMidi) لمطوّري التطبيقات إمكانية إرسال بيانات MIDI وتلقّيها باستخدام رمز C/C++، ما يتيح التكامل بشكل أوثق مع منطق الصوت/التحكّم في C/C++ وتقليل الحاجة إلى JNI.
لمزيد من المعلومات، يُرجى الاطّلاع على واجهة برمجة تطبيقات MIDI الأصلية في Android.
تحسينات MediaCodecInfo
يضيف نظام التشغيل Android 10 طرقًا إلى
MediaCodecInfo
تكشف عن مزيد من
المعلومات حول برنامج ترميز.
لمزيد من المعلومات، يُرجى الاطّلاع على برامج ترميز الوسائط.
Thermal API
عندما ترتفع درجة حرارة الأجهزة بشكل كبير، قد يتم خفض سرعة وحدة المعالجة المركزية و/أو وحدة معالجة الرسومات، ما قد يؤثر في التطبيقات والألعاب بطرق غير متوقّعة. من المرجّح أن تواجه التطبيقات التي تستخدم رسومات معقّدة أو عمليات حسابية مكثّفة أو نشاطًا مستمرًا على الشبكة مشاكل، وقد تختلف هذه المشاكل بين الأجهزة استنادًا إلى مجموعة الشرائح وترددات النواة ومستويات الدمج وتغليف الجهاز وشكله.
في نظام التشغيل Android 10، يمكن للتطبيقات والألعاب استخدام واجهة برمجة تطبيقات حرارية لمراقبة التغييرات على الجهاز واتّخاذ إجراءات للحفاظ على انخفاض استهلاك الطاقة واستعادة درجة الحرارة العادية. تسجِّل التطبيقات برنامج معالجة في PowerManager، ومن خلاله يبلّغ النظام عن حالة الحرارة الحالية التي تتراوح بين خفيفة ومتوسطة إلى شديدة، وحرجة، وطارئة، وإيقاف التشغيل.
عندما يرصد الجهاز ارتفاع درجة الحرارة، يمكن أن تساعد التطبيقات والألعاب في خفض استهلاك الطاقة بطرق مختلفة من خلال تقليل الأنشطة الجارية. على سبيل المثال، يمكن لتطبيقات البث المباشر خفض الدقة أو معدل نقل البيانات أو عدد الزيارات على الشبكة، ويمكن لتطبيق الكاميرا إيقاف الفلاش أو تحسين الصور بشكل مكثف، ويمكن للعبة خفض معدل عرض اللقطات أو تقسيم المضلعات، ويمكن لتطبيق الوسائط خفض مستوى صوت مكبر الصوت، ويمكن لتطبيق الخرائط إيقاف نظام تحديد المواقع العالمي (GPS).
تتطلّب واجهة برمجة التطبيقات الحرارية طبقة جديدة من HAL للأجهزة، وهي متاحة حاليًا على أجهزة Pixel التي تعمل بالإصدار 10 من نظام التشغيل Android، ونحن نعمل مع شركائنا من مصنّعي الأجهزة لتوفير دعم واسع النطاق للمنظومة المتكاملة في أقرب وقت ممكن.
الكاميرا والصور
يقدّم نظام التشغيل 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()
. توفّر هذه الطريقة إمكانية ضبط مهلات محدّدة من قِبل المستخدم لعناصر واجهة المستخدم التفاعلية وغير التفاعلية. وتتأثر القيمة المعروضة بكل من إعدادات المستخدمين المفضّلة وواجهات برمجة التطبيقات الخاصة بخدمات تسهيل الاستخدام.
تحسينات على ميزة "الملء التلقائي"
يتضمّن نظام التشغيل Android 10 التحسينات التالية على خدمة الملء التلقائي.
طلبات الملء التلقائي المرتبطة بالتوافق
يمكنك استخدام العلامة
FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST
لتحديد ما إذا تم إنشاء طلب الملء التلقائي من خلال وضع التوافق.
حفظ اسم المستخدم وكلمة المرور في الوقت نفسه
يمكنك توفير الدعم للحالات التي يستخدم فيها التطبيق أنشطة متعددة لعرض اسم المستخدم وكلمة المرور والحقول الأخرى باستخدام العلامة SaveInfo.FLAG_DELAY_SAVE
.
تفاعل المستخدم مع واجهة مستخدم الحفظ
يمكنك إظهار حقل كلمة المرور وإخفاؤه في مربّع حوار الحفظ من خلال ضبط أداة معالجة الأحداث على مربّع الحوار وتغيير مستوى رؤية العرض البعيد الخاص بكلمة المرور.
إتاحة تعديل مجموعات البيانات
يمكن أن تعدّل ميزة "الملء التلقائي" كلمات المرور الحالية. على سبيل المثال، إذا كان المستخدم قد خزّن كلمة مرور من قبل، وحفظ كلمة مرور جديدة، ستطلب ميزة "الملء التلقائي" من المستخدم تعديل كلمة المرور الحالية بدلاً من حفظ كلمة مرور جديدة.
تحسينات على تصنيف الحقول
يتضمّن نظام التشغيل Android 10 التحسينات التالية على Field Classification API.
دالة إنشاء UserData.Builder
تم تغيير الدالة الإنشائية
UserData.Builder
لتتوافق بشكل أفضل مع نمط Builder
.
السماح بربط قيمة بأنواع متعدّدة من أرقام تعريف الفئات
عند استخدام
UserData.Builder
في
Android 10، يمكنك الآن ربط قيمة بأنواع متعدّدة من أرقام تعريف الفئات. في الإصدارات السابقة، كان يتم عرض استثناء إذا تمت إضافة قيمة أكثر من مرة.
تحسين التوافق مع أرقام بطاقات الائتمان
يمكن الآن لتصنيف الحقول رصد الأرقام المكوّنة من أربعة أرقام باعتبارها آخر أربعة أرقام من رقم بطاقة الائتمان.
إتاحة تصنيف الحقول الخاصة بالتطبيق
يضيف نظام التشغيل Android 10
FillResponse.setUserData()
،
الذي يتيح لك ضبط بيانات المستخدم الخاصة بالتطبيق لمدة الجلسة.
يساعد ذلك خدمة الملء التلقائي في رصد أنواع الحقول التي تتضمّن محتوًى خاصًا بالتطبيق.
عناصر التحكّم في واجهة المستخدم والنظام
يوفّر نظام التشغيل Android 10 التحسينات التالية على واجهة المستخدم:
إتاحة حدود PopFrame في JVMTI
يضيف نظام التشغيل Android 10 إمكانية استخدام
can_pop_frames
في تنفيذ Android JVMTI. عند تصحيح الأخطاء، تتيح لك هذه الميزة إعادة تشغيل الدوال بعد التوقف عند نقطة توقّف وتعديل المتغيرات المحلية أو العامة أو تنفيذ دالة. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة مرجع Pop Frame من Oracle.
Surface control API
يتيح الإصدار 10 من نظام التشغيل Android استخدام واجهة برمجة التطبيقات
SurfaceControl
للوصول إلى أداة إنشاء الصور في النظام
(SurfaceFlinger
) على مستوى منخفض. بالنسبة إلى معظم المستخدمين، فإنّ SurfaceView هي الطريقة الصحيحة للاستفادة من أداة إنشاء الصور. يمكن أن تكون واجهة برمجة التطبيقات
SurfaceControl
مفيدة في حالات معيّنة، مثل:
- مزامنة مساحات عرض متعددة
- تضمين مساحة عرض الإعلان الترويجي على مستوى عمليات متعددة
- إدارة مراحل النشاط على مستوى أدنى
تتوفّر واجهة برمجة التطبيقات SurfaceControl
في كل من
حزمة SDK وربط NDK.
يتضمّن تنفيذ NDK واجهة برمجة تطبيقات لتبادل المخازن المؤقتة يدويًا مع برنامج التجميع. ويوفّر هذا بديلاً للمستخدمين الذين واجهوا قيودًا في BufferQueue
.
رصد تعليق أداة العرض في WebView
يقدّم نظام التشغيل Android 10 فئة
WebViewRenderProcessClient
مجردة يمكن للتطبيقات استخدامها لرصد ما إذا كان WebView
قد أصبح غير مستجيب. لاستخدام هذه الفئة، اتّبِع الخطوات التالية:
- حدِّد فئة فرعية خاصة بك ونفِّذ الطريقتَين
onRenderProcessResponsive()
وonRenderProcessUnresponsive()
. - أرفِق مثيلاً من
WebViewRenderProcessClient
بكائن واحد أو أكثر من كائناتWebView
. - إذا لم يستجب
WebView
، سيستدعي النظام طريقةonRenderProcessUnresponsive()
الخاصة بالعميل، مع تمريرWebView
وWebViewRenderProcess
. (إذا كانWebView
عملية واحدة، تكون المعلمةWebViewRenderProcess
فارغة). يمكن لتطبيقك اتّخاذ الإجراء المناسب، مثل عرض مربّع حوار للمستخدم يسأله عمّا إذا كان يريد إيقاف عملية العرض.
إذا ظلّ WebView
غير مستجيب، سيطلب النظام onRenderProcessUnresponsive()
بشكل دوري (بمعدّل مرة واحدة كل خمس ثوانٍ كحد أقصى)، ولكن لن يتّخذ أي إجراء آخر.
إذا استجاب WebView
مرة أخرى، سيتصل النظام بـ onRenderProcessResponsive()
مرة واحدة فقط.
لوحات الإعدادات
يقدّم نظام التشغيل Android 10 لوحات الإعدادات، وهي واجهة برمجة تطبيقات تتيح للتطبيقات عرض الإعدادات للمستخدمين في سياق التطبيق، ما يمنع المستخدمين من الحاجة إلى الانتقال إلى الإعدادات لتغيير إعدادات مثل الاتصال عبر المجال القريب (NFC) أو بيانات الجوّال من أجل استخدام التطبيق.


على سبيل المثال، لنفترض أنّ أحد المستخدمين فتح متصفّح ويب بينما كان جهازه في وضع الطيران. قبل الإصدار 10 من نظام التشغيل Android، كان بإمكان التطبيق عرض رسالة عامة فقط تطلب من المستخدم فتح الإعدادات لاستعادة الاتصال. في نظام التشغيل 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 عددًا من التحسينات على المشاركة:
Sharing Shortcuts API
تحلّ واجهة برمجة التطبيقات Sharing Shortcuts API محل واجهات برمجة التطبيقات Direct Share.
بدلاً من استرداد النتائج بشكل تفاعلي عند الطلب، تتيح واجهة برمجة التطبيقات "اختصارات المشاركة" للتطبيقات نشر أهداف المشاركة المباشرة مسبقًا. إليك طريقة عمل ShortcutManager
.
بما أنّ واجهتَي برمجة التطبيقات متشابهتان، وسّعنا نطاق ShortcutInfo
API لتسهيل استخدام الميزتَين. باستخدام واجهة برمجة التطبيقات "اختصارات المشاركة"، يمكنك تعيين فئات أو أشخاص مباشرةً إلى هدف المشاركة. تظل أهداف المشاركة محفوظة في النظام إلى أن يحدّثها التطبيق نفسه أو يتم إلغاء تثبيت التطبيق.
لا تزال آلية "المشاركة المباشرة" القديمة تعمل، ولكن تكون أولوية التطبيقات التي تستخدمها أقل من أولوية التطبيقات التي تستخدم واجهة برمجة التطبيقات "اختصارات المشاركة".
تضيف السمة ShortcutInfo.Builder
وتحسّن الطرق لتوفير معلومات إضافية حول هدف المشاركة.
أهداف المشاركة المباشرة
يمكنك نشر اختصار ديناميكي كهدف "المشاركة المباشرة". راجِع نشر أهداف المشاركة المباشرة.
ShortcutManagerCompat
هي واجهة برمجة تطبيقات جديدة من AndroidX توفّر توافقًا مع الإصدارات القديمة من DirectShare API. وهذه هي الطريقة المفضّلة لنشر أهداف المشاركة.
معاينة النص
عندما يشارك تطبيق محتوًى نصيًا، يمكنه عرض معاينة اختيارية للمحتوى في واجهة مستخدم "قائمة مشاركة البيانات".
الاطّلاع على إضافة معاينات الروابط التفاعلية
مزيد من المعلومات
لمزيد من المعلومات حول كيفية مشاركة التطبيقات للبيانات، يُرجى الاطّلاع على إرسال بيانات بسيطة إلى تطبيقات أخرى وتلقّي بيانات بسيطة من تطبيقات أخرى.
المظهر الداكن
يتيح نظام التشغيل Android 10 استخدام "المظهر الداكن" الذي ينطبق على واجهة مستخدم نظام Android والتطبيقات التي تعمل على الجهاز. للحصول على معلومات كاملة، راجِع المظهر الداكن.
أنواع الخدمات التي تعمل في المقدّمة
يقدّم نظام التشغيل Android 10 سمة بيان XML
foregroundServiceType
التي يمكنك تضمينها في تعريف العديد من الخدمات
المحدّدة. من الممكن، على الرغم من أنّه نادرًا ما يكون مناسبًا، تعيين أنواع متعدّدة من الخدمات التي تعمل في المقدّمة لخدمة معيّنة.
يعرض الجدول التالي الأنواع المختلفة من الخدمات التي تعمل في المقدّمة والخدمات التي يكون من المناسب فيها تقديم بيان عن نوع معيّن:
نوع الخدمة التي تعمل في المقدّمة | مثال على حالة استخدام لخدمة يجب أن تقدّم بيانًا بهذا النوع |
---|---|
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 والإصدارات الأحدث، تؤدي مخالفات إمكانية القيم الفارغة إلى حدوث أخطاء بدلاً من التحذيرات.
لمزيد من المعلومات حول تغييرات التعليقات التوضيحية، يُرجى الاطّلاع على حزمة تطوير البرامج لنظام التشغيل Android Pie أصبحت الآن أكثر توافقًا مع لغة Kotlin على "مدوّنة مطوّري تطبيقات Android".
NDK
يتضمّن نظام التشغيل 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 تغيير وقت التشغيل التالي.
تشغيل عملية جمع البيانات المهملة استنادًا إلى Mallinfo
عندما تشير كائنات Java الصغيرة في النظام الأساسي إلى كائنات ضخمة في مساحة التخزين المؤقت C++، لا يمكن غالبًا استرداد كائنات C++ إلا عند جمع كائن Java وإنهائه مثلاً. في الإصدارات السابقة، كانت المنصة تقدّر أحجام العديد من عناصر C++ المرتبطة بعناصر Java. لم يكن هذا التقدير دقيقًا دائمًا، وأدّى أحيانًا إلى زيادة كبيرة في استخدام الذاكرة، لأنّ النظام الأساسي لم يتمكّن من جمع البيانات غير الضرورية عندما كان من المفترض أن يفعل ذلك.
في نظام التشغيل Android 10، يتتبّع جامع البيانات المهملة (GC) الحجم الإجمالي للذاكرة المؤقتة التي خصّصها النظام malloc()
، ما يضمن تضمين عمليات التخصيص الكبيرة malloc()
دائمًا في العمليات الحسابية التي تؤدي إلى تشغيل جامع البيانات المهملة. قد تلاحظ التطبيقات التي تتضمّن عددًا كبيرًا من عمليات تخصيص C++ بالتناوب مع تنفيذ Java زيادة في عدد مرات جمع البيانات غير الضرورية نتيجة لذلك. وقد تشهد التطبيقات الأخرى انخفاضًا طفيفًا.
الاختبار وتصحيح الأخطاء
يتضمّن نظام التشغيل Android 10 التحسينات التالية للاختبار وتصحيح الأخطاء.
تحسينات على تتبُّع نشاط النظام على الجهاز
بدءًا من نظام التشغيل Android 10، يمكنك تحديد حدود لحجم مدة عملية التتبُّع عند إجراء تتبُّع لنظام على الجهاز. عند تحديد أي من القيمتين، ينفّذ النظام عملية تتبُّع طويلة، ويتم نسخ مخزن مؤقت للتتبُّع بشكل دوري إلى ملف الوجهة أثناء تسجيل عملية التتبُّع. يكتمل التتبُّع عند بلوغ الحدّ الأقصى للحجم أو المدة اللذين حدّدتهما.
استخدِم هذه المَعلمات الإضافية لاختبار حالات استخدام مختلفة عن تلك التي تختبرها باستخدام عملية تتبُّع عادية. على سبيل المثال، قد تحاول تشخيص خطأ في الأداء لا يحدث إلا بعد تشغيل تطبيقك لفترة طويلة من الوقت. في هذه الحالة، يمكنك تسجيل تتبُّع طويل على مدار يوم كامل، ثم تحليل أداة جدولة وحدة المعالجة المركزية ونشاط القرص وسلاسل التطبيقات وغيرها من البيانات الواردة في التقرير لمساعدتك في تحديد سبب الخطأ.
في نظام التشغيل Android 10 والإصدارات الأحدث، يتم حفظ ملفات التتبُّع بتنسيق يمكن فتحه باستخدام Perfetto، وهو مشروع مفتوح المصدر لتتبُّع الأداء وقياسه. يمكنك تحويل ملفات تتبُّع Perfetto إلى تنسيق Systrace.
تحسينات على TextClassifier
يوفّر نظام التشغيل Android 10 وظائف إضافية لتصنيف النصوص في واجهة
TextClassifier
.
اكتشاف اللغة
تعمل طريقة
detectLanguage()
بشكل مشابه لطرق التصنيف المتوفّرة سابقًا. يتلقّى هذا الإجراء كائن TextLanguage.Request
ويعرض كائن TextLanguage
.
تتكوّن عناصر TextLanguage
من قائمة بأزواج مرتبة. يحتوي كل زوج على لغة ونتيجة ثقة مقابلة للتصنيف.
إجراءات المحادثة المقترَحة
تعمل طريقة
suggestConversationActions()
بشكل مشابه لطرق التصنيف الحالية. يتلقّى هذا الإجراء كائن
ConversationActions.Request
ويعرض كائن
ConversationActions
.
تتألف عناصر ConversationActions
من قائمة بعناصر ConversationAction
. يتضمّن كل عنصر ConversationAction
إجراءً مقترحًا محتملاً ودرجة الثقة الخاصة به.
الردود/الإجراءات الذكية في الإشعارات
أتاح الإصدار 9 من نظام التشغيل Android إمكانية عرض الردود المقترَحة ضمن الإشعارات. يوسّع نظام التشغيل Android 10 نطاق هذه الميزة من خلال إتاحة تضمين إجراءات مقترَحة مستندة إلى النية. علاوةً على ذلك، يمكن للمنصة إنشاء هذه الاقتراحات تلقائيًا. سيظل بإمكان التطبيقات تقديم اقتراحاتها الخاصة أو إيقاف الاقتراحات التي ينشئها النظام.إنّ واجهة برمجة التطبيقات المستخدَمة لإنشاء هذه الردود هي جزء من
TextClassifier
،
وقد تم أيضًا إتاحتها مباشرةً للمطوّرين في نظام التشغيل Android 10.
يُرجى قراءة القسم المتعلّق بتحسينات TextClassifier
للحصول على مزيد من المعلومات.
إذا كان تطبيقك يقدّم اقتراحاته الخاصة، لن تنشئ المنصة أي اقتراحات تلقائية. إذا كنت لا تريد أن تعرض إشعارات تطبيقك أي ردود أو إجراءات مقترَحة، يمكنك إيقاف الردود والإجراءات التي ينشئها النظام باستخدام setAllowGeneratedReplies()
وsetAllowSystemGeneratedContextualActions()
.