أخبار المنتجات

الإصدار التجريبي الثاني من Android 17

يستغرق الاطّلاع على المقال 6 دقائق
عرض الملف الشخصي لـ Matthew McCullough
Matthew McCullough نائب الرئيس، إدارة المنتجات، فريق مطوّري Android

نحن بصدد طرح الإصدار التجريبي الثاني من Android 17 اليوم، وذلك في إطار جهودنا المستمرة لإنشاء نظام أساسي يمنح الأولوية للخصوصية والأمان والأداء المحسّن. يوفّر هذا التحديث مجموعة من الإمكانات الجديدة، بما في ذلك EyeDropper API وContacts Picker الذي يحافظ على الخصوصية. نضيف أيضًا ميزات مثل تحديد المدى المتقدّم وواجهات برمجة التطبيقات التي تعمل من خلال جهاز آخر وغيرها.

يواصل هذا الإصدار تغيير وتيرة الإصدارات، حيث سيتم طرح إصدار رئيسي سنوي من حزمة تطوير البرامج (SDK) في الربع الثاني من العام، يليه إصدار ثانوي من حزمة تطوير البرامج (SDK).

تجربة المستخدم وواجهة مستخدم النظام

فقاعات

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

Bubbles.gif

عليك اتّباع إرشادات دعم وضع النوافذ المتعددة لضمان عمل تطبيقاتك بشكل صحيح كفقاعات.

لم يتم تفعيل فقاعات المحادثات بالكامل بعد في الإصدار التجريبي 2. يمكنك تجربة هذه الميزات في إصدار مستقبلي من Android 17.

EyeDropper API

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

Eyedropper_Tester.webp
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
  result -> if (result.resultCode == Activity.RESULT_OK) {
    val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
    // Use the picked color in your app
  }
}

fun launchColorPicker() {
  val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
  eyeDropperLauncher.launch(intent)
}

منتقي جهات الاتصال

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

android-17-contact-picker.gif
val contactPicker = rememberLauncherForActivityResult(StartActivityForResult()) {
    if (it.resultCode == RESULT_OK) {
        val uri = it.data?.data ?: return@rememberLauncherForActivityResult
        // Handle result logic
        processContactPickerResults(uri)
    }
}

val dataFields = arrayListOf(Email.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE)
val intent = Intent(ACTION_PICK_CONTACTS).apply {
    putStringArrayListExtra(EXTRA_PICK_CONTACTS_REQUESTED_DATA_FIELDS, dataFields)
    putExtra(EXTRA_ALLOW_MULTIPLE, true)
    putExtra(EXTRA_PICK_CONTACTS_SELECTION_LIMIT, 5)
}

contactPicker.launch(intent)

توافق أسهل مع لوحات اللمس عند التقاط المؤشر

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

// To request the new default relative mode (mouse-like events)
// This is the same as requesting with View.POINTER_CAPTURE_MODE_RELATIVE
view.requestPointerCapture()

// To request the legacy absolute mode (raw touch coordinates)
view.requestPointerCapture(View.POINTER_CAPTURE_MODE_ABSOLUTE)

حدود وضع السكون في "أداة الاختيار التفاعلية"

من خلال طلب getInitialRestingBounds على ChooserSession في نظام التشغيل Android، يمكن لتطبيقك تحديد الموضع المستهدَف الذي يشغله "أداة اختيار التطبيق" بعد اكتمال الرسوم المتحركة وتحميل البيانات، ما يتيح إجراء تعديلات أفضل على واجهة المستخدم.

إمكانية الاتصال والتفاعل بين الأجهزة

تسليم التطبيق من جهاز إلى آخر

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

واجهات برمجة التطبيقات المتقدّمة لتحديد المسافة

نحن بصدد إتاحة تقنيتَين جديدتَين لتحديد المدى، وهما: 

  1. تقنية UWB DL-TDOA التي تتيح للتطبيقات استخدام UWB للتنقّل في الأماكن المغلقة تتوافق مساحة واجهة برمجة التطبيقات هذه مع مواصفات FIRA (Fine Ranging Consortium) 4.0 DL-TDOA وتتيح التنقّل في الأماكن المغلقة مع الحفاظ على الخصوصية  (تجنُّب تتبُّع الجهاز من خلال نقطة الارتكاز).
  2. ميزة "رصد الأجهزة القريبة" التي تتيح للتطبيقات استخدام مواصفات تحديد المدى الجديدة التي يعتمدها تحالف Wi-Fi (WFA). توفّر هذه التكنولوجيا موثوقية ودقة محسّنتَين مقارنةً بمواصفات تحديد المدى الحالية المستندة إلى Wifi Aware.

