كما هو الحال في الإصدارات السابقة، يتضمّن Android 17 تغييرات في السلوك قد تؤثر في تطبيقك. تنطبق تغييرات السلوك التالية حصريًا على التطبيقات التي تستهدف Android 17 أو الإصدارات الأحدث. إذا كان تطبيقك يستهدف الإصدار 17 من نظام التشغيل Android أو الإصدارات الأحدث، عليك تعديل تطبيقك ليتوافق مع هذه السلوكيات، حيثما ينطبق ذلك.
احرص أيضًا على مراجعة قائمة التغييرات في السلوك التي تؤثر في جميع التطبيقات
التي تعمل على Android 17 بغض النظر عن targetSdkVersion لتطبيقك.
الوظيفة الأساسية
يتضمّن نظام التشغيل Android 17 التغييرات التالية التي تعدّل أو توسّع العديد من الإمكانات الأساسية لنظام التشغيل Android.
تنفيذ جديد لـ MessageQueue بدون قفل
بدءًا من الإصدار 17 من نظام التشغيل Android، تتلقّى التطبيقات التي تستهدف الإصدار 17 من نظام التشغيل Android أو إصدارًا أحدث تنفيذًا جديدًا غير متزامن للدالة android.os.MessageQueue. يحسّن التنفيذ الجديد الأداء ويقلّل من عدد اللقطات التي لم يتم عرضها، ولكن قد يؤدي إلى تعطّل التطبيقات التي تستخدم الحقول والأساليب الخاصة MessageQueue.
لمزيد من المعلومات، بما في ذلك استراتيجيات التخفيف من الآثار، يُرجى الاطّلاع على إرشادات تغيير سلوك MessageQueue.
أصبحت الحقول النهائية الثابتة غير قابلة للتعديل
لا يمكن للتطبيقات التي تعمل على الإصدار 17 من نظام التشغيل Android أو الإصدارات الأحدث وتستهدف الإصدار 17 من نظام التشغيل Android أو الإصدارات الأحدث تغيير حقول static final. إذا حاول تطبيق تغيير حقل static final باستخدام الانعكاس، سيؤدي ذلك إلى حدوث IllegalAccessException. سيؤدي محاولة تعديل أحد هذه الحقول من خلال واجهات برمجة تطبيقات JNI (مثل SetStaticLongField()) إلى تعطُّل التطبيق.
تسهيل الاستخدام
يُجري نظام التشغيل Android 17 التغييرات التالية لتحسين ميزات تسهيل الاستخدام.
دعم أدوات تسهيل الاستخدام لكتابة لوحة المفاتيح الفعلية المعقدة الخاصة بأداة IME
此功能引入了新的 AccessibilityEvent 和 TextAttribute API,以增强屏幕阅读器针对 CJKV 语言输入的语音反馈。CJKV IME 应用现在可以指示在文本撰写期间是否已选择文本转换候选对象。具有编辑字段的应用可以在发送文本更改无障碍事件时指定文本更改类型。例如,应用可以指定在文本撰写期间发生了文本更改,或者文本更改是由提交导致的。这样做可让屏幕阅读器等无障碍服务根据文本修改的性质提供更精确的反馈。
应用采用量
IME 应用:在编辑字段中设置正在撰写的文本时,IME 可以使用
TextAttribute.Builder.setTextSuggestionSelected()来指明是否选择了特定的转换候选字词。具有“编辑字段”权限的应用:维护自定义
InputConnection的应用可以通过调用TextAttribute.isTextSuggestionSelected()来检索候选选择数据。然后,这些应用在调度TYPE_VIEW_TEXT_CHANGED事件时应调用AccessibilityEvent.setTextChangeTypes()。以 Android 17 为目标平台且使用标准TextView的应用默认会启用此功能。(也就是说,TextView将负责从 IME 检索数据,并在向无障碍服务发送事件时设置文本更改类型)。无障碍服务:处理
TYPE_VIEW_TEXT_CHANGED事件的无障碍服务可以调用AccessibilityEvent.getTextChangeTypes()来识别修改的性质,并相应地调整其反馈策略。
الأمان
يُجري نظام التشغيل Android 17 التحسينات التالية على أمان الأجهزة والتطبيقات.
أمان النشاط
في نظام التشغيل Android 17، تواصل المنصة انتقالها إلى بنية "آمنة تلقائيًا"، حيث تقدّم مجموعة من التحسينات المصمَّمة للحدّ من الثغرات الأمنية الخطيرة، مثل التصيّد الاحتيالي واختطاف التفاعلات وهجمات "الوكيل المرتبك". يتطلّب هذا التعديل أن يوافق المطوّرون صراحةً على معايير الأمان الجديدة للحفاظ على توافق التطبيق وحماية المستخدمين.
تشمل التأثيرات الرئيسية على المطوّرين ما يلي:
- تحسين قيود BAL وتحسين خيار الموافقة: نعمل على تحسين قيود تشغيل النشاط في الخلفية (BAL) من خلال توسيع نطاق الحماية ليشمل
IntentSender. على المطوّرين التوقّف عن استخدام الثابت القديمMODE_BACKGROUND_ACTIVITY_START_ALLOWED. بدلاً من ذلك، يجب استخدام عناصر تحكّم دقيقة، مثلMODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE، التي تقصر عمليات بدء الأنشطة على السيناريوهات التي يكون فيها تطبيق الاتصال مرئيًا، ما يقلّل بشكل كبير من مساحة الهجوم. - أدوات التوافق: على المطوّرين استخدام الوضع الصارم وعمليات التحقّق المعدَّلة من أداة lint لتحديد الأنماط القديمة وضمان الاستعداد لمتطلبات حزمة تطوير البرامج (SDK) المستقبلية.
تفعيل ميزة "المحادثة الذكية" تلقائيًا
如果应用以 Android 17 或更高版本为目标平台,则默认启用证书透明度 (CT)。(在 Android 16 上,CT 可用,但应用必须选择启用。)
Safer Native DCL—C
إذا كان تطبيقك يستهدف الإصدار 17 من نظام التشغيل Android أو إصدارًا أحدث، ستشمل الحماية الأحدث لتحميل الرموز البرمجية الديناميكية (DCL) التي تم طرحها في الإصدار 14 من نظام التشغيل Android لملفات DEX وJAR المكتبات الأصلية.
يجب وضع علامة "للقراءة فقط" على جميع الملفات الأصلية التي يتم تحميلها باستخدام System.load().
بخلاف ذلك، يعرض النظام الخطأ UnsatisfiedLinkError.
ننصح التطبيقات بتجنُّب تحميل الرموز البرمجية بشكل ديناميكي كلما أمكن ذلك، لأنّ هذا الإجراء يزيد بشكل كبير من خطر تعرُّض التطبيق للاختراق من خلال إدخال رموز برمجية أو التلاعب بها.
أشكال الأجهزة
يتضمّن نظام التشغيل Android 17 التغييرات التالية لتحسين تجربة المستخدم على مجموعة من أحجام الأجهزة وعوامل الشكل.
تغييرات في واجهة برمجة التطبيقات الخاصة بالمنصة لتجاهل قيود الاتجاه وتغيير الحجم ونسبة العرض إلى الارتفاع على الشاشات الكبيرة (sw>=600dp)
أجرينا تغييرات على Platform API في Android 16 لتجاهل قيود الاتجاه ونسبة العرض إلى الارتفاع وإمكانية تغيير الحجم على الشاشات الكبيرة (sw >= 600dp) للتطبيقات التي تستهدف المستوى 36 من واجهة برمجة التطبيقات أو الإصدارات الأحدث. يمكن للمطوّرين إيقاف هذه التغييرات باستخدام الإصدار 36 من حزمة SDK، ولكن لن يكون هذا الخيار متاحًا للتطبيقات التي تستهدف الإصدار 17 من نظام التشغيل Android أو الإصدارات الأحدث.
لمزيد من المعلومات، يُرجى الاطّلاع على يتم تجاهل القيود المفروضة على الاتجاه وإمكانية تغيير الحجم.