Android Studio Dolphin | 2021.3.1 (سبتمبر 2022)

في ما يلي الميزات الجديدة في Android Studio Dolphin.

الجديد في Compose

في ما يلي الميزات الجديدة والتحسينات التي تم إجراؤها على Jetpack Compose في "استوديو Android".

تنسيق الصور المتحركة لإنشاء المحتوى

إذا كان يتم وصف الصور المتحركة في معاينة قابلة للتعديل، يمكنك الآن استخدام معاينة الصور المتحركة لفحصها وتنسيقها جميعًا في وقت واحد. يمكنك أيضًا تجميد صورة متحركة معينة.

ملف GIF يعرض الفحص باستخدام واجهة مستخدم "جميع الصور المتحركة"

إنشاء تعليقات توضيحية لمعاينة متعدّدة

يمكنك الآن تحديد فئة تعليق توضيحي تتضمن تعريفات معاينة متعددة واستخدام هذا التعليق التوضيحي الجديد لإنشاء هذه المعاينات في الوقت نفسه. استخدم هذا التعليق التوضيحي الجديد لمعاينة العديد من الأجهزة والخطوط والمظاهر في نفس الوقت - دون تكرار هذه التعريفات لكل مادة عرض على حدة.

واجهة المستخدم للتعليقات التوضيحية للمعاينة المتعددة

احتساب إعادة التركيب في أداة فحص التنسيق

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

يسمح لك عارض التخطيط الآن بمعرفة متى تم إعادة تركيب أو تخطي المكونات المنفصلة في التسلسل الهرمي للتخطيط. يتم عرض هذه المعلومات مباشرةً أثناء تفاعلك مع التطبيق. للبدء، تأكَّد من أنّ تطبيقك يستخدم الإصدار 1.2.0-alpha03 من ميزة "إنشاء" أو إصدارًا أحدث. وبعد ذلك، انشر تطبيقك كالمعتاد.

عدّاد المقطوعات الموسيقية والتخطي الجديد في أداة فحص التنسيق

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

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

تفعيل عدّاد الإنشاء والتخطي في أداة فحص التنسيق

تحديث مساعد إقران محاكي Wear OS

بدءًا من إصدار Android Studio Dolphin Canary 3، تم تحسين مساعد الإقران في محاكي نظام التشغيل Wear OS للاستفادة من ميزات تسهِّل إدارة أدوات محاكاة Wear OS وربطها. يمكنك الآن إجراء ما يلي:

  • يمكنك الاطّلاع على أجهزة Wear في مدير الأجهزة.
  • إقران عدة أجهزة Wear OS بهاتف افتراضي أو فعلي واحد
  • إعادة الاتصال تلقائيًا بالأجهزة التي سبق إقرانها عند إطلاقها يتذكّر الآن "استوديو Android" آخر إقران تم إعداده ويعيد إقرانه.

لاستخدام هذه الميزات الجديدة، احرص على أن تكون أدوات المحاكاة على هاتفك من المستوى 30 أو مستوى أعلى من واجهة برمجة التطبيقات وأن تكون قد تم تثبيت متجر Google Play عليها. تأكد أيضًا من أن أدوات محاكاة Wear من المستوى 28 من واجهة برمجة التطبيقات أو مستوى أعلى. للترقية إلى أحدث صور النظام للأجهزة التي تمت محاكاتها، انتقِل إلى الأدوات > مدير SDK.

لمزيد من المعلومات، يُرجى الاطّلاع على المقالة استخدام مساعد إقران محاكي Wear OS.

تم تعديل شريط أدوات محاكي Wear OS.

بدءًا من Android Studio Dolphin Canary 2، أصبح شريط أدوات المحاكي متوفرًا الآن في أدوات محاكاة Wear من المستوى 28 أو أعلى من واجهة برمجة التطبيقات، ويحتوي على أزرار تحاكي الأزرار الفعلية والإجراءات الشائعة على الجهاز. الزران الجديدان هما: الزر 1 والزر 2 (الزر 2 متاح فقط على المستوى 30 من واجهة برمجة التطبيقات أو أعلى) وزر راحة اليد وزر الإمالة. إليك بعض الإجراءات التي يمكنك تنفيذها باستخدام الأزرار الجديدة في محاكي Wear:

  • لضبط جهازك على وضع الإضاءة السينمائية، انقر على زر راحة اليد.
  • لإعادة جهازك إلى الشاشة الأخيرة التي كان عليها قبل "وضع الإضاءة السينمائية"، انقر على زر "الإمالة".

لمزيد من المعلومات، يُرجى الاطّلاع على تنفيذ الإجراءات الشائعة في المحاكي.

ارتدِ المحاكي مع أزرار خاصة بنظام التشغيل Wear OS

