أصدر Android 16 QPR2 استقرار النظام الأساسي اليوم مع Beta 2! هذا يعني أن سطح API مغلق ، والسلوكيات التي تواجه التطبيق نهائي ، بحيث يمكنك دمجها في تطبيقاتك والاستفادة من أحدث ابتكاراتنا للمنصة.
جديد في بيتا QPR2

في هذه المرحلة اللاحقة في دورة التطوير ، نركز على العمل الحاسم المتمثل في تسهيل المنصة للإصدار. فيما يلي التغييرات القليلة المؤثرة التي نريد تسليط الضوء عليها:
اختبار التحقق من المطور
لحماية مستخدمي Android بشكل أفضل من المجرمين المتكررين ، يقدم Android التحقق من المطور ، وهو متطلب جديد لجعل تثبيت التطبيق أكثر أمانًا عن طريق منع انتشار البرامج الضارة والاحتيال. ابتداءً من سبتمبر 2026 وفي مناطق محددة ، سيتطلب Android أن يتم تسجيل تطبيقات من قبل المطورين الذين تم التحقق منها على أجهزة Android معتمدة ، مع استثناء تم إجراؤه للتثبيتات من خلال جسر Debug Android (ADB).
بصفتك مطورًا ، فأنت حر في تثبيت التطبيقات دون التحقق باستخدام ADB ، بحيث يمكنك متابعة اختبار التطبيقات غير المقصودة أو غير مستعدة بعد للتوزيع على السكان المستهلكين الأوسع.
بالنسبة للتطبيقات التي تتيح التثبيت الذي بدأه المستخدم لحزم التطبيقات ، يحتوي Android 16 QPR2 Beta 2 على واجهات برمجة التطبيقات الجديدة التي تدعم التحقق من المطور أثناء التثبيت ، إلى جانب أمر ADB جديد للسماح لك بفرض نتائج التحقق لأغراض الاختبار.
adb shell pm set-developer-verification-result
باستخدام هذا الأمر ، (انظر قذيفة ADB مساءً مساعدة للحصول على التفاصيل الكاملة) يمكنك الآن محاكاة فشل التحقق. يتيح لك ذلك فهم تجربة المستخدم من طرف إلى طرف لكل من التحقق الناجح وغير الناجح ، حتى تتمكن من التحضير وفقًا لذلك قبل بدء التنفيذ.
نحن نشجع جميع المطورين الذين يوزعون التطبيقات على أجهزة Android المعتمدة للتسجيل للوصول المبكر للاستعداد والبقاء محدثين.
SMS حماية OTP
سيتم تأخير تسليم الرسائل التي تحتوي على تجزئة SMS Retriever لمعظم التطبيقات لمدة ثلاث ساعات للمساعدة في منع اختطاف OTP. سيتم حجب بث RESET_SMS وسيتم ترشيح استعلامات قاعدة بيانات مقدمي الرسائل القصيرة. ستكون الرسائل القصيرة متاحة لهذه التطبيقات بعد تأخير ثلاث ساعات.
سيتم إعفاء بعض التطبيقات مثل الرسائل القصيرة الافتراضية ، والمساعد ، وتطبيقات الاتصال ، إلى جانب رفيق الجهاز المتصل ، وتطبيقات النظام ، وما إلى ذلك من هذا التأخير ، ويمكن أن تستمر التطبيقات في استخدام واجهة برمجة تطبيقات SMS للوصول إلى الرسائل المخصصة لها في الوقت المناسب.
أشكال أيقونة التطبيق المخصصة


