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

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

قراءة لمدة 6 دقائق
Matthew McCullough
نائب الرئيس لإدارة المنتجات في "فريق مطوّري Android"

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

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

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

فقاعات

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

Bubbles.gif

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

لم يتم تفعيل فقاعات المحادثات بالكامل بعد في الإصدار التجريبي الثاني. يمكنك تجربة هذه الميزات في إصدار مستقبلي من 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)

Interactive Chooser resting bounds

من خلال طلب 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 في ملف البيان لتجنُّب حظر وصولها إلى وحدة المعالجة العصبية. ويشمل ذلك التطبيقات التي تستخدم LiteRT NPU delegate وحِزم تطوير البرامج الخاصة بمورّدين معيّنين، بالإضافة إلى NNAPI المتوقّفة نهائيًا.

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

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

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

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

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

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

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

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

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

يجب أن تنتقل جميع التطبيقات التي تعتمد على قراءة الرسائل القصيرة لاستخراج كلمات المرور لمرة واحدة إلى استخدام واجهات برمجة التطبيقات 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 واختبِره بشكلٍ شامل.

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

عبر شبكة غير سلكيّة لجميع النسخ الحصرية والإصدارات التجريبية اللاحقة.

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

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

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

تأليف:

متابعة القراءة