نطرح اليوم الإصدار التجريبي الثاني من Android 17، ونواصل جهودنا لإنشاء نظام أساسي يمنح الأولوية للخصوصية والأمان والأداء المحسّن. يوفّر هذا التحديث مجموعة من الإمكانات الجديدة، بما في ذلك EyeDropper API وأداة اختيار جهات الاتصال التي تحافظ على الخصوصية. نضيف أيضًا ميزات متقدّمة لتحديد النطاق، وواجهات برمجة تطبيقات لنقل البيانات بين الأجهزة، والمزيد.
يواصل هذا الإصدار التغيير في وتيرة إصداراتنا، بعد إصدار حزمة SDK الرئيسي السنوي في الربع الثاني مع تحديث بسيط لحزمة SDK.
تجربة المستخدم وواجهة مستخدم النظام
فقاعات
"الفقاعات" هي ميزة في وضع النوافذ توفّر تجربة جديدة لواجهة مستخدم عائمة منفصلة عن واجهة برمجة التطبيقات لفقاعات المراسلة. يمكن للمستخدمين إنشاء فقاعة تطبيق على هواتفهم أو أجهزتهم القابلة للطي أو أجهزتهم اللوحية من خلال الضغط مع الاستمرار على رمز التطبيق في مشغّل التطبيقات. على الشاشات الكبيرة، يتوفّر شريط فقاعات كجزء من شريط التطبيقات حيث يمكن للمستخدمين تنظيم الفقاعات والتنقّل بينها ونقلها من وإلى نقاط ثابتة على الشاشة.
يجب اتّباع إرشادات إتاحة وضع النوافذ المتعددة لضمان عمل تطبيقاتك بشكل صحيح كفقاعات.
لم يتم تفعيل ميزة "الفقاعات" بالكامل بعد في الإصدار التجريبي 2. ترقَّب توفّرها في إصدار مستقبلي من Android 17.
EyeDropper API
تتيح واجهة برمجة التطبيقات EyeDropper الجديدة على مستوى النظام لتطبيقك طلب لون من أي بكسل على الشاشة بدون الحاجة إلى أذونات حسّاسة لتسجيل الشاشة.
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 الواسع النطاق. ويسمح أيضًا بالاختيار من الملفات الشخصية أو ملفات العمل على الجهاز.
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 الجديدة تحديد حالة التطبيق التي تريد استئنافها على جهاز آخر، مثل جهاز Android لوحي. عند تفعيل هذه الميزة، يزامن النظام الحالة من خلال CompanionDeviceManager ويعرض اقتراحًا بالنقل في مشغّل التطبيقات على أجهزة المستخدم المجاورة. تم تصميم هذه الميزة لتوفير استمرارية سلسة للمهام، ما يتيح للمستخدمين مواصلة العمل من حيث توقّفوا في سير العمل على مستوى منظومة Android المتكاملة. والأهم من ذلك أنّ ميزة Handoff تتيح الانتقال من تطبيق أصلي إلى آخر، بالإضافة إلى إمكانية الرجوع إلى الويب في حال عدم توفّر التطبيق، ما يوفّر أقصى قدر من المرونة ويضمن تجربة كاملة حتى إذا لم يكن التطبيق مثبّتًا على الجهاز المستلِم.
واجهات برمجة تطبيقات متقدّمة لتحديد النطاق
نحن بصدد إضافة دعم لتقنيتَين جديدتَين لتحديد النطاق:
- UWB DL-TDOA التي تتيح للتطبيقات استخدام النطاق الفائق العرض (UWB) للتنقّل داخل المباني تتوافق واجهة برمجة التطبيقات هذه مع مواصفات FIRA (اتحاد النطاق الدقيق) 4.0 DL-TDOA وتتيح التنقّل داخل المباني مع الحفاظ على الخصوصية (تجنُّب تتبُّع الجهاز من خلال نقطة الربط).
- رصد الأجهزة القريبة: تتيح هذه الميزة للتطبيقات استخدام مواصفات تحديد النطاق الجديدة التي يعتمدها تحالف Wi-Fi (WFA). توفّر هذه التكنولوجيا موثوقية ودقة محسّنتَين مقارنةً بالمواصفات الحالية لتحديد النطاق المستندة إلى ميزة Wifi Aware.
تحسينات على خطط البيانات
لتحسين جودة الوسائط، يمكن لتطبيقك الآن استرداد الحد الأقصى لمعدلات البيانات التي يخصّصها مشغّل شبكة الجوّال لتطبيقات البث باستخدام getStreamingAppMaxDownlinkKbps وgetStreamingAppMaxUplinkKbps.
الوظائف الأساسية والخصوصية والأداء
الوصول إلى الشبكة المحلية
يقدّم الإصدار 17 من Android إذن التشغيل ACCESS_LOCAL_NETWORK لحماية المستخدمين من الوصول غير المصرّح به إلى الشبكة المحلية. بما أنّ هذا الإذن يندرج ضمن مجموعة أذونات NEARBY_DEVICES الحالية، لن يُطلب من المستخدمين الذين سبق لهم منح أذونات NEARBY_DEVICES الأخرى منح هذا الإذن مرة أخرى. من خلال الإفصاح عن هذا الإذن وطلبه، يمكن لتطبيقك اكتشاف الأجهزة المتصلة بشبكة الاتصال المحلية (LAN) والاتصال بها، مثل الأجهزة المنزلية الذكية أو أجهزة استقبال البث. يمنع ذلك التطبيقات الضارة من استغلال الوصول غير المقيّد إلى الشبكة المحلية لتتبُّع المستخدمين وبصماتهم بشكل سرّي. أمام التطبيقات التي تستهدف الإصدار 17 من Android أو الإصدارات الأحدث الآن طريقتان للحفاظ على الاتصال بأجهزة LAN: إما استخدام أدوات اختيار الأجهزة التي يتوسّطها النظام وتحافظ على الخصوصية لتخطّي طلب الإذن، أو طلب هذا الإذن الجديد صراحةً في وقت التشغيل للحفاظ على الاتصال بالشبكة المحلية.
بث تغيير معادلة المنطقة الزمنية
يوفّر Android الآن نية بث موثوقة، وهي ACTION_TIMEZONE_OFFSET_CHANGED، يتم تشغيلها عند تغيير إزاحة المنطقة الزمنية للنظام، مثلاً أثناء الانتقال إلى نظام التوقيت الصيفي. ويُعدّ ذلك مكملاً لغرضَي البث الحاليَين ACTION_TIME_CHANGED وACTION_TIMEZONE_CHANGED اللذين يتم تشغيلهما عند تغيير الطابع الزمني لنظام التشغيل Unix وعند تغيير معرّف المنطقة الزمنية على التوالي.
إدارة وحدة المعالجة العصبية (NPU) وتحديد أولوياتها
يجب أن تُدرِج التطبيقات التي تستهدف الإصدار 17 من نظام التشغيل Android وتحتاج إلى الوصول مباشرةً إلى وحدة المعالجة العصبية (NPU) FEATURE_NEURAL_PROCESSING_UNIT في ملف البيان الخاص بها لتجنُّب حظر وصولها إلى وحدة المعالجة العصبية (NPU). ويشمل ذلك التطبيقات التي تستخدم مفوَّض LiteRT NPU وحِزم تطوير البرامج (SDK) الخاصة بالمورّدين، بالإضافة إلى NNAPI المتوقفة نهائيًا.
التوافق مع ICU 78 وUnicode 17
تم تحديث مكتبات التدويل الأساسية إلى ICU 78، ما يوسّع نطاق الدعم ليشمل نصوصًا برمجية وأحرفًا ومجموعات إيموجي جديدة، ويتيح التنسيق المباشر لعناصر الوقت.
الحماية من خلال كلمة المرور الصالحة لمرة واحدة (OTP) عبر الرسائل القصيرة
يعمل Android على توسيع نطاق حماية كلمات المرور الصالحة لمرة واحدة (OTP) في الرسائل القصيرة من خلال تأخير الوصول تلقائيًا إلى الرسائل القصيرة التي تحتوي على كلمة مرور صالحة لمرة واحدة. في السابق، كانت الحماية تركّز بشكل أساسي على تنسيق SMS Retriever، حيث يتم تأخير تسليم الرسائل التي تحتوي على رمز تجزئة SMS Retriever لمعظم التطبيقات لمدة ثلاث ساعات. ومع ذلك، يتم استثناء بعض التطبيقات من هذا التأخير، مثل تطبيق SMS التلقائي وما إلى ذلك والتطبيق الذي يتوافق مع التجزئة. يوسّع هذا التحديث نطاق الحماية ليشمل جميع رسائل SMS التي تحتوي على كلمة مرور صالحة لمرة واحدة. بالنسبة إلى معظم التطبيقات، لن يكون بالإمكان الوصول إلى رسائل SMS التي تحتوي على كلمة مرور صالحة لمرة واحدة إلا بعد مرور ثلاث ساعات، وذلك للمساعدة في منع الاستيلاء على كلمات المرور الصالحة لمرة واحدة. سيتم حجب بث SMS_RECEIVED_ACTION وستتم فلترة طلبات البحث في قاعدة بيانات مقدّم خدمة الرسائل القصيرة. وستكون رسالة SMS متاحة لهذه التطبيقات بعد انتهاء فترة التأخير.
تأخير الوصول إلى رسائل SMS بتنسيق WebOTP
إذا كان التطبيق يملك إذنًا بقراءة رسائل SMS ولكنّه ليس المستلِم المقصود لرسالة OTP (كما هو محدّد من خلال عملية التحقّق من النطاق)، لن يكون بإمكانه الوصول إلى رسالة SMS بتنسيق WebOTP إلا بعد مرور ثلاث ساعات. يهدف هذا التغيير إلى تحسين أمان المستخدم من خلال ضمان أنّ التطبيقات المرتبطة بالنطاق المذكور في الرسالة فقط هي التي يمكنها قراءة رمز التحقّق آليًا. ينطبق هذا التغيير على جميع التطبيقات بغض النظر عن مستوى واجهة برمجة التطبيقات المستهدَف.
تأخير الوصول إلى رسائل SMS العادية التي تتضمّن كلمة مرور صالحة لمرة واحدة
بالنسبة إلى رسائل SMS التي تحتوي على كلمة مرور صالحة لمرة واحدة ولا تستخدم تنسيقات WebOTP أو SMS Retriever، لن تتمكّن معظم التطبيقات من الوصول إلى رسالة SMS التي تحتوي على كلمة المرور الصالحة لمرة واحدة إلا بعد ثلاث ساعات. ينطبق هذا التغيير فقط على التطبيقات التي تستهدف الإصدار 17 من نظام التشغيل Android (المستوى 37 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.
سيتم استثناء بعض التطبيقات من هذا التأخير، مثل تطبيق الرسائل القصيرة التلقائي وتطبيق المساعد والتطبيقات المصاحبة للأجهزة المتصلة وما إلى ذلك.
على جميع التطبيقات التي تعتمد على قراءة الرسائل القصيرة لاستخراج كلمات المرور الصالحة لمرة واحدة (OTP) الانتقال إلى استخدام واجهات برمجة التطبيقات SMS Retriever أو SMS User Consent لضمان استمرار عملها.
الجدول الزمني لإصدار Android 17
سننتقل بسرعة من هذا الإصدار التجريبي إلى مرحلة استقرار المنصة، والمقرر إطلاقها في شهر مارس. في هذه المرحلة، سنقدّم واجهات برمجة التطبيقات النهائية لحِزم SDK/NDK. منذ ذلك الحين، يمكن لتطبيقك استهداف الإصدار 37 من حزمة تطوير البرامج (SDK) ونشره على Google Play لمساعدتك في إكمال الاختبار وجمع ملاحظات المستخدمين في الأشهر القليلة التي تسبق إتاحة Android 17 للجمهور العام.
عام من الإصدارات
نخطّط لمواصلة توفير تحديثات Android 17 في سلسلة من الإصدارات ربع السنوية. الإصدار القادم في الربع الثاني هو الإصدار الوحيد الذي نقدّم فيه تغييرات مخطَّط لها في سلوك التطبيق. نخطّط لإصدار حزمة SDK ثانوية في الربع الرابع من العام تتضمّن واجهات برمجة تطبيقات وميزات إضافية.
بدء استخدام Android 17
يمكنك تسجيل أي جهاز Pixel متوافق للحصول على هذا التحديث وتحديثات الإصدار التجريبي من Android المستقبلية عبر شبكة غير سلكيّة. إذا لم يكن لديك جهاز Pixel، يمكنك استخدام صور نظام 64 بت مع Android Emulator في استوديو Android.
إذا كنت مشتركًا حاليًا في برنامج الإصدار التجريبي من Android، فستتلقّى تحديثًا عبر شبكة غير سلكيّة إلى الإصدار التجريبي 2.
إذا كان لديك الإصدار التجريبي 26Q1 من Android وأردت الحصول على الإصدار الثابت النهائي من 26Q1 والخروج من الإصدار التجريبي، عليك تجاهل التحديث عبر شبكة غير سلكيّة إلى الإصدار التجريبي 2 من 26Q2 وانتظار طرح الإصدار 26Q1.
نحن بانتظار ملاحظاتك، لذا يُرجى الإبلاغ عن المشاكل وإرسال طلبات الميزات في صفحة الملاحظات. كلما تلقّينا ملاحظاتك في وقت مبكر، زادت إمكانية تضمينها في عملنا على الإصدار النهائي.
للحصول على أفضل تجربة تطوير مع Android 17، ننصحك باستخدام أحدث نسخة حصرية من استوديو Android (Panda). بعد إعداد حسابك، إليك بعض الإجراءات التي يجب اتّخاذها:
- يمكنك تجميع التطبيق باستخدام حزمة تطوير البرامج (SDK) الجديدة واختباره في بيئات CI والإبلاغ عن أي مشاكل في أداة التتبُّع على صفحة الملاحظات.
- اختبِر تطبيقك الحالي للتأكّد من توافقه، ومعرفة ما إذا كان سيتأثر بالتغييرات في Android 17، وتثبيته على جهاز أو محاكي يعمل بنظام التشغيل Android 17 واختباره بشكل شامل.
سنحدّث صور النظام التجريبية/الحصرية وحزمة تطوير البرامج (SDK) بانتظام طوال دورة إصدار Android 17. بعد تثبيت إصدار تجريبي، ستتلقّى تلقائيًا التحديثات المستقبلية
عبر الهواء لجميع النُسخ الحصرية والإصدارات التجريبية اللاحقة.
للحصول على معلومات كاملة، يُرجى الانتقال إلى الموقع الإلكتروني لمطوّري تطبيقات Android 17.
الانضمام إلى المحادثة
بينما نواصل العمل على تحقيق استقرار المنصة وإتاحة Android 17 للجمهور العام في وقت لاحق من هذا العام، تظل ملاحظاتك هي أهم ما نعتمد عليه. سواء كنت من المستخدمين في مرحلة مبكرة على قناة Canary أو من مطوّري التطبيقات الذين يختبرون الإصدار التجريبي 2، ننصحك بالانضمام إلى منتدياتنا وإرسال ملاحظاتك. نحن نسمعكم.
-
أخبار المنتجاتواليوم، في مؤتمر Android Dev Summit، نعلن عن توفير العديد من الأدوات وواجهات برمجة التطبيقات المصمَّمة لإزالة العقبات اليومية ومنحك المزيد من المرونة لإنشاء تطبيقات Android رائعة.
Matthew McCullough • مدّة القراءة: 4 دقائق -
أخبار المنتجاتنطرح اليوم المجموعة الأولى من المهام الطويلة المدى (LHT)، وهي مهام معقّدة للغاية يستغرق المهندس عدة أيام أو حتى أسبوعًا لإكمالها. نقدّم أيضًا تقييمًا مستندًا إلى الوكلاء، بدءًا من الوكلاء من مقدّمي النماذج المعنيين.
Matthew McCullough • مدّة القراءة: 3 دقائق -
أخبار المنتجاتنُطلق اليوم Android 17 ونوفّره على معظم أجهزة Pixel المتوافقة. ترقَّب الأجهزة الجديدة التي تعمل بنظام التشغيل Android 17 في الأشهر المقبلة.
Matthew McCullough • مدّة القراءة: 13 دقيقة
يمكنك الحصول على آخر الإحصاءات حول تطوير تطبيقات Android في بريدك الوارد أسبوعيًا.