إعدادات جديدة لأجهزة Wear OS

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

لمزيد من المعلومات، يُرجى الاطّلاع على إعدادات تشغيل/تصحيح الأخطاء في Wear OS.

إعدادات الإطلاق الجديدة لنظام التشغيل WearOS

أداة Logcat الجديدة

تم تحديث Logcat لتسهيل عملية تحليل السجلات والاستعلام عنها وتتبُّعها.

أداة تنسيق جديدة

تعمل Logcat الآن على تنسيق السجلات لتسهيل فحص المعلومات المفيدة، مثل العلامات والرسائل، وتحديد أنواع مختلفة من السجلات، مثل التحذيرات والأخطاء.

تنسيق جديد للسجلات في Logcat

إنشاء نوافذ Logcat متعددة

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

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

إنشاء نوافذ Logcat متعددة باستخدام التقسيمات

التبديل بين الإعدادات المسبقة للعرض

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

لقطة شاشة للتبديل بين أوضاع العرض المختلفة

في الإصدار السابق من Logcat، كان لديك خيار استخدام البحث في السلاسل (مع إتاحة التعبيرات العادية) أو إنشاء فلتر جديد من خلال تعبئة حقول متعدّدة باستخدام واجهة مستخدِم Logcat. جعل الخيار الأول البحث أكثر تعقيدًا والخيار الثاني جعل مشاركة وإعداد الاستعلامات أكثر صعوبة. لقد بسّطنا التجربة الآن من خلال تقديم عمليات البحث ذات القيمة الأساسية مباشرةً من حقل طلب البحث الرئيسي.

لقطة شاشة لبنية طلب البحث الجديدة مع ميزة الإكمال التلقائي

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

  • معرّفات PID لمشروع التطبيق المحلي: package:mine
  • قيم محدّدة:
    • package:<package-ID>
    • tag:<tag>
    • level:[VERBOSE | INFO | ASSERT |DEBUG | WARN | ERROR ]
  • استبعاد قيمة معيّنة عن طريق إضافة قيمة سابقة للمفتاح بـ -:
    • -tag:<exclude-tag>
  • استخدام التعبيرات العادية مع مفتاح معيّن من خلال وضع العلامة ~ بعد المفتاح:
    • tag~:<regular-expression-tag>
    • دمج مع علامة الاستبعاد: -tag~:<exclude-regular-expression-tag>

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

سجلّ طلبات البحث للقطة الشاشة مع العناصر المفضّلة

تتبُّع السجلات المتعلّقة بأعطال التطبيق أو عمليات إعادة تشغيله

تُسهّل أداة Logcat الجديدة الآن تتبُّع السجلات من تطبيقك على مستوى حالات تعطُّل التطبيق وإعادة تشغيله، حتى لا تفوتك السجلات المهمة في هذه الأحداث. عندما تلاحظ أداة Logcat إيقاف العملية وإعادة تشغيلها، ستظهر لك رسالة في الإخراج، مثل PROCESS ENDED وPROCESS STARTED، كما هو موضَّح أدناه:

لقطة شاشة تُظهر عملية إعادة تشغيل العملية في Logcat

تحافظ إعادة تشغيل Logcat على إعدادات الجلسة، مثل تقسيم علامات التبويب والفلاتر وخيارات العرض، وذلك حتى تتمكّن من متابعة الجلسة بسهولة.

الأجهزة المُدارة من خلال Gradle

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

تتيح هذه الميزة لـ Gradle إمكانية رؤية الاختبارات التي تجريها ليس فقط، ولكن أيضًا دورة حياة الأجهزة، وبالتالي تحسين جودة تجربة الاختبار بالطرق التالية:

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

علاوة على ذلك، تقدّم أجهزة Gradle المُدارة نوعًا جديدًا من أجهزة المحاكاة، يُعرف باسم أجهزة الاختبار الآلي، وقد تم تحسينه لتحسين الأداء عند إجراء اختبارات قياس الأداء. إلى جانب إتاحة تقسيم الاختبار إلى أجزاء، يمكنك تجربة تقسيم مجموعة الاختبار على عدّة مثيلات ATD من أجل تقليل المدة الإجمالية لتنفيذ الاختبار. لمعرفة المزيد من المعلومات عن أجهزة Gradle المُدارة والميزات المرتبطة بها، يمكنك الاطّلاع على توسيع نطاق الاختبارات باستخدام أجهزة Gradle المُدارة.

دعم R8 باستخدام ملفات تعيين استنادًا إلى إزاحة تعليمات DEX

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

