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

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

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

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

ما بعد "معاينة المطوّر"

استبدل نظام التشغيل Android برنامج "معاينة المطوّر" التقليدي بقناة Canary مستمرة. يقدّم نموذج "التوفّر الدائم" الجديد ثلاث مزايا رئيسية:

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

الجدول الزمني لإصدار Android 17

سننتقل سريعًا من الإصدار التجريبي إلى مرحلة ثبات المنصة المستهدَفة في شهر آذار (مارس). في هذه المرحلة، سنوفّر واجهات برمجة التطبيقات النهائية لحزمة SDK/NDK والسلوكيات النهائية إلى حد كبير التي تواجه التطبيقات. بعد ذلك، سيكون لديك عدة أشهر قبل الإصدار النهائي لإكمال الاختبار.

timeline1.png

عام مليء بالإصدارات

نخطّط لمواصلة توفير تحديثات Android 17 في سلسلة من الإصدارات الفصلية. الإصدار القادم في الربع الثاني هو الإصدار الوحيد الذي سنطرح فيه تغييرات مخطَّط لها في السلوك قد تؤدي إلى إيقاف التطبيقات. نخطّط لإصدار نسخة ثانوية من حزمة تطوير البرامج (SDK) في الربع الرابع من العام تتضمّن واجهات برمجة تطبيقات وميزات إضافية.

timeline2.png

قيود الاتجاه وإمكانية تغيير الحجم

مع طرح الإصدار التجريبي من Android 17، ننتقل إلى المرحلة التالية من خارطة الطريق التكيّفية: يزيل نظام التشغيل Android 17 (مستوى واجهة برمجة التطبيقات 37) خيار إيقاف القيود المفروضة على الاتجاه وإمكانية تغيير الحجم على الأجهزة ذات الشاشات الكبيرة (عرض الشاشة > 600 وحدة بكسل مستقلة الكثافة).

عندما يستهدف تطبيقك حزمة تطوير البرامج (SDK) الإصدار 37، يجب أن يكون جاهزًا للتكيّف. يتوقّع المستخدمون أن تعمل تطبيقاتهم في كل مكان، سواء كانوا ينفّذون مهام متعدّدة على جهاز لوحي أو يفتحون جهازًا أو يستخدمون العرض في نافذة على جهاز كمبيوتر، ويتوقّعون أن تملأ واجهة المستخدم المساحة وأن تراعي وضع الجهاز.

أهم التغييرات في الإصدار 37 من حزمة تطوير البرامج (SDK)

يجب أن تضمن التطبيقات التي تستهدف Android 17 التوافق مع السمات في ملف البيان وواجهات برمجة التطبيقات في وقت التشغيل التي تم طرحها في Android 16. عند التشغيل على شاشة كبيرة (أصغر بُعد ≥ 600 بكسل مستقل الكثافة)، سيتم تجاهل السمات وواجهات برمجة التطبيقات التالية:

سمات البيان/واجهة برمجة التطبيقاتالقيم التي تم تجاهلها
screenOrientationportrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape
setRequestedOrientation()‎portrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape
resizeableActivityالكل
minAspectRatioالكل
maxAspectRatioالكل

الإعفاءات وعناصر تحكّم المستخدم

هذه التغييرات خاصة بالشاشات الكبيرة، وهي لا تنطبق على الشاشات الأصغر من sw600dp (بما في ذلك الهواتف التقليدية ذات الشكل اللوحي). بالإضافة إلى ذلك، تُستثنى التطبيقات المصنّفة ضمن الألعاب (استنادًا إلى علامة android:appCategory) من هذه القيود.

من المهم أيضًا ملاحظة أنّ المستخدمين يظلون متحكّمين في بياناتهم. يمكن للمستخدمين الموافقة صراحةً على استخدام السلوك التلقائي للتطبيق أو رفضه من خلال إعدادات نسبة العرض إلى الارتفاع في النظام.

تعديلات على تغييرات الإعدادات