يتيح Android 16 QPR2 للمستخدمين الاختيار من قائمة أشكال الأيقونات التي تنطبق على جميع أيقونات التطبيق ومعاينات المجلد. تحقق للتأكد من أن أيقونة التكييف تعمل بشكل جيد مع أي شكل يحدده المستخدم.
مجموعة القمامة أكثر كفاءة
يشتمل وقت تشغيل Android (ART) الآن على جامع القمامة المتزامن للأجيال (CMC) في Android 16 QPR2 الذي يركز جهود الجمع على الأشياء المخصصة حديثًا ، والتي من المرجح أن تكون القمامة. يمكنك توقع انخفاض استخدام وحدة المعالجة المركزية من مجموعة Garbage ، وتجربة مستخدم أكثر سلاسة مع أقل من Jank ، وتحسين كفاءة البطارية.
تتبع الخطوة الأصلية وبيانات التمرين الموسعة في Health Connect
يتتبع Health Connect الآن الخطوات تلقائيًا باستخدام مستشعرات الجهاز. إذا كان تطبيقك يحتوي على read_steps إذن ، ستكون هذه البيانات متاحة من حزمة “Android”. لا يقتصر هذا على تبسيط الكود اللازم للقيام بتتبع الخطوة ، بل إنه أكثر كفاءة في الطاقة أيضًا.
أيضا ، و تمرين و تمارين تم تحديث أنواع البيانات. يمكنك الآن تسجيل وقراءة الوزن ، وضبط الفهرس ، ومعدل المجهود المتصور (RPE) لشرائح التمرين. نظرًا لأن Health Connect يتم تحديثها بشكل مستقل عن النظام الأساسي ، فإن التحقق من توفر الميزات قبل كتابة البيانات سيضمن التوافق مع الإصدار المحلي الحالي من Health Connect.
// Check if the expanded exercise features are available val newFieldsAvailable = healthConnectClient.features.getFeatureStatus( HealthConnectFeatures.FEATURE_EXPANDED_EXERCISE_RECORD ) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE val segment = ExerciseSegment( //... // Conditionally add the new data fields weight = if (newFieldsAvailable) Mass.fromKilograms(50.0) else null, setIndex = if (newFieldsAvailable) 1 else null, rateOfPerceivedExertion = if (newFieldsAvailable) 7.0f else null )
نسخة صغيرة من SDK
يمثل QPR2 أول إصدار Android مع إصدار SDK صغير مما يتيح لنا الابتكار بسرعة أكبر مع واجهات برمجة تطبيقات جديدة منصة تم توفيرها خارج الجدول الزمني المعتاد مرة واحدة. على عكس إصدار النظام الأساسي الرئيسي (Android 16) في 2025-Q2 والذي شمل تغييرات السلوك التي تؤثر على توافق التطبيق ، فإن التغييرات في هذا الإصدار مضافة إلى حد كبير ومصممة لتقليل الحاجة إلى اختبار تطبيق إضافي.

يمكن للتطبيق الخاص بك الاتصال بأمان واجهات برمجة التطبيقات الجديدة على الأجهزة التي تتوفر فيها باستخدام sdk_int_full والقيمة المعنية من version_codes_full تعداد.
if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { // Call new APIs from the Android 16 QPR2 release }
يمكنك أيضا استخدام build.getMinorsDkversion () طريقة للحصول على رقم إصدار SDK الصغرى.
val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)
الأصل version_codes لا يزال من الممكن استخدام التعداد للمقارنة مع sdk_int تم إعلان تعداد واجهات برمجة التطبيقات في الإصدارات غير الصغيرة.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA) { // Call new APIs from the Android 16 release }
نظرًا لأن الإصدارات البسيطة لا تهدف إلى إجراء تغييرات في سلوك كسر ، فلا يمكن استخدامها في يستخدم سمات SDK الواضحة.
ابدأ مع الإصدار التجريبي Android 16 QPR2
يمكنك تسجيل أي جهاز Pixel المدعوم للحصول على هذا وتحديثات Beta المستقبلية Android Beta. إذا لم يكن لديك جهاز بكسل ، فيمكنك استخدام صور النظام 64 بت مع محاكي Android في Android Studio. إذا كنت بالفعل في برنامج Android Beta ، فسيتم تقديم تحديث عبر الهواء إلى Beta 2. سنقوم بتحديث صور النظام و SDK بانتظام خلال دورة إصدار Android 16 QPR2.
إذا كنت في برنامج Canary وترغب في إدخال برنامج BETA ، فستحتاج إلى مسح جهازك وفلاشه يدويًا إلى إصدار بيتا.
للحصول على أفضل تجربة تطوير مع Android 16 QPR2 ، نوصيك باستخدام أحدث إصدار من Canary of Android Studio Narwhal Drop.
نحن نبحث عن ملاحظاتك ، لذا يرجى الإبلاغ عن المشكلات وتقديم طلبات الميزات على صفحة التعليقات. كلما حصلنا في وقت مبكر على ملاحظاتك ، كلما كان بإمكاننا تضمينه في عملنا في الإصدار النهائي. شكرًا لك على المساعدة في تشكيل مستقبل منصة Android.

