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

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

مدّة القراءة: 7 دقائق
عرض الملف الشخصي لـ Matthew McCullough
Matthew McCullough نائب رئيس قسم إدارة المنتجات، مطوّر برامج Android

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

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

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

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

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

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

timeline1.png

عام من الإصدارات

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

timeline2.png

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

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

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

أهم التغييرات في الإصدار 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) من هذه القيود.

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

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

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

الأداء

‫MessageQueue بدون قفل

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

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

يقدّم Android 17 ميزة جمع البيانات المُهمَلة حسب الأجيال إلى أداة جمع البيانات المُهمَلة Concurrent Mark-Compact في ART. يؤدي هذا التحسين إلى إجراء عمليات جمع بيانات الجيل الجديد بشكل متكرر وأقل استهلاكًا للموارد، إلى جانب عمليات جمع البيانات من الذاكرة الديناميكية الكاملة، بهدف تقليل التكلفة الإجمالية لوحدة المعالجة المركزية والمدة الزمنية لعملية جمع المهملات. تتوفّر تحسينات ART أيضًا لأكثر من مليار جهاز يعمل بنظام التشغيل Android 12 (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث من خلال تحديثات نظام 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. من خلال ضبط هذا المفتاح على "تفعيل" في CaptureRequest، سيتضمّن TotalCaptureResult بيانات وصفية من هذه الكاميرات المادية النشطة الإضافية. يمكنك الوصول إلى هذه البيانات الوصفية الشاملة باستخدام TotalCaptureResult.getPhysicalCameraTotalResults() للحصول على معلومات أكثر تفصيلاً قد تتيح لك تحسين استخدام الموارد في تطبيقات الكاميرا.

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

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

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

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

تعزيز أمان الصوت في الخلفية

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

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

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

إيقاف سمة Cleartext Traffic

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

التشفير المختلط باستخدام 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 Emulator في استوديو Android.

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

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

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

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

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

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

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

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

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

من كتابة:
متابعة القراءة