لتحسين توافق التطبيقات والمساعدة في الحدّ من انقطاع تشغيل الفيديو وفقدان البيانات المدخلة وأنواع أخرى من فقدان الحالة المزعج، نعمل على تعديل السلوك التلقائي لإعادة إنشاء الأنشطة. اعتبارًا من Android 17، لن يعيد النظام تشغيل الأنشطة تلقائيًا عند إجراء تغييرات معيّنة في الإعدادات لا تتطلّب عادةً إعادة إنشاء واجهة المستخدم، بما في ذلك CONFIG_KEYBOARD وCONFIG_KEYBOARD_HIDDEN وCONFIG_NAVIGATION وCONFIG_UI_MODE (عند تغيير UI_MODE_TYPE_DESK فقط) وCONFIG_TOUCHSCREEN وCONFIG_COLOR_MODE. بدلاً من ذلك، ستتلقّى الأنشطة الجارية هذه التحديثات ببساطة من خلال onConfigurationChanged. إذا كان تطبيقك يعتمد على إعادة التشغيل الكاملة لإعادة تحميل الموارد لهذه التغييرات، عليك الآن الموافقة صراحةً باستخدام سمة البيان الجديدة android:recreateOnConfigChanges، والتي تتيح لك تحديد تغييرات الإعدادات التي يجب أن تؤدي إلى تشغيل دورة حياة النشاط الكاملة (من الإيقاف إلى الإلغاء ثم الإنشاء مرة أخرى)، بالإضافة إلى الثوابت ذات الصلة mcc وmnc والثوابت الجديدة keyboard وkeyboardHidden وnavigation وtouchscreen وcolorMode.

إعداد تطبيقك

لقد أطلقنا أدوات ومستندات لتسهيل هذه العملية عليك. تتضمّن مشاركة المدوّنة المركّزة المزيد من الإرشادات، بالإضافة إلى استراتيجيات لمعالجة المشاكل الشائعة. يجب أن تتوافق التطبيقات مع التنسيقات الأفقية والعمودية لأحجام النوافذ على مستوى النطاق الكامل لنسب العرض إلى الارتفاع، لأنّ خيار حظر اتجاه الشاشة أو نسبة العرض إلى الارتفاع لن يكون متاحًا بعد الآن. ننصحك باختبار تطبيقك باستخدام الإصدار التجريبي الأول من Android 17 مع محاكيات Pixel Tablet أو Pixel Fold (تم ضبطها على targetSdkPreview = "CinnamonBun") أو باستخدام إطار عمل اختبار توافق التطبيقات لتفعيل UNIVERSAL_RESIZABLE_BY_DEFAULT على أجهزة Android 16.

الأداء

Lock-free MessageQueue

في Android 17، ستتلقّى التطبيقات التي تستهدف حزمة تطوير البرامج (SDK) 37 أو الإصدارات الأحدث تنفيذًا جديدًا android.os.MessageQueue حيث يكون التنفيذ بدون قفل. يحسّن التنفيذ الجديد الأداء ويقلّل من اللقطات التي لم يتم عرضها، ولكن قد يؤدي إلى تعطُّل البرامج التي تستخدم الحقول والأساليب الخاصة في MessageQueue.

تجميع البيانات المهملة حسب الأجيال

يقدّم Android 17 ميزة جمع البيانات غير الضرورية حسب الأجيال إلى أداة جمع البيانات غير الضرورية المتزامنة من نوع "التعليم والتصغير" في ART. يؤدي هذا التحسين إلى توفير عمليات جمع أكثر تكرارًا وأقل استهلاكًا للموارد في الجيل الجديد، بالإضافة إلى عمليات جمع كاملة للذاكرة المخصّصة، وذلك بهدف تقليل التكلفة الإجمالية لوحدة المعالجة المركزية (CPU) ومدة جمع البيانات غير المرغوب فيها. تتوفّر تحسينات ART أيضًا على أكثر من مليار جهاز يعمل بالإصدار 12 (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث من نظام التشغيل Android من خلال تحديثات نظام Google Play.

أصبحت الحقول النهائية الثابتة نهائية حقًا

بدءًا من Android 17، لن تتمكّن التطبيقات التي تستهدف Android 17 أو الإصدارات الأحدث من تعديل الحقول "static final"، ما يسمح لوقت التشغيل بتطبيق تحسينات الأداء بشكل أكثر فعالية. وستؤدي محاولة إجراء ذلك من خلال الانعكاس (والانعكاس العميق) دائمًا إلى ظهور الخطأ IllegalAccessException. سيؤدي تعديلها باستخدام مجموعة طرق SetStatic<Type>Field في JNI إلى تعطُّل التطبيق على الفور.

قيود عرض الإشعارات المخصّصة

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

عوامل تشغيل ProfilingManager الجديدة لتصحيح أخطاء الأداء

لقد أضفنا العديد من مشغّلات النظام الجديدة إلى ProfilingManager لمساعدتك في جمع بيانات تفصيلية لتصحيح أخطاء مشاكل الأداء. تتضمّن هذه المشغّلات TRIGGER_TYPE_COLD_START و TRIGGER_TYPE_OOM و وTRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE.

للتعرّف على كيفية إعداد مشغّلات النظام الجديد، اطّلِع على مستندات إنشاء الملفات الشخصية المستندة إلى المشغّلات واسترداد بيانات الملفات الشخصية وتحليلها.

الوسائط والكاميرا

يوفّر Android 17 أدوات احترافية لتطبيقات الوسائط والكاميرا، مثل عمليات الانتقال السلس ومستوى الصوت الموحّد.

تحديثات جلسة الكاميرا الديناميكية

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

fun updateCameraSession(session: CameraCaptureSession, newOutputConfigs:  List<OutputConfiguration>)) {
    // Dynamically update the session without closing and reopening
    try {
        
        // Update the output configurations
        session.updateOutputConfigurations(newOutputConfigs)
    } catch (e: CameraAccessException) {
        // Handle error
    }
}