تحسينات على خطة البيانات

لتحسين جودة الوسائط، يمكن لتطبيقك الآن استرداد الحد الأقصى لمعدّلات نقل البيانات التي يحدّدها مشغّل شبكة الجوّال لتطبيقات البث باستخدام getStreamingAppMaxDownlinkKbps وgetStreamingAppMaxUplinkKbps.

الوظائف الأساسية والخصوصية والأداء

الوصول إلى الشبكة المحلية

يقدّم نظام التشغيل Android 17 إذن ACCESS_LOCAL_NETWORK أثناء التشغيل لحماية المستخدمين من الوصول غير المصرَّح به إلى الشبكة المحلية. بما أنّ هذا الإذن يندرج ضمن مجموعة أذونات NEARBY_DEVICES الحالية، لن يُطلب من المستخدمين الذين سبق لهم منح أذونات NEARBY_DEVICES الأخرى منح هذا الإذن مرة أخرى. من خلال الإفصاح عن هذا الإذن وطلبه، يمكن لتطبيقك رصد الأجهزة على شبكة الاتصال المحلية (LAN) والاتصال بها، مثل أجهزة المنزل الذكي أو أجهزة استقبال البث. يمنع ذلك التطبيقات الضارة من استغلال إذن الوصول غير المحدود إلى الشبكة المحلية لتتبُّع المستخدمين وتحديد بصماتهم الرقمية بشكل سرّي. ستتوفّر الآن طريقتان للتطبيقات التي تستهدف الإصدار 17 من نظام التشغيل Android أو الإصدارات الأحدث للحفاظ على التواصل مع الأجهزة على الشبكة المحلية: استخدام أدوات اختيار الأجهزة التي تتوسّط فيها الأنظمة وتحافظ على الخصوصية لتخطّي طلب الإذن، أو طلب هذا الإذن الجديد بشكل صريح في وقت التشغيل للحفاظ على التواصل مع الشبكة المحلية.

بث تغيير معادلة المنطقة الزمنية

يوفر Android الآن غرض بث موثوقًا، ACTION_TIMEZONE_OFFSET_CHANGED، يتم تشغيله عند تغيُّر إزاحة المنطقة الزمنية للنظام، مثلاً أثناء عمليات الانتقال إلى نظام التوقيت الصيفي. ويكمّل ذلك الغرضَين الحاليَين للبث ACTION_TIME_CHANGED وACTION_TIMEZONE_CHANGED، اللذين يتم تشغيلهما عند تغيُّر الطابع الزمني لنظام التشغيل Unix وعند تغيُّر معرّف المنطقة الزمنية على التوالي.

إدارة NPU وتحديد أولوياتها

يجب أن تُدرِج التطبيقات التي تستهدف الإصدار 17 من نظام التشغيل Android FEATURE_NEURAL_PROCESSING_UNIT في ملف البيان الخاص بها لتجنُّب حظر وصولها إلى وحدة المعالجة العصبية (NPU). ويشمل ذلك التطبيقات التي تستخدم LiteRT NPU delegate وحِزم تطوير البرامج الخاصة بمورّدين معيّنين، بالإضافة إلى NNAPI المتوقّفة نهائيًا.

الإصدار 78 من ICU والتوافق مع Unicode 17

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

الحماية من خلال كلمة المرور الصالحة لمرة واحدة (OTP) عبر الرسائل القصيرة

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

تأخُّر الوصول إلى رسائل SMS بتنسيق WebOTP

إذا كان التطبيق لديه الإذن بقراءة الرسائل القصيرة SMS ولكنّه ليس المستلِم المقصود لكلمة المرور لمرة واحدة (كما هو محدّد من خلال إثبات ملكية النطاق)، لن يمكن الوصول إلى رسالة SMS بتنسيق WebOTP إلا بعد مرور ثلاث ساعات. تم تصميم هذا التغيير لتحسين أمان المستخدمين من خلال التأكّد من أنّ التطبيقات المرتبطة بالنطاق المذكور في الرسالة فقط هي التي يمكنها قراءة رمز التحقّق آليًا. وينطبق هذا التغيير على جميع التطبيقات بغض النظر عن مستوى واجهة برمجة التطبيقات المستهدَف.

