جولة للتعرّف على Android 17
قراءة لمدة 13 دقيقة
نطرح اليوم الإصدار Android 17 وسنوفّره على معظم أجهزة Pixel المتوافقة. ترقَّب طرح أجهزة جديدة تعمل بالإصدار 17 من نظام التشغيل Android خلال الأشهر المقبلة.
يمثّل الإصدار Android 17 بداية انتقالنا إلى نظام ذكي يضع تطبيقاتك في الصدارة. ينتقل نظام التشغيل Android إلى معايير التطوير المتوافقة مع الأجهزة المختلفة من خلال فرض إمكانية تغيير حجم الشاشة الكبيرة، مع توفير الجيل التالي من ميزات الخصوصية والأمان والوسائط والكاميرا والأداء في الوقت نفسه. سنتناول كل ذلك في هذه المشاركة، بالإضافة إلى كيفية الجمع بين الأدوات والمكتبات ومهارات الوكيل من الجيل التالي لمساعدة تطبيقاتك في الاستفادة من هذه الفرصة.
على مدار العام الماضي، تعاونّا مع العديد من أفراد منتدى المطوّرين، بدءًا من قناة Canary وصولاً إلى إصدارات Beta، وذلك لإنشاء منصة يمكنكم أنت والمستخدمون الوثوق بها. لهذا السبب، يمثّل هذا التاريخ موعد إتاحة الرمز المصدري في مشروع Android المفتوح المصدر (AOSP). يتيح لك ذلك فحص رمز المصدر لفهم طريقة عمل نظام التشغيل Android بشكل أعمق.
لنتعرّف أكثر على Android 17.
نظام ذكاء
من خلال التكامل العميق بين الأجهزة والبرامج والذكاء الاصطناعي، نحن بصدد تحويل Android من نظام تشغيل إلى نظام ذكي. ويتمحور هذا التحديث حول تقديم تجارب جديدة مفيدة تتوقّع احتياجات المستخدمين، كما يوفّر المزيد من الفرص للتفاعل مع تطبيقاتك. لتحقيق ذلك، يوسّع الإصدار 17 من نظام التشغيل Android إمكانات AppFunctions، وهي واجهة برمجة تطبيقات للمنصة تتضمّن مكتبة Jetpack مقابلة. يتيح لك هذا البروتوكول تقديم إمكانات تطبيقك الفريدة كـ "أدوات" قابلة للتنسيق في بروتوكول Model Context Protocol على أجهزة Android، وهو ما يعادل بروتوكول Model Context Protocol على الأجهزة. يمكن لوكلاء ومساعدي الذكاء الاصطناعي (مثل Google Gemini) اكتشاف AppFunctions وتنفيذها لتنفيذ مهام سير العمل نيابةً عن المستخدم مع إمكانية الوصول المباشر إلى الحالة المحلية للتطبيق.
تسهّل مكتبة Jetpack، المتوفّرة حاليًا في مرحلة الإصدار الأوّلي، إضافة AppFunctions من خلال إضافة تعليقات KDoc إلى فئة.
/** * A note app's [AppFunction]s. */ class NoteFunctions( private val noteRepository: NoteRepository ) { /** * Adds a new note to the app. * * @param appFunctionContext The execution context. * @param title The title of the note. * @param content The note's content. */ @AppFunction(isDescribedByKDoc = true) suspend fun createNote( appFunctionContext: AppFunctionContext, title: String, content: String ): Note { return noteRepository.createNote(title, content) } }
أطلقنا أيضًا مهارة وكيل AppFunctions التي تحلّل سير العمل الرئيسي في تطبيقك، وتنشئ تلقائيًا رمز Kotlin المطلوب، وتحسّن مستندات KDoc لتفعيل ميزة "استدعاء الأدوات" في النماذج اللغوية الكبيرة، وتوفّر أوامر ADB للاختبار وتحديد المشاكل وحلّها.
تتوفّر ميزة التكامل مع Gemini حاليًا في إصدار معاينة خاص للمختبِرين الموثوق بهم، ولكن يمكنك البدء في إعداد تطبيقاتك الآن. بالإضافة إلى أوامر ADB لتنفيذ AppFunctions، وفّرنا تطبيق وكيل اختبار يتضمّن واجهة لاكتشاف AppFunctions وتنفيذها ومحاكاة عملية دمج وكيل مستند إلى الذكاء الاصطناعي. يمكنك الانضمام إلى برنامج استخدام ميزة التكامل قبل إطلاقها على goo.gle/eap-af للحصول على فرصة أن تكون من بين أوّل التطبيقات التي تطرح AppFunctions في مرحلة الإنتاج.
التكيّف أولاً
لم يعُد المستخدمون يعتمدون على شكل جهاز واحد، بل ينتقلون بين الهواتف والهواتف القابلة للطي والأجهزة اللوحية وأجهزة الكمبيوتر المحمول وشاشات السيارات وبيئات الواقع الممتد الغامرة. الآن، بعد أن أصبح لدى المستخدمين أكثر من 580 مليون جهاز بشاشة كبيرة ومع إطلاق Googlebooks قريبًا، لم يعُد التكيّف هدفًا فنيًا فقط في الجيل التالي من ChromeOS المستند إلى حزمة Android. إنّها فرصة هائلة للوصول إلى المستخدمين المتفاعلين بشكل كبير، وهذا أحد الأسباب التي دفعتنا إلى الانتقال إلى معيار تطوير متوافق مع مختلف الأجهزة.
عدم فرض قيود على تغيير الحجم أو الاتجاه على الشاشات الكبيرة
لضمان تقديم التطبيقات تجربة ممتازة على جميع أشكال الأجهزة، بما في ذلك الأجهزة الجوّالة التي تعمل في وضع سطح المكتب على شاشات متصلة، يزيل نظام التشغيل Android 17 (المستوى 37 من واجهة برمجة التطبيقات) خيار إيقاف القيود المفروضة على تغيير الحجم والاتجاه الذي يوفّره المطوّر على الأجهزة ذات الشاشات الكبيرة (sw > 600 dp) للتطبيقات التي تستهدف المستوى 37 من واجهة برمجة التطبيقات. سيتجاهل النظام سمات ملف البيان القديمة وواجهات برمجة التطبيقات في وقت التشغيل، بما في ذلك screenOrientation وsetRequestedOrientation() وresizeableActivity=false وقيود نسبة العرض إلى الارتفاع (minAspectRatio/maxAspectRatio). ستظل الألعاب (استنادًا إلى فئة التطبيق في Google Play) معفاة من هذه السياسة. يجب أن يكون تطبيقك جاهزًا للتكيّف مع أي حجم نافذة، وأن يراعي وضع الجهاز المفضّل لدى المستخدم، وأن يتيح عرض النوافذ الحرة بشكلٍ مدمج.
تعدُّد المهام من الجيل التالي: "فقاعات التطبيقات" و"شريط الفقاعات" ووضع "نافذة ضمن النافذة" التفاعلي على الكمبيوتر
يقدّم Android 17 إمكانات جديدة وفعّالة في التعامل مع النوافذ تعيد تعريف طريقة تعدُّد المهام لدى المستخدمين، ما يتطلّب من تطبيقاتك توفير مرونة أكبر في التصميم:
- فقاعات التطبيقات: بالإضافة إلى واجهة برمجة التطبيقات الخاصة بفقاعات المراسلة، يمكن للمستخدمين الآن تحويل أي تطبيق إلى فقاعة عائمة من خلال النقر مع الاستمرار على رمزه في مشغّل التطبيقات. تتوفّر هذه الميزة على الهواتف والأجهزة القابلة للطي والأجهزة اللوحية، ما يتيح إنجاز مهام متعددة بسهولة في أي سير عمل.
- شريط الفقاعات: على الشاشات الكبيرة (الأجهزة اللوحية والهواتف القابلة للطي)، يتضمّن شريط تطبيقات النظام الآن شريط فقاعات مخصّصًا لتنظيم فقاعات التطبيقات العائمة هذه والتنقّل بينها وتثبيتها.
- ميزة "نافذة ضمن النافذة" التفاعلية في وضع سطح المكتب: في بيئات سطح المكتب، يقدّم نظام التشغيل Android 17 ميزة "نافذة ضمن النافذة" التفاعلية. على عكس نوافذ "نافذة ضمن النافذة" التقليدية التي تكون للقراءة فقط، تظل هذه النوافذ المثبّتة تفاعلية بالكامل مع إبقائها دائمًا في المقدّمة فوق نوافذ التطبيقات الأخرى.
تعديلات على إعادة إنشاء الأنشطة
لمنع فقدان الحالة المزعج والتقطّع، يغيّر نظام التشغيل Android 17 السلوك التلقائي لإعادة إنشاء النشاط. لن يعيد النظام تشغيل الأنشطة تلقائيًا عند إجراء تغييرات نموذجية في الإعدادات لا تتطلّب إعادة رسم واجهة المستخدم بالكامل (بما في ذلك CONFIG_KEYBOARD وCONFIG_KEYBOARD_HIDDEN وCONFIG_NAVIGATION وCONFIG_TOUCHSCREEN وCONFIG_COLOR_MODE).
بدلاً من ذلك، ستتلقّى الأنشطة قيد التشغيل هذه التحديثات من خلال onConfigurationChanged()، ما يتيح إجراء عمليات انتقال سلسة. إذا كان تطبيقك يعتمد بشكل صريح على إعادة التشغيل الكامل لإعادة تحميل الموارد لهذه التغييرات، عليك الآن الموافقة بشكل صريح باستخدام سمة البيان الجديدة android:recreateOnConfigChanges.
المتابعة على الجهاز
يضيف نظام التشغيل Android 17 ميزة "مواصلة" لمساعدة المستخدمين على التنقّل بسلاسة بين أجهزة Android لتنفيذ مهمة ما. يظهر للمستخدم اقتراح بالتطبيق الذي تم فتحه مؤخرًا من جهازه الجوّال في شريط مهام الجهاز اللوحي، ما يتيح له إمكانية النقر مرة واحدة لتشغيل التطبيق والانتقال إلى الرابط لصفحة معيّنة في التطبيق من حيث توقّف. يمكن أن تتيح ميزة "متابعة" الانتقال من التطبيق إلى الويب، بما في ذلك الرجوع إلى استخدام الويب في حال عدم تثبيت التطبيق.
class MyHandoffActivity : Activity() {
...
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Do stuff
...
// Enable handoff
setHandoffEnabled(true, null)
}
// Override and implement onHandoffActivityDataRequested
override fun onHandoffActivityDataRequested(handoffRequestInfo: HandoffActivityDataRequestInfo) : HandoffActivityData {
// Create and return handoff data
}
}استخدام Jetpack Compose لتصميم تطبيقات متكيّفة
لمساعدتك في تعديل تطبيقاتك لتلبية متطلبات Android 17 الجديدة، أطلقنا مهارة التكيّف في Jetpack Compose. يساعد سير عمل المطوّر المستند إلى الذكاء الاصطناعي في تنفيذ أفضل الممارسات التكيّفية:
- التنقّل التكيّفي: يمكنك الانتقال تلقائيًا بين أشرطة التنقّل في أسفل الشاشة على الأجهزة الجوّالة وقضبان التنقّل الثابتة على الحواف على الشاشات الكبيرة باستخدام
NavigationSuiteScaffoldمن مكتبة Material 3 Adaptive. - التصميمات المتعددة الألواح: نفِّذ تصميمات عرض على شكل قائمة مع تفاصيل واللوحات الثانوية بشكلٍ أصلي باستخدام "مشاهد التنقّل 3" (
ListDetailSceneStrategyوSupportingPaneSceneStrategy) بدلاً من عمليات الأجزاء غير الثابتة. - واجهات برمجة التطبيقات FlexBox وGrid: يمكنك الاستفادة من مكوّنات التنسيق الديناميكي في Compose 1.11 لتعديل مدى الصفوف والأعمدة بسهولة أثناء التنقل، ما يضمن أن يملأ المحتوى المساحة بشكل جميل دائمًا.
- إدخال متقدّم بدون لمس: يمكنك الاستفادة من ميزة دعم لوحة اللمس والماوس المحسّنة في الإصدار 1.11 من Compose، بما في ذلك حلقات التركيز الأصلية وواجهات برمجة التطبيقات الجديدة (مثل
TrackpadInjectionScopeوperformTrackpadInput) لاختبار تجربة "الكمبيوتر المحمول" وتقديمها بسهولة على Googlebooks و"وضع سطح المكتب". - حالات النوافذ الديناميكية: يمكنك الاستفادة من نموذج الحالة التفاعلية في Compose لتكييف واجهة المستخدم بسلاسة عند انتقال التطبيق من وضع ملء الشاشة إلى فقاعة تطبيق عائمة أو نافذة تفاعلية في وضع "نافذة ضمن النافذة" على سطح المكتب، ما يضمن تقديم تجربة ممتازة حتى عند الحد الأدنى للأبعاد.
Android هو Compose أولاً
توفّر Compose أسهل طريقة لإنشاء تطبيقات متكيّفة، وهذا مجرّد أحد الأسباب العديدة التي تجعلنا نعتقد أنّه يجب إنشاء جميع واجهات مستخدم Android باستخدام Compose. لهذا السبب، أصبح تطوير تطبيقات Android يعتمد على Compose أولاً. سيتم إنشاء جميع واجهات برمجة التطبيقات والمكتبات والأدوات والإرشادات الجديدة للمطوّرين على Android حصريًا من أجل Jetpack Compose. أصبحت مكوّنات View القديمة (في حزمة android.widget) ومكتبات View المستندة إلى Jetpack (مثل Fragments وRecyclerView وViewPager) الآن في وضع الصيانة. ولن يتلقّوا سوى إصلاحات الأخطاء المهمة، ولن يحصلوا على أي ميزات جديدة.
ملاحظة هل أنت مستعد لنقل البيانات؟ استخدِم أداة نقل البيانات من XML إلى Compose المستندة إلى الذكاء الاصطناعي لتحليل تخطيطات View القديمة تلقائيًا وتحويلها إلى رموز Compose قابلة للتكيّف بدرجة كبيرة.
الأداء والكفاءة
يشير أداء التطبيق إلى سلاسة واجهة المستخدم وسرعة بدء تشغيل التطبيق وكفاءة تنفيذ المهام المتعددة، ويقدّم نظام التشغيل Android 17 تحسينات كبيرة في كل هذه المجالات.
الحدود القصوى لذاكرة التطبيقات
يُعدّ استخدام الذاكرة أحد الأسس غير المرئية للأداء العام. عندما يزداد حجم تطبيق يعمل في المقدّمة أو خدمة تعمل في المقدّمة بدون التحكّم فيه، يؤدي ذلك إلى ارتفاع معدّل استخدام وحدة المعالجة المركزية والبطارية في إدارة الذاكرة، ويؤدي في النهاية إلى إنهاء التطبيقات الأخرى المخزّنة مؤقتًا والمهام التي تعمل في الخلفية، ما يؤدي في النهاية إلى فرض عمليات تشغيل على البارد أبطأ وتعدُّد مهام غير فعّال.
اعتبارًا من Android 17، سيفرض النظام حدودًا صارمة على الذاكرة المستخدَمة من التطبيقات استنادًا إلى إجمالي مساحة ذاكرة الوصول العشوائي (RAM) في الجهاز، ما يؤدي إلى إنهاء العمليات المخالفة بشكل مفاجئ. في ما يلي بعض الإجراءات الجديدة التي تساعدك في استيفاء هذه المتطلبات الأكثر صرامة:
- أداة التحسين R8: تساهم أداة التحسين R8 بشكل كبير في تقليل استهلاك الذاكرة التي تشغلها رموز التطبيق الثنائية عن طريق تقليص حجم الفئات والأساليب والحقول إلى أسماء أقصر، وإزالة الرموز والموارد غير المستخدَمة. استخدِم أداة R8 في الوضع الكامل مع أداة تحليل إعدادات R8 الجديدة للتأكّد من أنّ تطبيقك يستفيد إلى أقصى حدّ من أداة R8.
- أداة LeakCanary في إصدار Panda من "استوديو Android": يتضمّن محلّل الأداء الآن عملية دمج أصلية لأداة LeakCanary كمهمة مخصّصة، وهي مدمجة بالكامل مع بيئة التطوير المتكاملة ورمز المصدر.
- ApplicationExitInfo: إذا تم إنهاء تطبيقك بسبب هذه الحدود، ستعرض الدالة getDescription() من ApplicationExitInfo القيمة "MemoryLimiter:AnonSwap".
- رصد قيمة شاذة على الجهاز: يمكنك الاستفادة من إنشاء الملفات الشخصية المستندة إلى المشغّلات باستخدام
TRIGGER_TYPE_ANOMALYكجزء من ProfilingManager، وذلك لتسجيل لقطات لأجزاء من الذاكرة تلقائيًا عند بلوغ الحد الأقصى للذاكرة.
val profilingManager = applicationContext .getSystemService(ProfilingManager::class.java) val triggers = ArrayList<ProfilingTrigger>().apply { add(ProfilingTrigger.Builder( ProfilingTrigger.TRIGGER_TYPE_ANOMALY).build()) } profilingManager.addProfilingTriggers(triggers)
ونعمل على عرض المزيد من مقاييس الذاكرة داخل الحقل لك في Google Play Console.
جمع البيانات غير المستخدَمة الخاصة بجيل معيَّن
يقدّم Android 17 عمليات جمع للجيل الشاب أكثر تكرارًا وأقل استهلاكًا للموارد في أداة ART لجمع البيانات غير الضرورية في الوقت نفسه (Concurrent Mark-Compact GC). من خلال فصل العناصر القصيرة العمر عن العناصر الثابتة والطويلة العمر، ينفّذ النظام عمليات مسح متكررة وخفيفة الوزن "للجيل الشاب" بدلاً من عمليات المسح الكاملة والمكلفة للذاكرة المخصّصة، ما يقلّل بشكل كبير من استخدام وحدة المعالجة المركزية واستنزاف البطارية وتقطُّع واجهة المستخدم. أظهرت اختباراتنا تحسينات كبيرة في تداخل جمع البيانات غير الضرورية مع سلاسل التطبيقات وانخفاضًا في الحد الأقصى لحجم مجموعة البيانات المقيمة في الذاكرة (RSS). تتوفّر تحسينات ART أيضًا على أكثر من مليار جهاز يعمل بالإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث من خلال تحديثات نظام Google Play.
Lock-Free MessageQueue
بالنسبة إلى التطبيقات التي تستهدف حزمة تطوير البرامج (SDK) الإصدار 37 أو الإصدارات الأحدث، تنفّذ الآن السمة الأساسية android.os.MessageQueue بنية غير مقفلة، ما يقلّل بشكل كبير من اللقطات الفائتة ويحسّن وقت بدء تشغيل التطبيق ويحسّن بشكل جذري أداء قوائم الانتظار المشغولة في سيناريوهات متعددة مؤشرات الترابط. ملاحظة: قد يؤدي ذلك إلى تعطُّل التطبيقات التي تستخدم الانعكاس في حقول وطُرق MessageQueue الخاصة. تمت إضافة واجهتَي برمجة التطبيقات peekWhen وpoll إلى TestLooperManager لإجراء اختبارات الأجهزة بدون الاعتماد على MessageQueue الداخلية.
أصبحت الحقول الثابتة النهائية نهائية حقًا
بدءًا من الإصدار 17 من نظام التشغيل Android، لن تتمكّن التطبيقات التي تستهدف الإصدار 37 من حزمة تطوير البرامج (SDK) أو الإصدارات الأحدث من تعديل الحقول "static final"، ما يسمح لوقت التشغيل بتطبيق تحسينات الأداء بشكل أكثر فعالية. وستؤدي محاولة إجراء ذلك من خلال الانعكاس (أو الانعكاس العميق) إلى ظهور الخطأ IllegalAccessException.
سيؤدي تعديلها من خلال مجموعة طرق SetStatic<Type>Field الخاصة بواجهة JNI إلى تعطُّل التطبيق على الفور.
قيود عرض الإشعارات المخصّصة
للحدّ من استخدام الذاكرة، سنفرض قيودًا إضافية على حجم طرق عرض الإشعارات المخصّصة. يغلق هذا التحديث ثغرة تسمح للتطبيقات بتجاوز الحدود الحالية باستخدام معرّفات الموارد المنتظمة (URI). ويتم التحكّم في هذا السلوك من خلال إصدار حزمة تطوير البرامج (SDK) المستهدَف، ويسري على التطبيقات التي تستهدف الإصدار 37 من واجهة برمجة التطبيقات والإصدارات الأحدث.
الخصوصية والأمان
إنّ الحفاظ على ثقة المستخدمين هو جوهر منظومة Android المتكاملة. يقدّم Android 17 ميزات قوية تحمي البيانات الحسّاسة مع تبسيط تجارب المستخدمين.
خيارات الحفاظ على الخصوصية
في السابق، كانت التطبيقات تتطلّب أذونات واسعة ودائمة للوصول إلى معلومات، مثل جهات الاتصال والموقع الجغرافي الدقيق وملفات الوسائط. يواصل نظام التشغيل Android 17 التوجّه نحو الخيارات التي تحافظ على الخصوصية والتي تمنح إذن الوصول المؤقت المستند إلى الجلسة فقط إلى البيانات التي يختارها المستخدم بشكل صريح:
- أداة اختيار جهات الاتصال على مستوى النظام: باستخدام
ACTION_PICK_CONTACTS، يمكن للتطبيقات طلب الوصول المؤقت إلى حقول معيّنة فقط (مثل البريد الإلكتروني أو رقم الهاتف) يختارها المستخدم، ما يلغي الحاجة إلى إذنREAD_CONTACTSالواسع النطاق. يتوافق أيضًا بشكل كامل مع فصل ملف العمل عن الملف الشخصي. - نسبة العرض إلى الارتفاع القابلة للتخصيص في "أداة اختيار الصور": باستخدام PhotoPickerUiCustomizationParams، يمكنك تخصيص "أداة اختيار الصور" في النظام لعرض الصور المصغّرة في وضع "بورتريه". وهذا مثالي للتطبيقات التي تعرض دائمًا الصور والفيديوهات بالوضع العمودي، مثل تطبيقات وسائل التواصل الاجتماعي المستندة إلى الفيديو.
- زر مشاركة الموقع الجغرافي الذي يعرضه النظام: يتيح لك زر مشاركة الموقع الجغرافي الجديد الذي يعرضه النظام تضمينه في تطبيقك، وهو يمنح إذن الوصول إلى الموقع الجغرافي الدقيق للجلسة الحالية فقط.
- EyeDropper API: تتيح واجهة برمجة التطبيقات الجديدة على مستوى النظام،
ACTION_OPEN_EYE_DROPPER، لتطبيقك إنشاء أداة اختيار الألوان تعمل بنظام التشغيل، ما يتيح للمستخدم اختيار اللون من أي بكسل على الشاشة. يوفّر ذلك تجربة آمنة للحفاظ على الخصوصية عند اختيار الألوان، ما يلغي الحاجة إلى أذونات واسعة النطاق وحسّاسة لتصوير الشاشة أو بث محتوى الشاشة.
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) }
الوصول إلى الشبكة المحلية
تتطلّب التطبيقات التي تستهدف الإصدار 17 من نظام التشغيل Android الآن إما إذن التشغيل ACCESS_LOCAL_NETWORK أو استخدام أدوات اختيار الأجهزة التي تتوسّط فيها الأنظمة وتحافظ على الخصوصية لإجراء عمليات التواصل مع الشبكة المحلية، مثل التحدّث إلى الأجهزة المنزلية الذكية أو أجهزة استقبال البث. بما أنّ إذن ACCESS_LOCAL_NETWORK يندرج ضمن مجموعة أذونات NEARBY_DEVICES الحالية، لن يُطلب من المستخدمين الذين سبق لهم منح أذونات NEARBY_DEVICES أخرى منح هذا الإذن مرة أخرى.
الحماية من خلال كلمة المرور الصالحة لمرة واحدة (OTP) عبر الرسائل القصيرة
يوسّع نظام التشغيل Android 17 نطاق حماية كلمات المرور لمرة واحدة (OTP) المستندة إلى الرسائل القصيرة من خلال تأخير الوصول إلى الرسائل القصيرة لمدة ثلاث ساعات:
- تنسيق WebOTP: يتم تأخير الرسالة لجميع التطبيقات التي ليست المستلِم المقصود (عدم تطابق النطاق).
- كلمة المرور الصالحة لمرة واحدة (OTP) العادية عبر الرسائل القصيرة: سيتم تأخيرها في جميع التطبيقات التي تستهدف الإصدار 37 من حزمة تطوير البرامج (SDK) أو الإصدارات الأحدث.
الاستثناءات: يتم استثناء تطبيقات الرسائل القصيرة SMS التلقائية و"مساعد Google" والتطبيقات المصاحبة المرتبطة. ننصح بشدة بنقل التطبيقات إلى واجهات برمجة التطبيقات SMS Retriever أو SMS User Consent.
التشفير ما بعد الكم (PQC)
يتضمّن نظام التشغيل Android 17 الجيل التالي من الأمان من خلال التشفير:
- دمج Keystore: يمكن للأجهزة المتوافقة إنشاء مفاتيح ML-DSA (خوارزمية التوقيع الرقمي المستندة إلى وحدة الشبكة) في أجهزة آمنة لإنتاج توقيعات آمنة من الهجمات الكمية، ويتم عرضها من خلال واجهات برمجة تطبيقات JCA العادية.
- توقيع حِزم APK المختلط: نقدم لك الإصدار 3.2 من مخطّط توقيع حزمة APK الذي يجمع بين التواقيع التقليدية وتواقيع ML-DSA لتأمين عملية تسليم التطبيقات.
تحميل أكثر أمانًا للرموز الديناميكية المدمجة مع المحتوى
إذا كان تطبيقك يستهدف حزمة تطوير البرامج (SDK) 37 أو إصدارًا أحدث، فإنّ ميزة "الحماية الأكثر أمانًا لتحميل الرموز البرمجية الديناميكية" (DCL) التي تم طرحها في نظام التشغيل Android 14 لملفات DEX وJAR أصبحت متاحة الآن للمكتبات المجمّعة من رموز برمجية أصلية. يجب وضع علامة "للقراءة فقط" على جميع الملفات الأصلية التي يتم تحميلها باستخدام System.load. وفي الحالات الأخرى، يعرض النظام UnsatisfiedLinkError.
حماية أكثر ذكاءً لكلمات المرور عند إدخالها
في الإصدار 17 من نظام التشغيل Android، سنوفّر طريقة أكثر أمانًا لإدخال كلمات المرور وأرقام التعريف الشخصي وغيرها من المعلومات السرية عند استخدام لوحة مفاتيح خارجية، وذلك من خلال إيقاف عرض آخر حرف تم إدخاله تلقائيًا.
وسيظل بإمكان المستخدمين تخصيص إعدادات العرض هذه بسهولة لتتوافق مع إعداداتهم المفضّلة (قد يختلف مدى التوفّر حسب الشركة المصنّعة للجهاز).
تتوافق أدوات حماية الخصوصية المحسّنة هذه تلقائيًا مع مكوّنات حزمة تطوير البرامج (SDK) المضمّنة في Android، وستكون متوافقة مع الإصدار 1.12 من Compose لـ SecureTextFields.
ميزات الوسائط والكاميرا التي تتيح لصنّاع المحتوى تقديم تجربة ممتعة للمستخدمين
يقدّم Android 17 ميزات جديدة لصنّاع المحتوى تتيح الوصول إلى كاميرات ووسائط بجودة احترافية، مع تحسين تجربة المستهلكين في الوقت نفسه.
- Eclipsa Video: معيار فيديو بنطاق عالي الديناميكية يستند إلى مواصفات SMPTE ST 2094-50 التي تقدّم بيانات وصفية جديدة لمساعدة الأجهزة على تعديل المحتوى بما يتناسب مع مساحة العرض وظروف الإضاءة المحيطة، بالإضافة إلى تحسين العرض المتزامن للمحتوى العادي والمحتوى بنطاق عالي الديناميكية.
- تنسيق صور RAW14: يتيح لك التوافق الجديد مع تنسيق صور RAW14 التقاط صور بأعلى مستوى من التفاصيل وعمق الألوان باستخدام مستشعرات الكاميرا المتوافقة من خلال تطبيق الكاميرا الاحترافي.
- إضافات الكاميرا التي يحدّدها المورّد: تتيح الإضافات التي يحدّدها المورّد لشركاء الأجهزة تحديد أوضاع إضافات الكاميرا المخصّصة وتنفيذها، ما يتيح الوصول إلى أفضل ميزات الكاميرا وأحدثها.
- برنامج ترميز Extended HE-AAC: يتوفّر برنامج ترميز Extended HE-AAC جديد توفّره المنصة، ويتوافق مع معدّلات نقل البيانات المنخفضة والعالية باستخدام ترميز موحّد للكلام والصوت، ما يوفّر جودة صوت أفضل بكثير للرسائل الصوتية في ظروف النطاق الترددي المنخفض، بما في ذلك التوافق مع البيانات الوصفية الخاصة بالجهارة.
- برنامج ترميز الفيديو المتعدّد الاستخدامات (H.266): يتيح لمصنّعي المعدات الأصلية إضافة توافق برنامج الترميز من خلال تحديد نوع MIME video/vvc في MediaFormat، وإضافة ملفات تعريف VVC جديدة في MediaCodecInfo، ودمج التوافق في MediaExtractor.
- نوع جهاز الكاميرا: واجهات برمجة تطبيقات جديدة تستعلم عن نوع الجهاز الأساسي لتحديد ما إذا كانت الكاميرا عبارة عن جهاز مدمج أو كاميرا ويب خارجية متصلة بمنفذ USB أو كاميرا افتراضية.
- الجودة الثابتة لتسجيل الفيديو: يضبط setVideoEncodingQuality في MediaRecorder وضع الجودة الثابتة (CQ) لبرامج ترميز الفيديو لضمان دقة مرئية موحّدة في الفيديو بأكمله.
تحسين التوافق مع سماعات الأذن الطبية
- التوافق مع سماعات الأذن الطبية التي تعمل بتقنية Bluetooth LE Audio: يتضمّن Android الآن فئة أجهزة محدّدة لسماعات الأذن الطبية التي تعمل بتقنية Bluetooth Low Energy (BLE) Audio مع الثابت الجديد AudioDeviceInfo.TYPE_BLE_HEARING_AID، ما يتيح لتطبيقك التمييز بين سماعات الأذن الطبية وسماعات الرأس العادية لتوفير تجربة مخصّصة للمستخدمين الذين يستعينون بأجهزة مساعدة على السمع.
- توجيه الصوت الدقيق لسماعات الأذن الطبية: يتيح نظام التشغيل Android 17 للمستخدمين إدارة مكان تشغيل أصوات النظام المحدّدة بشكل مستقل. يمكن للمستخدمين اختيار توجيه الإشعارات ونغمات الرنين والمنبّهات إلى سماعات الأذن الطبية المتصلة أو مكبّر الصوت المدمج في الجهاز، ما يساعد في تجنُّب المقاطعات غير المرغوب فيها في الأذن مع الحفاظ على اتصال بلوتوث لتطبيقات إدارة سماعات الأذن الطبية.
CameraX وMedia3
تم تعديل CameraX وMedia3 ليتوافقا مع Android 17. تساعد هذه المكتبات في إنجاز المهام الصعبة، وتسهّل عملية تطوير الوسائط، وتبسّط إنشاء تطبيقات موثوقة لالتقاط الصور بالكاميرا، وتشغيل الوسائط بسلاسة، وتقديم تجارب إبداعية ومعقّدة في مجال التعديل.
لقد أطلقنا مهارة وكيل يمكنها نقل عمليات تنفيذ الكاميرا القديمة على Android (واجهات Camera1 أو Camera2 API الأولية) إلى CameraX.
ملاحظة: عليك تحديث إصدار CameraX إلى 1.5.2 أو 1.6.0 أو إصدار أحدث لتجنُّب حدوث عُطل مرتبط بوضع النطاق الديناميكي المضاف على أجهزة Android 17.
جهِّز تطبيقاتك ومكتباتك وأدواتك ومحرّكات الألعاب.
إذا كنت تطوّر حزمة تطوير برامج (SDK) أو مكتبة أو أداة أو محرك ألعاب لنظام التشغيل Android، من المهم جدًا إعداد أي تحديثات ضرورية الآن لمنع مطوّري التطبيقات والألعاب من مواجهة مشاكل في التوافق والسماح لهم باستخدام أحدث ميزات حزمة تطوير البرامج (SDK). يُرجى إعلام المطوّرين الذين يعتمدون عليك بما إذا كانت هناك حاجة إلى تحديثات لتوفير الدعم الكامل لنظام التشغيل Android 17.
يتضمّن الاختبار تثبيت تطبيقك النهائي أو تطبيق تجريبي يستخدم مكتبتك أو محركك من خلال Google Play أو وسائل أخرى على جهاز أو محاكي يعمل بالإصدار 17 من نظام التشغيل Android Beta 4. تصفَّح جميع مسارات تطبيقك وابحث عن مشاكل في الوظائف أو واجهة المستخدم. يحتوي كل إصدار من Android على تغييرات في النظام الأساسي تعمل على تحسين الخصوصية والأمان وتجربة المستخدم بشكل عام. راجِع التغييرات في السلوك التي تؤثّر في التطبيقات التي تعمل على و تستهدف الإصدار 17 من نظام التشغيل Android للتركيز على الاختبار، بما في ذلك ما يلي:
- إمكانية تغيير الحجم على الشاشات الكبيرة: بعد استهداف الإصدار 17 من نظام التشغيل Android (الإصدار 37 من حزمة تطوير البرامج (SDK))، لن يعود بإمكانك إيقاف إمكانية الحفاظ على قيود الاتجاه وإمكانية تغيير الحجم ونسبة العرض إلى الارتفاع على الشاشات الكبيرة.
- تحميل الرموز البرمجية الديناميكية: إذا كان تطبيقك يستهدف حزمة تطوير البرامج (SDK) 37 أو إصدارًا أحدث، فإنّ ميزة الحماية التي تم طرحها في الإصدار 14 من نظام التشغيل Android لتحميل الرموز البرمجية الديناميكية (DCL) بشكل أكثر أمانًا لملفات DEX وJAR تشمل الآن المكتبات الأصلية. يجب وضع علامة القراءة فقط على جميع الملفات الأصلية التي يتم تحميلها باستخدام System.load(). وفي حال عدم توفّرها، يعرض النظام الخطأ UnsatisfiedLinkError.
- تفعيل "شهادة الشفافية" تلقائيًا: يتم تفعيل شهادة الشفافية (CT) تلقائيًا. (على نظام التشغيل Android 16، تتوفّر ميزة "التحقّق من التوافق"، ولكن كان على التطبيقات الموافقة على استخدامها).
- وسائل الحماية على الشبكة المحلية: يتم حظر الوصول إلى الشبكة المحلية تلقائيًا للتطبيقات التي تستهدف الإصدار 37 من حزمة تطوير البرامج (SDK) أو إصدارًا أحدث. يمكنك التبديل إلى استخدام أدوات اختيار تحافظ على الخصوصية إذا أمكن ذلك، واستخدام إذن
ACCESS_LOCAL_NETWORKالجديد للوصول الواسع النطاق والدائم. - تحسين أمان الصوت في الخلفية: بدءًا من Android 17، يفرض إطار عمل الصوت قيودًا على التفاعلات مع الصوت في الخلفية، بما في ذلك تشغيل الصوت وطلبات التركيز على الصوت وواجهات برمجة التطبيقات لتغيير مستوى الصوت. استنادًا إلى ملاحظاتك، أجرينا بعض التغييرات منذ الإصدار التجريبي 2، بما في ذلك حظر الوصول إلى targetSDK أثناء فرض تشغيل خدمة FGS أثناء الاستخدام وإعفاء صوت التنبيه. تتوفّر التفاصيل الكاملة في الإرشادات المعدَّلة.
- بيان الوصول إلى وحدة المعالجة العصبية: يجب أن تُدرِج التطبيقات التي تستهدف الإصدار 17 من نظام التشغيل Android
FEATURE_NEURAL_PROCESSING_UNITفي ملف البيان الخاص بها لتجنُّب حظر وصولها إلى وحدة المعالجة العصبية. ويشمل ذلك التطبيقات التي تستخدم LiteRT NPU delegate وحِزم تطوير البرامج الخاصة بمورّدين معيّنين، بالإضافة إلى NNAPI المتوقّفة نهائيًا.
بدء استخدام Android 17
من المفترض أن يتلقّى جهاز Pixel الإصدار 17 من نظام التشغيل Android قريبًا إذا لم يسبق لك الانضمام إلى برنامج Android Beta. إذا لم يكن لديك جهاز Pixel، يمكنك استخدام صور نظام 64 بت مع "محاكي Android" في "استوديو Android". إذا كنت تستخدم حاليًا الإصدار التجريبي 4.1 من Android 17 ولم تستخدم بعد الإصدار التجريبي من Android 17 QPR1، يمكنك إلغاء الاشتراك في البرنامج وسيتم بعد ذلك توفير نسخة الإصدار من Android 17 عبر شبكة غير سلكيّة.
الحصول على الإصدار التجريبي من Android 17 على أجهزة الشركاء
يتوفّر الإصدار التجريبي من Android 17 على الهواتف والأجهزة اللوحية والأجهزة القابلة للطي من الشركاء، بما في ذلك Honor وiQOO وLenovo وOnePlus وOPPO وRealme وSharp وvivo وXiaomi.
للحصول على أفضل تجربة تطوير باستخدام Android 17، ننصحك باستخدام أحدث إصدار Canary من Android Studio Quail. بعد إعداد حسابك، إليك بعض الإجراءات التي يجب اتّخاذها:
- اختبِر تطبيقك الحالي للتأكّد من توافقه، واعرف ما إذا كان تطبيقك سيتأثر بالتغييرات في الإصدار 17 من نظام التشغيل Android، وثبِّت تطبيقك على جهاز أو محاكي Android يعمل بالإصدار 17 من نظام التشغيل Android واختبِره بشكل شامل.
نشكر مجددًا جميع المشاركين في برنامج الاستخدام المبكّر للمطوّرين والإصدار التجريبي على Android. نتطلّع إلى معرفة كيف ستستفيد تطبيقاتك من التحديثات في Android 17، ونخطّط لطرح التحديثات بوتيرة سريعة في المستقبل.
للحصول على معلومات كاملة عن Android 17، يُرجى الانتقال إلى الموقع الإلكتروني لمطوّري Android 17.
متابعة القراءة
-
في مؤتمر Google I/O لهذا العام، أعلنّا عن تحديث للتجارب المكانية: تتوفّر الآن واجهة برمجة التطبيقات Geospatial API كمعاينة في ARCore for Jetpack XR.
Coco Fatus, Alon Hetzroni, Azin Mehrnoosh • مدة القراءة: 7 دقائق
-
أخبار المنتجات
لقد حقّق الإصدار التجريبي 3 من Android 17 ثباتًا في النظام الأساسي اليوم. وهذا يعني أنّه تم إغلاق مساحة العرض لواجهة برمجة التطبيقات، ويمكنك إجراء اختبار التوافق النهائي ونشر تطبيقاتك التي تستهدف الإصدار 17 من Android على "متجر Play".
Matthew McCullough • مدة القراءة: 5 دقائق
-
أخبار المنتجات
يتضمّن مؤتمر Google I/O لعام 2026 17 إعلانًا رئيسيًا لمطوّري تطبيقات Android تركّز على الإنتاجية المستندة إلى الذكاء الاصطناعي الوكيل، وCompose First كمعيار لواجهة المستخدم، والوسائط عالية الأداء، والتطوير التكيّفي للمنظومة المتكاملة المتوسّعة.
Matthew McCullough • مدة القراءة: 8 دقائق
البقاء على اطّلاع على آخر التحديثات
يمكنك تلقّي أحدث الإحصاءات حول تطوير تطبيقات Android في بريدك الوارد أسبوعيًا.