البيانات الوصفية لجهاز الكاميرات المتعددة المنطقية

عند استخدام الكاميرات المنطقية التي تجمع بين أجهزة استشعار متعددة للكاميرات الفعلية، يمكنك الآن طلب بيانات وصفية إضافية من جميع الكاميرات الفعلية النشطة المشارِكة في عملية الالتقاط، وليس فقط الكاميرا الأساسية. في السابق، كان عليك تنفيذ حلول بديلة، وأحيانًا تخصيص بث مباشر غير ضروري، للحصول على بيانات وصفية من الكاميرات الثانوية النشطة (على سبيل المثال، أثناء تبديل العدسة للتكبير حيث تكون الكاميرا التابعة نشطة). تضيف هذه الميزة مفتاحًا جديدًا، LOGICAL_MULTI_CAMERA_ADDITIONAL_RESULTS، في CaptureRequest وCaptureResult. من خلال ضبط هذا المفتاح على ON في CaptureRequest، ستتضمّن TotalCaptureResult بيانات وصفية من هذه الكاميرات المادية النشطة الإضافية. يمكنك الوصول إلى هذه البيانات الوصفية الشاملة باستخدام TotalCaptureResult.getPhysicalCameraTotalResults()‎ للحصول على معلومات أكثر تفصيلاً قد تتيح لك تحسين استخدام الموارد في تطبيقات الكاميرا.

التوافق مع برنامج ترميز الفيديو المتعدّد الاستخدامات (VVC)

يوفّر Android 17 إمكانية استخدام معيار ترميز الفيديو المتعدّد الاستخدامات (VVC). ويشمل ذلك تحديد نوع MIME للفيديو/VVC في MediaFormat، وإضافة ملفات تعريف VVC جديدة في MediaCodecInfo، ودمج إمكانية التوافق في MediaExtractor. ستتوفّر هذه الميزة على الأجهزة التي تتوافق معها برامج التشغيل وتتيح فك التشفير باستخدام الأجهزة.

جودة ثابتة لتسجيل الفيديو

أضفنا setVideoEncodingQuality()‎ إلى MediaRecorder. يتيح لك ذلك ضبط وضع جودة ثابتة (CQ) لبرامج ترميز الفيديو، ما يمنحك تحكّمًا أفضل في جودة الفيديو خارج إعدادات معدل نقل البيانات البسيطة.

تحسين أمان الصوت في الخلفية

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

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

الخصوصية والأمان

إيقاف سمة "البيانات غير المشفّرة" نهائيًا

تم إيقاف السمة android:usesCleartextTraffic نهائيًا. إذا كان تطبيقك يستهدف الإصدار Android 17 أو الإصدارات الأحدث ويعتمد على usesCleartextTraffic="true" بدون إعداد أمان شبكات مطابق، سيتم تلقائيًا ضبط الإعداد على عدم السماح بزيارات cleartext. ننصحك بنقل البيانات إلى ملفات إعدادات أمان الشبكة للتحكّم الدقيق.

التشفير المختلط باستخدام HPKE

