نشرها ماثيو ماكولو، نائب الرئيس لإدارة المنتجات، مطور Android

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

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

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 يمنح وصولاً مؤقتًا للقراءة على أساس الجلسة إلى حقول البيانات المحددة التي يطلبها المستخدم فقط، مما يقلل الحاجة إلى نطاق واسع قراءة_جهات الاتصال الأذونات. كما يسمح أيضًا بالاختيار من الملفات الشخصية أو ملفات العمل الخاصة بالجهاز.

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)
حدود استراحة المختار التفاعلي
الاتصال وعبر الأجهزة
تسليم التطبيق عبر الأجهزة
جديد واجهة برمجة تطبيقات Handoff يتيح لك تحديد حالة التطبيق المراد استئنافه على جهاز آخر، مثل جهاز Android اللوحي. عند الاشتراك، يقوم النظام بمزامنة الحالة عبر CompanionDeviceManager ويعرض اقتراح التسليم في مشغل الأجهزة القريبة للمستخدم. تم تصميم هذه الميزة لتوفير استمرارية سلسة للمهام، مما يتيح للمستخدمين متابعة المكان الذي توقفوا فيه بالضبط في سير العمل عبر نظام Android البيئي الخاص بهم. والأهم من ذلك، أن Handoff يدعم كلا من التحولات الأصلية من التطبيق إلى التطبيق والرجوع من التطبيق إلى الويب، مما يوفر أقصى قدر من المرونة ويضمن تجربة كاملة حتى إذا لم يتم تثبيت التطبيق الأصلي على الجهاز المتلقي.
واجهات برمجة التطبيقات ذات النطاق المتقدم
نحن نضيف دعمًا لتقنيتين جديدتين –
-
UWB DL-TDOA والتي تمكن التطبيقات من استخدام UWB للملاحة الداخلية. سطح API هذا متوافق مع مواصفات FIRA (Fine Ranging Consortium) 4.0 DL-TDOA ويتيح الحفاظ على الخصوصية أثناء التنقل الداخلي (تجنب تتبع الجهاز بواسطة المرساة).
-
كشف القرب والتي تمكن التطبيقات من استخدام مواصفات النطاق الجديدة التي تعتمدها WFA (WiFi Alliance). توفر هذه التقنية موثوقية ودقة محسنة مقارنة بمواصفات النطاق القائمة على Wifi Aware.
تحسينات خطة البيانات
لتحسين جودة الوسائط، يمكن لتطبيقك الآن استرداد الحد الأقصى لمعدلات البيانات المخصصة للناقل لتطبيقات البث التي تستخدمها getStreamingAppMaxDownlinkKbps و
getStreamingAppMaxUplinkKbps.الوظائف الأساسية والخصوصية والأداء
الوصول إلى الشبكة المحلية
يقدم أندرويد 17 ACCESS_LOCAL_NETWORK إذن وقت التشغيل لحماية المستخدمين من الوصول غير المصرح به إلى الشبكة المحلية. لأن هذا يندرج تحت الموجود NEARBY_DEVICES مجموعة الأذونات، المستخدمين الذين منحوا الآخرين بالفعل NEARBY_DEVICES لن تتم مطالبة الأذونات مرة أخرى. من خلال الإعلان عن هذا الإذن وطلبه، يمكن لتطبيقك اكتشاف الأجهزة الموجودة على الشبكة المحلية (LAN) والاتصال بها، مثل الأجهزة المنزلية الذكية أو أجهزة استقبال الإرسال. ويمنع هذا التطبيقات الضارة من استغلال الوصول غير المقيد إلى الشبكة المحلية لتتبع المستخدم السري وأخذ بصمات الأصابع. سيكون للتطبيقات التي تستهدف Android 17 أو الإصدارات الأحدث الآن مساران للحفاظ على الاتصال بأجهزة LAN: استخدام منتقي الأجهزة الذي يحافظ على الخصوصية بوساطة النظام لتخطي مطالبة الإذن، أو طلب هذا الإذن الجديد بشكل صريح في وقت التشغيل للحفاظ على اتصال الشبكة المحلية.
المنطقة الزمنية تعويض تغيير البث
يوفر Android الآن نية بث موثوقة، ACTION_TIMEZONE_OFFSET_CHANGED، يتم تشغيله عند إزاحة المنطقة الزمنية للنظام، كما هو الحال أثناء التحولات في التوقيت الصيفي. وهذا يكمل أهداف البث الحالية ACTION_TIME_CHANGED و ACTION_TIMEZONE_CHANGED، والتي يتم تشغيلها عندما يتغير الطابع الزمني لنظام Unix وعندما يتغير معرف المنطقة الزمنية، على التوالي.
إدارة NPU وتحديد الأولويات
يجب أن تعلن التطبيقات التي تستهدف Android 17 والتي تحتاج إلى الوصول مباشرة إلى NPU FEATURE_NEURAL_PROCESSING_UNIT في بيانهم لتجنب منعهم من الوصول إلى NPU. يتضمن ذلك التطبيقات التي تستخدم مندوب LiteRT NPUوحزم SDK الخاصة بالموردين، بالإضافة إلى المهملة نابي.
دعم ICU 78 وUnicode 17
تم تحديث مكتبات التدويل الأساسية إلى العناية المركزة 78، وتوسيع الدعم للنصوص والشخصيات وكتل الرموز التعبيرية الجديدة، وتمكين التنسيق المباشر لـ وقت أشياء.
حماية الرسائل القصيرة OTP
يعمل نظام Android على توسيع حماية الرسائل النصية القصيرة لمرة واحدة (OTP) عن طريق تأخير الوصول إلى الرسائل القصيرة تلقائيًا رسائل مع OTP. في السابق، كانت الحماية تركز بشكل أساسي على تنسيق SMS Retriever حيث يتم تأخير تسليم الرسائل التي تحتوي على تجزئة مسترد الرسائل القصيرة لمعظم التطبيقات لمدة ثلاث ساعات. ومع ذلك، بالنسبة لبعض التطبيقات مثل تطبيق الرسائل القصيرة الافتراضي وما إلى ذلك، ويتم إعفاء التطبيق المتوافق مع التجزئة من هذا التأخير. يعمل هذا التحديث على توسيع الحماية لجميع رسائل SMS التي تحتوي على OTP. بالنسبة لمعظم التطبيقات، لن يمكن الوصول إلى الرسائل النصية القصيرة التي تحتوي على كلمة مرور لمرة واحدة (OTP) إلا بعد تأخير لمدة ثلاث ساعات للمساعدة في منع اختطاف كلمة مرور لمرة واحدة (OTP). ال SMS_RECEIVED_ACTION سيتم حجب البث و مزود الرسائل القصيرة سيتم تصفية استعلامات قاعدة البيانات. ستكون الرسالة النصية القصيرة متاحة لهذه التطبيقات بعد التأخير.
تأخر الوصول إلى الرسائل النصية القصيرة بتنسيق WebOTP
إذا كان التطبيق لديه إذن بقراءة الرسائل النصية القصيرة ولكنه ليس المستلم المقصود لكلمة المرور لمرة واحدة (كما هو محدد من خلال التحقق من النطاق)، فلن يكون من الممكن الوصول إلى رسالة SMS بتنسيق WebOTP إلا بعد مرور ثلاث ساعات. تم تصميم هذا التغيير لتحسين أمان المستخدم من خلال التأكد من أن التطبيقات المرتبطة بالمجال المذكور في الرسالة فقط هي التي يمكنها قراءة رمز التحقق برمجيًا. ينطبق هذا التغيير على جميع التطبيقات بغض النظر عن مستوى واجهة برمجة التطبيقات (API) المستهدف.
تأخير الوصول إلى رسائل SMS القياسية مع OTP
بالنسبة للرسائل النصية القصيرة التي تحتوي على كلمة مرور لمرة واحدة (OTP) والتي لا تستخدم تنسيقات WebOTP أو SMS Retriever، لن يمكن الوصول إلى رسالة OTP القصيرة إلا بعد ثلاث ساعات لمعظم التطبيقات. ينطبق هذا التغيير فقط على التطبيقات التي تستهدف Android 17 (مستوى واجهة برمجة التطبيقات 37) أو أعلى.
سيتم إعفاء تطبيقات معينة مثل الرسائل القصيرة الافتراضية والتطبيق المساعد بالإضافة إلى التطبيقات المصاحبة للأجهزة المتصلة وما إلى ذلك من هذا التأخير.
يجب أن تنتقل جميع التطبيقات التي تعتمد على قراءة الرسائل النصية القصيرة لاستخراج كلمة المرور لمرة واحدة (OTP) إلى الاستخدام مسترد الرسائل القصيرة أو موافقة مستخدم الرسائل القصيرة واجهات برمجة التطبيقات (APIs) لضمان استمرار الأداء الوظيفي.
جدول أندرويد 17
سننتقل سريعًا من هذا الإصدار التجريبي إلى مرحلة استقرار النظام الأساسي لدينا، والمستهدفة في شهر مارس. عند هذا الإنجاز، سنقدم واجهات برمجة تطبيقات SDK/NDK النهائية. من ذلك الوقت فصاعدًا، يمكن لتطبيقك استهداف SDK 37 ونشره على Google Play لمساعدتك في إكمال الاختبار وجمع تعليقات المستخدمين في الأشهر العديدة التي تسبق التوفر العام لنظام Android 17.