بالإضافة إلى ذلك، تتوافق الأجهزة الافتراضية التي تعمل بنظام التشغيل Android بدايةً من O (مستوى واجهة برمجة التطبيقات 26) مع إزاحة تعليمات الطباعة في تتبُّع تسلسل استدعاء الدوال البرمجية إذا لم تحتوِ الطريقة على معلومات رقم السطر. عند التحويل باستخدام minSdk 26 أو إصدار أعلى، وبدون معلومات الملف المصدر، تزيل R8 معلومات رقم السطر بالكامل.

لم تعد سلالة "لامبدا" التي لا تحمل حالة تاجر "أحاديث" مفردة

ولم يعد يتم تخصيص سيارات lambda التي لا تحمل حالة كأحاديث مفردة عند إزالة التجميع. يضيف التمثيل كوحدات مفردة تونسيًا مقدارًا زائدًا من حجم التعليمات البرمجية بسبب الحقل المضاف ومُهيئ الفئة، بالإضافة إلى النفقات العامة للشركات الناشئة، بسبب الإعداد الثابت للفئة. يتم الآن تخصيص ملفات lambda التي لا تحمل حالة بيانات عند الاستخدام للمواقع الإلكترونية بالطريقة نفسها التي يتم بها تخصيص ملفات lambda (Labda) المعتمِدة على البيانات (lambda مع الالتقاطات).

واجهة برمجة التطبيقات R8 تتجنّب حدوث بطء عملية التحقّق في أوقات تشغيل Android

للتخلص من مشاكل الأداء على أوقات تشغيل Android (Dalvik وART)، يقدم الآن الإصدار R8 (وليس D8) رموز المكتبة وتحدد طلبات البيانات لفئات المكتبة وطرقها التي قد لا تكون موجودة في وقت التشغيل. يؤدي ذلك إلى إزالة العديد من مشكلات التحقق وتحسين أداء وقت التشغيل. يتم تفعيل هذه الميزة دائمًا.

دعم واجهات برمجة تطبيقات JDK-11 من خلال إزالة المحتوى من واجهة برمجة التطبيقات Java 8+

عند استخدام تبعية CoreLibraryDesugaring، يتوفر الآن دعم لمكتبة تنفيذ تستند إلى JDK-11. اطّلِع علىdesugar_jdk_libs سجلّ التغييرات للحصول على مزيد من المعلومات.

إصدارات التصحيح

في ما يلي قائمة بإصدارات التصحيح في Android Studio Dolphin.

Android Studio Dolphin | 2021.3.1 Patch 1 (تشرين الأول/أكتوبر 2022)

مع إصدار تصحيح 1، أصبح Android Studio Dolphin متوافقًا الآن مع المكوّن الإضافي Kotlin 1.7.20. يتضمّن هذا التحديث الثانوي أيضًا إصلاحات الأخطاء التالية:

المشاكل التي تم إصلاحها
المكوّن الإضافي لنظام Gradle المتوافق مع Android
يتعذّر تنفيذ اختبارات Android التي تم إجراؤها على الأجهزة من خلال التدرج في تطبيق إزالة الدرجات اللونية بشكل صحيح.
يوقف AGP 7.3.0 مزامنة درجات الحرارة لمشاريع النظام الأساسي غرال
Dexer (D8)
إضافة واجهة برمجة تطبيقات عامة لحل التعارضات عند دمج DEX (بالنسبة إلى bazel للسماح بفئات مكرّرة)
الاستيراد/المزامنة
تعذُّر استيراد مشروع Gradle بعد الترقية من Chipmunk Patch 2 (2021.2.1)
المراجع
NPE في AarResourceRepositoryCache.createCachingData (AS Dolphin+)
Shrinker (R8)
لا يتم نسخ البيانات الوصفية للغة Kotlin عند استبدال الحقول حسب النوع.
تحويل غير متوقع للنوع غير الدقيق: أعلى (كل شيء)
يتسبب Gradle 7.3.0 في حدوث خطأ في إصدار حزمة APK com.android.tools.r8.CompilationتعذّرException
إزالة الإنشاءات التلقائية غير المتوافقة في وضع التوافق.
تعارض مع JetBrains Markdown
دعم ThreadLocal.withFirst(java.util.function.Supplier
AGP 7.3 يُنشئ dex للفئات التي تحتوي على دالة إنشائية معطّلة
هناك محاولة غير متوقعة لتحديد ما إذا كان الرمز الذي ليس CF بحاجة إلى إزالة.
خطأ تحقق من ktor
قيمة غير محددة تم العثور عليها أثناء التحويل البرمجي الذي يتم طرحه عند معالجة okio-jvm 3.2.0
فشل التحويل في التجميع من كائن تضمين الفئة مع المثيل غير المباشر من المستخدمين
java.lang.legalAccessError مع R8 3.3.75