نحن بصدد طرح واجهة موفِّر الخدمة (SPI) العامة لتنفيذ التشفير المختلط HPKE، ما يتيح إجراء اتصالات آمنة باستخدام مزيج من المفتاح العام والتشفير المتماثل (AEAD).

الاتصال والاتصالات

سجلّ مكالمات VoIP المحسّن

نقدّم ميزة إدارة الإعدادات المفضّلة للمستخدمين من أجل دمج سجلّ مكالمات VoIP في التطبيق. ويشمل ذلك إتاحة معرّفات الموارد المنتظمة (URI) لصور الأفاتار الخاصة بالمتصلين والمشاركين في تطبيق الاتصال التابع للنظام، ما يتيح للمستخدم التحكّم بشكل دقيق في خصوصية سجلّ المكالمات وتحسين العرض المرئي لسجلات مكالمات بروتوكول نقل الصوت عبر الإنترنت (VoIP) المدمجة.

تحديد مدى شبكة Wi-Fi والقرب منها

تم تحسين نطاق Wi-Fi من خلال إمكانات جديدة لرصد القرب، ما يتيح تحديد النطاق بشكل مستمر واكتشاف الأجهزة المجاورة بشكل آمن. تشمل تحديثات Wi-Fi Aware المتعلقة بتحديد المسافة واجهات برمجة تطبيقات جديدة لمعرّفات الأجهزة المتصلة وذاكرة التخزين المؤقت لمعرّف PMKID لتحديد المسافة الآمنة باستخدام معيار 11az.

أدوات المطوّرين وزيادة إنتاجيتهم

تحديثات لتطبيقات الأجهزة المصاحبة

لقد أضفنا ملفَين جديدَين إلى CompanionDeviceManager لتحسين التمييز بين الأجهزة والتعامل مع الأذونات:

  • الأجهزة الطبية: يتيح هذا الملف الشخصي لتطبيقات الأجهزة الطبية على الأجهزة الجوّالة طلب جميع الأذونات اللازمة بنقرة واحدة، ما يسهّل عملية الإعداد.
  • أجهزة تتبُّع اللياقة البدنية: يتيح ملف DEVICE_PROFILE_FITNESS_TRACKER للتطبيقات المصاحبة أن تشير بوضوح إلى أنّها تدير جهاز تتبُّع اللياقة البدنية. يضمن ذلك توفير تجارب مستخدم دقيقة باستخدام رموز مميزة مع إعادة استخدام أذونات أدوار المشاهدة الحالية.

بالإضافة إلى ذلك، يوفّر CompanionDeviceManager الآن مربّع حوار موحّدًا لربط الأجهزة وطلبات الإذن بالوصول إلى الأجهزة المجاورة. يمكنك الاستفادة من طريقة setExtraPermissions الجديدة في AssociationRequest.Builder لتجميع طلبات أذونات الأجهزة القريبة ضمن مسار الربط الحالي، ما يقلّل عدد مربّعات الحوار المعروضة للمستخدم.

بدء استخدام Android 17

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

إذا كنت مشاركًا حاليًا في برنامج الإصدار التجريبي من Android، سيتم عرض تحديث عبر شبكة غير سلكيّة للإصدار التجريبي 1.

إذا كان لديك الإصدار التجريبي من Android 26Q1 وأردت الحصول على الإصدار الثابت النهائي من 26Q1 والخروج من الإصدار التجريبي، عليك تجاهل التحديث عبر شبكة غير سلكيّة إلى الإصدار التجريبي 1 من 26Q2 وانتظار إصدار 26Q1.

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

للحصول على أفضل تجربة تطوير باستخدام Android 17، ننصحك باستخدام أحدث إصدار من استوديو Android (Panda). بعد إعداد حسابك، إليك بعض الإجراءات التي يجب اتّخاذها:

  • يمكنك تجميع الإصدارات باستخدام حزمة SDK الجديدة واختبارها في بيئات الدمج المتواصل والإبلاغ عن أي مشاكل في أداة التتبُّع على صفحة الملاحظات.
  • اختبِر تطبيقك الحالي للتأكّد من توافقه، واعرف ما إذا كان تطبيقك سيتأثر بالتغييرات في Android 17، وثبِّت تطبيقك على جهاز أو محاكي يعمل بنظام التشغيل Android 17 واختبِره بشكلٍ شامل.

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

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

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

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

تأليف:

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