عام من الإصدارات
نخطط لأن يستمر Android 17 في الحصول على التحديثات في سلسلة من الإصدارات ربع السنوية. الإصدار القادم في الربع الثاني هو الإصدار الوحيد الذي نقدم فيه تغييرات سلوكية مخططة لكسر التطبيق. نحن نخطط لإصدار إصدار ثانوي من SDK في الربع الرابع مع واجهات برمجة التطبيقات والميزات الإضافية.
%20(1).png)
ابدأ مع Android 17
أنت تستطيع قم بتسجيل أي جهاز Pixel مدعوم للحصول على تحديثات Android Beta والمستقبلية عبر الهواء. إذا لم يكن لديك جهاز Pixel، فيمكنك ذلك استخدم صور النظام 64 بت مع محاكي Android في أندرويد ستوديو.
إذا كنت مشتركًا حاليًا في برنامج Android Beta، فسوف يُعرض عليك تحديث عبر الهواء إلى Beta 2.
إذا كان لديك Android 26Q1 Beta وترغب في الحصول على الإصدار المستقر النهائي من 26Q1 والخروج من Beta، فأنت بحاجة إلى تجاهل التحديث عبر الهواء إلى 26Q2 Beta 2 وانتظار إصدار 26Q1.
نحن نبحث عن ملاحظاتك لذا يرجى الإبلاغ عن المشكلات وإرسال طلبات الميزات على صفحة ردود الفعل. كلما حصلنا على تعليقاتك في وقت مبكر، كلما تمكنا من تضمين المزيد في عملنا على الإصدار النهائي.
للحصول على أفضل تجربة تطوير مع Android 17، نوصي باستخدام أحدث معاينة لـ أندرويد ستوديو (باندا). بمجرد الانتهاء من الإعداد، إليك بعض الأشياء التي يجب عليك فعلها:
-
قم بالتجميع مقابل SDK الجديد، واختباره في بيئات CI، والإبلاغ عن أي مشكلات في أداة التتبع الخاصة بنا على صفحة ردود الفعل.
-
اختبر تطبيقك الحالي للتأكد من توافقه، وتعرف على ما إذا كان تطبيقك يتأثر بالتغييرات في Android 17، ثم قم بتثبيت تطبيقك على جهاز أو محاكي يعمل بنظام Android 17 واختبره على نطاق واسع.
سنقوم بتحديث معاينة/صور النظام التجريبي وSDK بانتظام طوال دورة إصدار Android 17. بمجرد تثبيت الإصدار التجريبي، ستحصل تلقائيًا على التحديثات المستقبلية