تأخُّر الوصول إلى الرسائل النصية القصيرة العادية التي تتضمّن كلمة مرور صالحة لمرة واحدة

بالنسبة إلى رسائل SMS التي تحتوي على كلمة مرور صالحة لمرة واحدة ولا تستخدم تنسيقات WebOTP أو SMS Retriever، لن يكون بالإمكان الوصول إلى رسالة SMS التي تحتوي على كلمة المرور الصالحة لمرة واحدة إلا بعد ثلاث ساعات لمعظم التطبيقات. لا ينطبق هذا التغيير إلا على التطبيقات التي تستهدف الإصدار 17 من نظام التشغيل Android (المستوى 37 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

يجب أن تنتقل جميع التطبيقات التي تعتمد على قراءة رسائل SMS لاستخراج كلمات المرور لمرة واحدة إلى استخدام واجهات برمجة التطبيقات SMS Retriever أو SMS User Consent لضمان استمرار الوظائف.

جدول إصدار Android 17

سننتقل سريعًا من الإصدار التجريبي إلى مرحلة ثبات المنصة المستهدَفة في آذار (مارس). في هذه المرحلة، سنوفّر واجهات برمجة التطبيقات النهائية لحزمة تطوير البرامج (SDK) وحزمة تطوير البرامج الأصلية (NDK). واعتبارًا من ذلك الوقت، يمكن لتطبيقك استهداف حزمة SDK 37 ونشرها على Google Play لمساعدتك في إكمال الاختبار وجمع ملاحظات المستخدمين خلال الأشهر العديدة التي تسبق الإتاحة العامة لنظام التشغيل Android 17.

Android Release Timeline.png

عام مليء بالإصدارات

نخطّط لمواصلة توفير تحديثات Android 17 في سلسلة من الإصدارات الفصلية. الإصدار القادم في الربع الثاني هو الإصدار الوحيد الذي سنطرح فيه تغييرات مخطَّط لها في السلوك قد تؤدي إلى إيقاف التطبيقات. نخطّط لإصدار حزمة SDK ثانوية في الربع الرابع تتضمّن واجهات برمجة تطبيقات وميزات إضافية.

Android Release Timeline_2.png

بدء استخدام Android 17

يمكنك تسجيل أي جهاز Pixel متوافق لتلقّي هذا التحديث والتحديثات المستقبلية من الإصدار التجريبي من Android عبر اتصال لاسلكي. إذا لم يكن لديك جهاز Pixel، يمكنك استخدام صور نظام 64 بت مع "محاكي Android" في "استوديو Android".

إذا كنت مشاركًا حاليًا في برنامج الإصدار التجريبي من Android، سيتم عرض تحديث عبر اتصال لاسلكي إلى الإصدار التجريبي 2.

إذا كان لديك الإصدار التجريبي من Android 26Q1 وأردت الحصول على الإصدار الثابت النهائي من 26Q1 والخروج من الإصدار التجريبي، عليك تجاهل التحديث عبر الأثير إلى الإصدار التجريبي 2 من 26Q2 وانتظار إصدار 26Q1.

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

للحصول على أفضل تجربة تطوير باستخدام Android 17، ننصحك باستخدام أحدث إصدار من استوديو Android (Panda). بعد إعداد حسابك، إليك بعض الإجراءات التي يجب اتّخاذها:

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

سنحدّث صور نظام الإصدارات التجريبية وحِزمة تطوير البرامج (SDK) بانتظام طوال دورة إصدار Android 17. بعد تثبيت إصدار تجريبي، ستتلقّى التحديثات المستقبلية تلقائيًا 

عبر البث المباشر لجميع المعاينات والإصدارات التجريبية اللاحقة.

للحصول على معلومات كاملة، يُرجى الانتقال إلى الموقع الإلكتروني لمطوّري تطبيقات Android 17.

الانضمام إلى المحادثة

مع اقترابنا من إصدار Platform Stability وإتاحة Android 17 للجميع في وقت لاحق من هذا العام، ستظل ملاحظاتك هي أهم ما نملكه. سواء كنت من أوائل المستخدمين على قناة Canary أو مطوّر تطبيقات يختبر الإصدار التجريبي 2، ننصحك بالانضمام إلى منتدياتنا وإرسال ملاحظاتك. نحن نستمع إليك.

المؤلف:
متابعة القراءة