إصدارات قديمة

في ما يلي ملاحظات إصدار "استوديو Android" 3.6 والإصدارات الأقدم، و"المكوّن الإضافي لنظام Gradle المتوافق مع Android" 3.6.0 والإصدارات الأقدم.

الإصدارات القديمة من "استوديو Android"

‫3.6 (شباط/فبراير 2020)

‫Android Studio 3.6 هو إصدار رئيسي يتضمّن مجموعة متنوعة من الميزات الجديدة والتحسينات.

ونودّ أيضًا أن نشكر جميع المساهمين في المنتدى الذين ساعدوا في هذا الإصدار.

‫3.6.3 (نيسان/أبريل 2020)

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

3.6.2 (مارس 2020)

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

‫3.6.1 (فبراير 2020)

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

أدوات التصميم

يتضمّن هذا الإصدار من "استوديو Android" تحديثات للعديد من أدوات التصميم، بما في ذلك "محرّر التصميم" و"أداة إدارة الموارد".

العرض المقسّم والتكبير في أدوات تصميم المحتوى

يعرض "العرض المقسّم" كلاً من عرض التصميم وعرض النص في الوقت نفسه

يتضمّن هذا الإصدار التعديلات التالية على أدوات تعديل التصميم المرئي:

  • توفّر أدوات تعديل التصميم، مثل "أداة تعديل التنسيق" و"أداة تعديل التنقّل"، الآن طريقة عرض مقسّمة تتيح لك الاطّلاع على كل من طريقتَي عرض التصميم والرمز لواجهة المستخدم في الوقت نفسه. في أعلى يسار نافذة المحرّر، تظهر الآن ثلاثة أزرار عرض الرموز للتبديل بين خيارات العرض:

    • لتفعيل وضع "تقسيم الشاشة"، انقر على رمز التقسيم رمز تقسيم العرض.
    • لتفعيل عرض مصدر XML، انقر على رمز المصدر رمز عرض المصدر.
    • لتفعيل "طريقة عرض التصميم"، انقر على رمز التصميم رمز طريقة عرض التصميم.
  • تم نقل عناصر التحكّم في التكبير والتصغير والتحريك داخل أدوات تعديل التصميم إلى لوحة عائمة في أسفل يسار نافذة أداة التعديل.

لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء واجهة مستخدم باستخدام "أداة تعديل التنسيق".

علامة التبويب "أداة اختيار الألوان"

لمساعدتك في تعديل قيم موارد الألوان في تطبيقك بسرعة عند استخدام أداة اختيار الألوان في ملف XML أو أدوات التصميم، تملأ بيئة التطوير المتكاملة الآن قيم موارد الألوان نيابةً عنك.

علبة الألوان مع قيم الألوان التي تم ملؤها

Resource Manager

يتضمّن "مدير الموارد" التعديلات التالية:

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

لمزيد من المعلومات، اطّلِع على إدارة موارد واجهة المستخدم لتطبيقك باستخدام "أداة إدارة الموارد".

تعديلات على "المكوّن الإضافي لنظام Gradle المتوافق مع Android"

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

عرض عملية الربط

تتيح لك ربط العرض كتابة رموز برمجية تتفاعل مع طرق العرض بسهولة أكبر من خلال إنشاء فئة ربط لكل ملف تخطيط XML. تحتوي هذه الفئات على مراجع مباشرة إلى جميع طرق العرض التي تتضمّن معرّفًا في التصميم المقابل.

وبما أنّها تحلّ محل findViewById()، فإنّ ميزة ربط العرض تتجنّب خطر حدوث استثناءات مؤشر فارغ ناتجة عن معرّف عرض غير صالح.

لتفعيل ميزة "ربط العرض"، عليك استخدام الإصدار 3.6.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android أو إصدار أحدث، وتضمين ما يلي في ملف build.gradle لكل وحدة:

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

تطبيق التغييرات

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

لمزيد من المعلومات عن الفرق بين هذين الإجراءَين، يُرجى الاطّلاع على تطبيق التغييرات.

إعادة تصميم خيار القائمة لتفعيل ميزة "التطبيقات الفورية"

يمكنك الآن تفعيل الوحدة الأساسية على الفور في أي وقت بعد إنشاء مشروع تطبيقك باتّباع الخطوات التالية:

  1. افتح لوحة المشروع (Project) من خلال اختيار عرض (View) > نوافذ الأدوات (Tool Windows) > المشروع (Project) من شريط القوائم.
  2. انقر بزر الماوس الأيمن على الوحدة الأساسية، والتي يُطلق عليها عادةً اسم "التطبيق" (app)، ثم اختَر إعادة تصميم > تفعيل دعم التطبيقات الفورية.
  3. في مربّع الحوار الذي يظهر، اختَر الوحدة الأساسية من القائمة المنسدلة.
  4. انقر على موافق.

ملاحظة:تمت إزالة خيار التفعيل الفوري لوحدة تطبيقك الأساسية من معالج إنشاء مشروع جديد.

لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على ميزة "التطبيقات الفورية على Google Play".

إزالة التشويش عن رمز بايت الخاص بالفئات والطُرق في "أداة تحليل ملفات APK"

عند استخدام أداة تحليل حِزم APK لفحص ملفات DEX، يمكنك إزالة تشويش الرمز الثانوي لفئة وطريقة على النحو التالي:

  1. اختَر إنشاء > تحليل حزمة APK من شريط القوائم.
  2. في مربّع الحوار الذي يظهر، انتقِل إلى حزمة APK التي تريد فحصها واختَرها.
  3. انقر على فتح.
  4. في "أداة تحليل حِزم APK"، اختَر ملف DEX الذي تريد فحصه.
  5. في عارض ملفات DEX، حمِّل ملف ربط ProGuard لحزمة APK التي تحلّلها.
  6. انقر بزرّ الماوس الأيمن على الفئة أو الطريقة التي تريد فحصها واختَر عرض رمز البايت.

أدوات مدمجة

تتيح التحديثات التالية تطوير التطبيقات بلغة C/C++ في "استوديو Android".

التوافق مع Kotlin

تتوفّر الآن أيضًا ميزات NDK التالية في "استوديو Android"، والتي كانت متاحة سابقًا في Java، في Kotlin:

  • الانتقال من تعريف JNI إلى دالة التنفيذ المقابلة في C/C++: يمكنك عرض عملية الربط هذه من خلال تمرير مؤشر الماوس فوق علامة عنصر C أو C++ بالقرب من رقم السطر في ملف رمز المصدر المُدار.

  • إنشاء دالة تنفيذية تلقائيًا لتعريف JNI حدِّد تعريف JNI أولاً، ثم اكتب "jni" أو اسم الطريقة في ملف C/C++ لتفعيلها.

  • يتم تمييز الدوال الأصلية غير المستخدَمة كتحذير في الرمز المصدري. يتم أيضًا تمييز تعريفات JNI التي لا تتضمّن عمليات تنفيذ على أنّها خطأ.

  • عند إعادة تسمية (إعادة هيكلة) دالة تنفيذ أصلية، يتم تعديل جميع تعريفات JNI ذات الصلة. أعِد تسمية تعريف JNI لتعديل وظيفة التنفيذ الأصلية.

  • التحقّق من التوقيعات لعمليات تنفيذ JNI المرتبطة ضمنيًا

تحسينات أخرى على JNI

يتيح محرّر الرموز البرمجية في "استوديو Android" الآن سير عمل أكثر سلاسة لتطوير JNI، بما في ذلك تلميحات محسّنة بشأن الأنواع، والإكمال التلقائي، وعمليات الفحص، وإعادة تصميم الرموز البرمجية.

إعادة تحميل حِزم APK للمكتبات المجمّعة من الرموز البرمجية الأصلية {:#3.6-reload-apk}

لم يعُد عليك إنشاء مشروع جديد عند تعديل حزمة APK في مشروعك خارج بيئة التطوير المتكاملة. يرصد Android Studio التغييرات في حزمة APK ويتيح لك إعادة استيرادها.

إرفاق مصادر حِزم APK التي تتضمّن لغة Kotlin فقط

أصبح بإمكانك الآن إرفاق مصادر حِزم APK خارجية بلغة Kotlin فقط عند إنشاء ملف تعريف وتصحيح أخطاء حِزم APK المُنشأة مسبقًا. لمزيد من المعلومات، يُرجى الاطّلاع على إرفاق مصادر Kotlin/Java.

رصد تسرُّب الذاكرة في "محلّل الذاكرة"

عند تحليل تفريغ الذاكرة المؤقتة في "أداة فحص الذاكرة"، يمكنك الآن فلترة بيانات تحديد الأداء التي يعتقد Android Studio أنّها قد تشير إلى تسرُّب الذاكرة في مثيلات Activity وFragment في تطبيقك.

تشمل أنواع البيانات التي يعرضها الفلتر ما يلي:

  • مثيلات Activity التي تم إتلافها ولكن لا يزال يتم الرجوع إليها.
  • Fragment مثيلات لا تحتوي على FragmentManager صالح ولكن لا يزال يتم الرجوع إليها.

إرفاق مصادر حِزم APK التي تتضمّن لغة Kotlin فقط

أصبح بإمكانك الآن إرفاق مصادر حِزم APK خارجية بلغة Kotlin فقط عند إنشاء ملف تعريف وتصحيح أخطاء حِزم APK المُنشأة مسبقًا. لمزيد من المعلومات، يُرجى الاطّلاع على إرفاق مصادر Kotlin/Java.

رصد تسرُّب الذاكرة في "محلّل الذاكرة"

عند تحليل تفريغ الذاكرة المؤقتة في "أداة فحص الذاكرة"، يمكنك الآن فلترة بيانات تحديد الأداء التي يعتقد Android Studio أنّها قد تشير إلى تسرُّب الذاكرة في مثيلات Activity وFragment في تطبيقك.

تشمل أنواع البيانات التي يعرضها الفلتر ما يلي:

  • مثيلات Activity التي تم إتلافها ولكن لا يزال يتم الرجوع إليها.
  • Fragment مثيلات لا تحتوي على FragmentManager صالحة ولكن لا يزال يتم الرجوع إليها.

في بعض الحالات، مثل ما يلي، قد يؤدي الفلتر إلى نتائج موجبة خاطئة:

  • تم إنشاء Fragment ولكن لم يتم استخدامه بعد.
  • يتم تخزين Fragment مؤقتًا ولكن ليس كجزء من FragmentTransaction.

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

Profiler: رصد تسرُّب الذاكرة

تصفية نَسْخ ذاكرة بحثًا عن تسربات الذاكرة

المحاكيات

يساعدك الإصدار 3.6 من "استوديو Android" في الاستفادة من العديد من التحديثات المضمّنة في الإصدار 29.2.7 من "محاكي Android" والإصدارات الأحدث، كما هو موضّح أدناه.

تحسين إمكانية استخدام الموقع الجغرافي

يتيح الإصدار 29.2.7 من Android Emulator والإصدارات الأحدث إمكانية محاكاة إضافية لإحداثيات نظام تحديد المواقع العالمي (GPS) ومعلومات المسار. عند فتح عناصر التحكّم الموسّعة في المحاكيات، يتم الآن تنظيم الخيارات في علامة التبويب "الموقع الجغرافي" ضمن علامتَي تبويب: نقاط فردية ومسارات.

نقاط فردية

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

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

علامة التبويب "نقاط اللمس الفردية" في "عناصر التحكّم الموسّعة في المحاكي".

مسارات الرحلة

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

  1. في عرض الخريطة، استخدِم حقل النص للبحث عن الوجهة الأولى في مسارك.
  2. اختَر الموقع الجغرافي من نتائج البحث.
  3. انقر على الزر التنقّل.
  4. اختَر نقطة بداية مسارك من الخريطة.
  5. (اختياري) انقر على إضافة وجهة لإضافة محطات إضافية إلى مسارك.
  6. احفظ مسارك من خلال النقر على حفظ المسار في عرض الخريطة.
  7. حدِّد اسمًا للمسار وانقر على حفظ.

لمحاكاة المحاكي وهو يتّبع المسار الذي حفظته، اختَر المسار من قائمة المسارات المحفوظة وانقر على تشغيل المسار بالقرب من أسفل يسار نافذة عناصر التحكّم الموسّعة. لإيقاف المحاكاة، انقر على إيقاف المسار.

علامة التبويب "المسارات" في "عناصر التحكّم الموسّعة في المحاكي".

لتشغيل المحاكي بشكل متواصل على المسار المحدّد، فعِّل المفتاح بجانب تكرار التشغيل. لتغيير سرعة اتّباع المحاكي للمسار المحدّد، اختَر خيارًا من القائمة المنسدلة سرعة التشغيل.

دعم الشاشات المتعددة

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

  1. افتح عناصر التحكّم الموسّعة وانتقِل إلى علامة التبويب الشاشات.

  2. أضِف شاشة عرض أخرى من خلال النقر على إضافة شاشة عرض ثانوية.

  3. من القائمة المنسدلة ضمن الشاشات الثانوية، نفِّذ أحد الإجراءات التالية:

  4. اختيار إحدى نِسب العرض إلى الارتفاع المُعدّة مسبقًا

  5. اختَر مخصّص واضبط الارتفاع والعرض وعدد النقاط في البوصة لشاشتك المخصّصة.

  6. (اختياري) انقر على إضافة شاشة عرض ثانوية لإضافة شاشة عرض ثالثة.

  7. انقر على تطبيق التغييرات لإضافة الشاشات المحدّدة إلى الجهاز الافتراضي قيد التشغيل.

إضافة شاشات متعددة إلى علامة التبويب "شاشة أدوات التحكّم الموسّعة في المحاكي"

أجهزة افتراضية ونماذج مشاريع جديدة لنظام التشغيل Android Automotive

عند إنشاء مشروع جديد باستخدام "استوديو Android"، يمكنك الآن الاختيار من بين ثلاثة نماذج من علامة التبويب السيارات في معالج إنشاء مشروع جديد: بدون نشاط وخدمة الوسائط وخدمة المراسلة. بالنسبة إلى المشاريع الحالية، يمكنك إضافة دعم لأجهزة Android Automotive من خلال اختيار ملف (File) > جديد (New) > وحدة جديدة (New Module) من شريط القوائم، ثم اختيار وحدة Automotive (Automotive Module). بعد ذلك، يرشدك معالج إنشاء وحدة جديدة خلال عملية إنشاء وحدة جديدة باستخدام أحد نماذج مشاريع Android Automotive.

اختيار نموذج مشروع Android Automotive.

بالإضافة إلى ذلك، يمكنك الآن إنشاء جهاز Android افتراضي (AVD) لأجهزة Android Automotive من خلال اختيار أحد الخيارات التالية في علامة التبويب Automotive ضمن معالج إعداد الجهاز الافتراضي.

  1. Polestar 2: أنشئ جهاز AVD يحاكي وحدة رأس Polestar 2.
  2. السيارات (صورة أفقية بدقة 1024 بكسل): يمكنك إنشاء جهاز Android الافتراضي (AVD) لوحدات رأس Android Automotive العامة التي تبلغ دقتها 1024 × 768 بكسل.

اختيار جهاز Android Automotive افتراضي.

عمليات تنزيل حِزم SDK يمكن استئنافها

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

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

مهمة تنزيل في الخلفية تظهر في شريط الحالة مع عناصر تحكّم جديدة تتيح لك إيقاف التنزيل مؤقتًا أو استئنافه

مهمة تنزيل في الخلفية تظهر في شريط الحالة مع عناصر تحكّم جديدة تتيح لك إيقاف التنزيل مؤقتًا أو استئنافه

إيقاف Win32 نهائيًا

لن يتلقّى إصدار 32 بت من "استوديو Android" على نظام التشغيل Windows أي تحديثات بعد كانون الأول (ديسمبر) 2019، ولن يتلقّى أي دعم بعد كانون الأول (ديسمبر) 2020. يمكنك مواصلة استخدام "استوديو Android". ومع ذلك، لتلقّي تحديثات إضافية، عليك ترقية محطة العمل إلى إصدار 64 بت من نظام التشغيل Windows.

لمزيد من المعلومات، يُرجى قراءة مدونة إيقاف إصدار Windows ذي 32 بت نهائيًا.

خيار جديد لتحسين مدة مزامنة Gradle

في الإصدارات السابقة، كان "استوديو Android" يسترد قائمة بجميع مهام Gradle أثناء عملية "مزامنة Gradle". في المشاريع الكبيرة، قد يؤدي استرداد قائمة المهام إلى بطء عملية المزامنة.

لتحسين أداء "مزامنة Gradle"، انتقِل إلى ملف (File) > الإعدادات (Settings) > تجريبي (Experimental) واختَر "عدم إنشاء قائمة مهام Gradle أثناء مزامنة Gradle" (Do not build Gradle task list during Gradle sync).

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

موقع جغرافي جديد لتفعيل وضع عدم الاتصال بالإنترنت في Gradle

لتفعيل وضع عدم الاتصال بالإنترنت في Gradle أو إيقافه، عليك أولاً اختيار عرض > نوافذ الأدوات > Gradle من شريط القوائم. بعد ذلك، انقر على تبديل الوضع بلا إنترنت زر Gradle بلا إنترنت في لوحة Gradle بالقرب من أعلى نافذة Gradle.

‫IntelliJ IDEA 2019.2

تم تعديل بيئة التطوير المتكاملة الأساسية في "استوديو Android" من خلال تحسينات من IntelliJ IDEA في الإصدار 2019.2.

لمزيد من المعلومات حول التحسينات من إصدارات IntelliJ الأخرى التي تم تضمينها بشكل تراكمي مع الإصدار 2019.2، راجِع الصفحات التالية:

المساهمون في المنتدى

نشكر جميع المساهمين في المنتدى الذين ساعدونا في رصد الأخطاء والطرق الأخرى لتحسين الإصدار 3.6 من "استوديو Android". ونودّ بشكل خاص توجيه الشكر إلى المستخدمين التاليين الذين أبلغوا عن أخطاء:

  • ألبرت لو
  • أليكسي روت
  • أندريا ليغانزا
  • بنديكت كولب
  • سيزار بويرتا
  • Curtis Kroetsch
  • داميان فيتشوريك
  • دان ليو
  • ديفيد بورستروم
  • Deepanshu
  • إيغور أندرييفيتشي
  • إيلي غرابير
  • إمين كوكالاري
  • إيفان تاتاركا
  • Frantisek Nagy
  • غريغ موينز
  • هانس أشلايتنر
  • هانس بيتر إيدي
  • Henning Bunk
  • Hugo Visser
  • إيغور إسكودرو
  • إيناكي فيلار
  • جافينتيرا لييناتا
  • جو روجرز
  • كريستوفر دانييلسون
  • ليران بارسيسا
  • Louis CAD
  • لورانت بينتر
  • لوكاس واسيلكوفسكي
  • Luke Fielke
  • مالفين سوتانتو
  • ماساتوشي كوبودي
  • ماثيو وينترز
  • مايكل بيلي
  • Michał Górny
  • ميهائي نياكسو
  • مايك سكاميل
  • Monte Creasor
  • نيلسون أوساكي
  • نيلسون أوساكي
  • نيك فيرماني
  • نيكلاس أنسمان غيرتز
  • نيكلاس كرون
  • نيكولاس ليشتماير
  • Niek Haarman
  • نيلز فان هوف
  • نيكلاس باودي
  • Renato Goncalves
  • Roar Grønmo
  • روسلان باراتوف
  • سنان كوزاك
  • سلافومير تشيرفينسكي
  • ستيفان وولف
  • ستيفن داميكو
  • تاو وانغ
  • توماس تشلاديك
  • Tomáš Procházka
  • توني روباليك
  • Torbjørn Sørli
  • وارن هي
  • Yenchi Lin
  • زك سوييرز
  • ‫3.5 (أغسطس 2019)

    الإصدار 3.5 من "استوديو Android" هو إصدار رئيسي وهو نتيجة لمشروع Marble. بدأت مبادرة Project Marble مع إصدار Android Studio 3.3، وقد شملت عدة إصدارات تركّز على تحسين ثلاثة جوانب رئيسية في بيئة التطوير المتكاملة، وهي: حالة النظام وتحسين الميزات وإصلاح الأخطاء.

    للحصول على معلومات حول هذه التعديلات وغيرها من تعديلات Project Marble، يمكنك الاطّلاع على مشاركة المدونة على "مطوّرو تطبيقات Android" أو الأقسام أدناه.

    ونريد أيضًا أن نشكر جميع المساهمين في المنتدى الذين ساعدوا في إطلاق هذا الإصدار.

    3.5.3 (ديسمبر 2019)

    يتضمّن هذا التحديث البسيط إصلاحات متنوعة للأخطاء وتحسينات في الأداء.

    ‫3.5.2 (تشرين الثاني/نوفمبر 2019)

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

    ‫3.5.1 (تشرين الأول/أكتوبر 2019)

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

    ‫Project Marble: حالة النظام

    يوضّح هذا القسم التغييرات التي تم إجراؤها في Android Studio 3.5 والتي تركّز على تحسين سلامة النظام.

    إعدادات الذكريات المقترَحة

    يُعلمك "استوديو Android" الآن إذا رصد إمكانية تحسين الأداء من خلال زيادة الحد الأقصى لمقدار ذاكرة الوصول العشوائي التي يجب أن يخصّصها نظام التشغيل لعمليات "استوديو Android"، مثل حزمة تطوير البرامج المتكاملة الأساسية وخدمة Gradle وخدمة Kotlin. يمكنك إما قبول الإعدادات المقترَحة من خلال النقر على رابط الإجراء في الإشعار، أو يمكنك تعديل هذه الإعدادات يدويًا من خلال اختيار ملف > الإعدادات (أو استوديو Android > الإعدادات المفضّلة على نظام التشغيل macOS)، ثم العثور على قسم إعدادات الذاكرة ضمن المظهر والسلوك > إعدادات النظام. لمزيد من المعلومات، اطّلِع على الحد الأقصى لحجم الذاكرة المؤقتة.

    إشعار بشأن إعدادات الذكريات المقترَحة

    إشعار بشأن إعدادات الذكريات المقترَحة

    تقرير استخدام الذاكرة

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

    تقرير عن استخدام الذاكرة

    تقرير عن استخدام الذاكرة

    ‫Windows: تحسين عمليات الإدخال والإخراج لملفات مكافحة الفيروسات

    يتحقّق "استوديو Android" الآن تلقائيًا مما إذا تم استبعاد أدلة مشاريع معيّنة من الفحص التلقائي لمكافحة الفيروسات في الوقت الفعلي. عندما يكون من الممكن إجراء تعديلات لتحسين أداء عملية الإنشاء، يرسل إليك "استوديو Android" إشعارًا ويقدّم لك تعليمات حول كيفية تحسين إعدادات برنامج مكافحة الفيروسات. لمزيد من المعلومات، راجِع مقالة تقليل تأثير برامج مكافحة الفيروسات على سرعة الإنشاء.

    ‫Project Marble: تحسين الميزات

    يوضّح هذا القسم التغييرات التي تم إجراؤها في الإصدار 3.5 من "استوديو Android" والتي تركّز على تحسين الميزات الحالية.

    تطبيق التغييرات

    تتيح لك ميزة "تطبيق التغييرات" إرسال تغييرات الرموز والموارد إلى تطبيقك قيد التشغيل بدون إعادة تشغيله، وفي بعض الحالات، بدون إعادة تشغيل النشاط الحالي. تنفِّذ ميزة "تطبيق التغييرات" أسلوبًا جديدًا تمامًا للحفاظ على حالة تطبيقك. على عكس ميزة Instant Run التي تعيد كتابة الرمز الثانوي لملف APK، تعيد ميزة Apply Changes تعريف الفئات أثناء التشغيل من خلال الاستفادة من أداة تصحيح الأخطاء أثناء التشغيل المتوافقة مع الإصدار 8.0 من نظام Android (المستوى 26 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

    لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تطبيق التغييرات.

    أزرار شريط الأدوات الخاصة بـ "تطبيق التغييرات"

    أزرار شريط الأدوات الخاصة بـ "تطبيق التغييرات"

    سير عملية نشر التطبيق

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

    القائمة المنسدلة للجهاز المستهدَف

    القائمة المنسدلة للجهاز المستهدَف

    تحسين مزامنة Gradle ورصد ذاكرة التخزين المؤقت

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

    تحسين ناتج أخطاء الإنشاء

    توفّر نافذة الإنشاء رمز نافذة الإنشاء الآن إمكانية أفضل للإبلاغ عن الأخطاء، مثل رابط يؤدي إلى الملف والسطر الذي حدث فيه الخطأ، وذلك في عمليات الإنشاء التالية:

    • تجميع AAPT وربطه
    • ‫R8 وProGuard
    • Dexing
    • دمج الموارد
    • تحليل ملف XML
    • تجميع Javac وKotlinc وCMake

    ترقيات المشاريع

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

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

    أداة تعديل التنسيق

    يتضمّن الإصدار 3.5 من "استوديو Android" العديد من التحسينات على عرض التصميم وإدارته والتفاعل معه.

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

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

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

    وبالمثل، يمكنك الآن حذف قيد من خلال اختياره والضغط على المفتاح Delete. يمكنك أيضًا حذف قيد من خلال الضغط مع الاستمرار على المفتاح Control (Command على أجهزة macOS) والنقر على نقطة ربط القيد. يُرجى العِلم أنّه عند الضغط مع الاستمرار على المفتاح Control أو Command وتمرير مؤشر الماوس فوق نقطة ربط، تتحوّل أي قيود مرتبطة إلى اللون الأحمر للإشارة إلى أنّه يمكنك النقر لحذفها.

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

    صورة متحرّكة توضّح كيفية استخدام أداة القيود لإنشاء قيود

    استخدام أداة القيود لإنشاء القيود

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

    صورة متحركة توضّح كيفية إنشاء قيد لمكوّن متداخل
            في Android Studio 3.4

    إنشاء قيد لعنصر متداخل في Android Studio 3.4

    صورة متحرّكة توضّح كيفية إنشاء قيد لمكوّن متداخل في Android Studio 3.5.

    إنشاء قيد لمكوّن متداخل في الإصدار 3.5 من "استوديو Android"

    بالإضافة إلى التحديثات المذكورة أعلاه، يتضمّن الإصدار 3.5 من Android Studio أيضًا التحسينات التالية على "محرّر التصميم":

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

    لمزيد من المعلومات حول هذه التغييرات، راجِع المقالة مشروع Marble في "استوديو Android": "أداة تعديل التصميم".

    ربط البيانات

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

    صورة متحرّكة تعرض أداء أداة تعديل الرموز البرمجية على Android Studio 3.4

    أداء محرّر الرموز البرمجية في الإصدار 3.4 من "استوديو Android"

    صورة متحرّكة تعرض أداء محرِّر الرموز البرمجية على Android Studio 3.5

    تحسين أداء تعديل الرموز البرمجية في الإصدار 3.5 من "استوديو Android"

    تحسين التوافق مع مشاريع C/C++

    يتضمّن الإصدار 3.5 من "استوديو Android" العديد من التغييرات التي تعمل على تحسين إمكانية استخدام مشاريع C/C++.

    تحسينات على لوحة "خيارات الإنشاء" لمزامنة خيار واحد

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

    لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تغيير صيغة الإصدار.

    لوحة "خيارات الإنشاء" التي تعرض اختيار خيار واحد حسب واجهة التطبيق الثنائية (ABI)

    لوحة "إنشاء صيغ" مع تحديد صيغة واحدة حسب ABI

    إصدارات NDK متجاورة

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

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

    لمزيد من المعلومات، اطّلِع على تثبيت NDK وCMake وLLDB وإعدادها.

    دعم ChromeOS

    تتوافق الآن أداة Android Studio رسميًا مع أجهزة ChromeOS، مثل HP Chromebook x360 14 وAcer Chromebook 13/Spin 13 وغيرها من الأجهزة التي يمكنك الاطّلاع عليها في متطلبات النظام. للبدء، نزِّل Android Studio على جهاز ChromeOS المتوافق واتّبِع تعليمات التثبيت.

    ملاحظة: لا يتيح Android Studio على ChromeOS حاليًا نشر تطبيقك إلا على جهاز أجهزة متصل. لمزيد من المعلومات، يمكنك الاطّلاع على مقالة تشغيل التطبيقات على جهاز أو جهاز افتراضي.

    العرض المشروط لوحدات الميزات

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

    تتيح آلية التسليم هذه حاليًا التحكّم في تنزيل وحدة أثناء تثبيت التطبيق استنادًا إلى إعدادات الجهاز التالية:

    • ميزات معدات الجهاز وبرامجه، بما في ذلك إصدار OpenGL ES
    • بلد المستخدم
    • مستوى واجهة برمجة التطبيقات

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

    IntelliJ IDEA 2019.1

    تم تعديل بيئة التطوير المتكاملة (IDE) الأساسية في "استوديو Android" من خلال تحسينات من IntelliJ IDEA عبر الإصدار 2019.1، مثل تخصيص المظهر.

    كان آخر إصدار من IntelliJ تم تضمينه مع "استوديو Android" هو ‎2018.3.4. لمزيد من المعلومات حول التحسينات من إصدارات IntelliJ الأخرى المضمّنة بشكل تراكمي في هذا الإصدار من "استوديو Android"، راجِع تحديثات إصلاح الأخطاء التالية:

    تعديلات على الإصدار 3.5.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android

    للحصول على معلومات حول الميزات الجديدة في الإصدار 3.5.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"، مثل تحسين التوافق مع المعالجة التدريجية للتعليقات التوضيحية واختبارات الوحدات القابلة للتخزين المؤقت، راجِع ملاحظات الإصدار.

    المساهمون في المنتدى

    نشكر جميع المساهمين في المنتدى الذين ساعدونا في رصد الأخطاء والطرق الأخرى لتحسين الإصدار 3.5 من "استوديو Android". ونودّ بشكل خاص توجيه الشكر إلى الأشخاص التالية أسماؤهم الذين أبلغوا عن أخطاء من الفئة P0 والفئة P1:

    ‫3.4 (نيسان/أبريل 2019)

    الإصدار 3.4 من "استوديو Android" هو إصدار رئيسي يتضمّن مجموعة متنوعة من الميزات الجديدة والتحسينات.

    3.4.2 (تموز/يوليو 2019)

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

    3.4.1 (مايو 2019)

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

    المشاكل المعروفة في الإصدار 3.4.0

    • يتم إيقاف إنشاء الملفات الشخصية عند نشر تطبيقك على جهاز يعمل بالإصدار التجريبي من Android Q.

    • عند استخدام Data Binding Library، قد يتعذّر تنفيذ LiveDataListener.onChanged() بسبب خطأ NPE. سيتم تضمين إصلاح لهذه المشكلة في الإصدار 3.4.1 من "استوديو Android"، وهو متاح حاليًا في الإصدار التجريبي الأخير من الإصدار 3.5 من "استوديو Android". (راجِع المشكلة رقم 122066788)

    IntelliJ IDEA 2018.3.4

    تم تعديل حزمة تطوير البرامج المتكاملة (IDE) الأساسية في "استوديو Android" من خلال تحسينات من IntelliJ IDEA في الإصدار 2018.3.4.

    تعديلات على الإصدار 3.4.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android

    للحصول على معلومات حول الميزات الجديدة في الإصدار 3.4.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"، راجِع ملاحظات الإصدار.

    مربّع حوار "بنية المشروع الجديد"

    يسهّل مربّع الحوار الجديد "بنية المشروع" (PSD) تعديل التبعيات وإعداد جوانب مختلفة من مشروعك، مثل الوحدات وتنويعات الإصدار وإعدادات التوقيع ومتغيّرات الإصدار.

    يمكنك فتح ملف PSD من خلال اختيار ملف > بنية المشروع من شريط القوائم. يمكنك أيضًا فتح PSD بالضغط على Ctrl+Shift+Alt+S على أجهزة Windows وLinux، أو Command+; (فاصلة منقوطة) على أجهزة macOS. يمكنك الاطّلاع أدناه على أوصاف بعض الأقسام الجديدة والمعدَّلة في "بيان خصوصية المطوّرين".

    المتغيّرات

    يتيح لك قسم المتغيرات الجديد في ملف PSD إنشاء متغيرات الإصدار وإدارتها، مثل المتغيرات التي تحافظ على اتساق أرقام الإصدارات للتبعيات في مشروعك.

    • يمكنك الاطّلاع بسرعة على متغيرات الإصدارات وتعديلها إذا كانت متوفّرة في نصوص Gradle البرمجية الخاصة بمشروعك.
    • إضافة متغيّرات إنشاء جديدة على مستوى المشروع أو الوحدة مباشرةً من PSD

    ملاحظة: إذا كانت ملفات إعدادات الإصدار الحالية تحدّد قيمًا من خلال نصوص Groovy البرمجية المعقّدة، قد لا تتمكّن من تعديل هذه القيم من خلال PSD. بالإضافة إلى ذلك، لا يمكنك تعديل ملفات الإصدار المكتوبة بلغة Kotlin باستخدام PSD.

    الوحدات

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

    التبعيات

    يمكنك فحص كل عنصر تابع وتصوّره في مخطط التبعية الخاص بمشروعك، كما تم حله بواسطة Gradle أثناء مزامنة المشروع، باتّباع الخطوات التالية:

    1. في اللوحة اليمنى من PSD، اختَر التبعيات.
    2. في لوحة الوحدات، اختَر وحدة تريد فحص التبعيات التي تم حلّها لها.
    3. على الجانب الأيسر من PSD، افتح اللوحة التبعيات التي تم حلّها، كما هو موضّح أدناه.

    يمكنك أيضًا البحث عن التبعيات وإضافتها إلى مشروعك بسرعة من خلال اختيار وحدة من قسم التبعيات في "أداة فحص بنية الحزمة"، ثم النقر على الزر (+) في قسم التبعيات المعلَنة واختيار نوع التبعية التي تريد إضافتها.

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

    تنويعات الإصدار

    في هذا القسم من ملف PSD، أنشئ إعدادات صيغ الإنشاء وصيغ المنتجات لكل وحدة في مشروعك. يمكنك إضافة عناصر نائبة في ملف البيان وإضافة ملفات ProGuard وتعيين مفاتيح التوقيع وغير ذلك.

    اقتراحات

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

    New Resource Manager

    "أداة إدارة الموارد" هي نافذة أدوات جديدة تتيح استيراد الموارد وإنشاءها وإدارتها واستخدامها في تطبيقك. ويمكنك فتح نافذة الأدوات من خلال اختيار عرض > نوافذ الأدوات > أداة إدارة الموارد من شريط القوائم. يتيح لك "مدير الموارد" إجراء ما يلي:

    • عرض الموارد بشكل مرئي: يمكنك معاينة الرسومات المتجهة والألوان والتصاميم للعثور بسرعة على الموارد التي تحتاج إليها.
    • الاستيراد المجمَّع: يمكنك استيراد عدّة مواد عرض قابلة للرسم في آنٍ واحد من خلال سحبها وإفلاتها في نافذة أداة مدير الموارد أو باستخدام معالج استيراد مواد العرض القابلة للرسم. للوصول إلى المعالج، انقر على الزرّ (+) في أعلى يمين نافذة الأداة، ثم انقر على استيراد عناصر قابلة للرسم من القائمة المنسدلة.
    • تحويل ملفات SVG إلى عناصر VectorDrawable: يمكنك استخدام معالج استيراد عناصر قابلة للرسم لتحويل صور SVG إلى عناصر VectorDrawable.
    • سحب مواد العرض وإفلاتها: من نافذة أداة إدارة الموارد، يمكنك سحب عناصر قابلة للرسم وإفلاتها في كلّ من طريقتَي عرض التصميم وXML في "محرّر Layout".
    • عرض نُسخ بديلة: يمكنك الآن عرض نُسخ بديلة من المراجع من خلال النقر مرّتين على مرجع ضمن نافذة الأداة. يعرض هذا العرض الإصدارات المختلفة التي أنشأتها والمؤهلات التي تم تضمينها.
    • طرق العرض على شكل مربّعات وقائمة: يمكنك تغيير طريقة العرض داخل نافذة الأدوات لتصوُّر الموارد بترتيبات مختلفة.

    لمزيد من المعلومات، يُرجى الاطّلاع على الدليل حول كيفية إدارة موارد التطبيق.

    التحقّق من أرقام تعريف الإصدارات عند إنشاء ملفات تعريف وتصحيح أخطاء حِزم APK

    عند تقديم ملفات رموز تصحيح الأخطاء لمكتبات .so المشترَكة داخل حزمة APK، يتحقّق "استوديو Android" من أنّ رقم تعريف الإصدار لملفات الرموز المقدَّمة يتطابق مع رقم تعريف الإصدار لمكتبات .so داخل حزمة APK.

    إذا أنشأت المكتبات الأصلية في حزمة APK باستخدام معرّف إصدار، يتحقّق "استوديو Android" مما إذا كان معرّف الإصدار في ملفات رموز تصحيح الأخطاء يطابق معرّف الإصدار في المكتبات الأصلية، ويرفض ملفات رموز تصحيح الأخطاء في حال عدم التطابق. إذا لم تستخدِم معرّف إصدار عند إنشاء التطبيق، قد يؤدي تقديم ملفات رموز غير صحيحة إلى حدوث مشاكل في تصحيح الأخطاء.

    تفعيل أداة R8 تلقائيًا

    تدمج أداة R8 عمليات إزالة التكرار، والتصغير، والتشويش، والتحسين، والتحويل إلى رمز DEX في خطوة واحدة، ما يؤدي إلى تحسينات ملحوظة في أداء عملية الإنشاء. تم طرح R8 في الإصدار 3.3.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android، وهو مفعّل الآن تلقائيًا لكل من مشاريع التطبيقات ومكتبات Android التي تستخدم الإصدار 3.4.0 من المكوّن الإضافي والإصدارات الأحدث.

    تقدّم الصورة أدناه نظرة عامة شاملة على عملية التجميع قبل طرح R8.

    قبل R8، كانت ProGuard خطوة تجميع مختلفة عن تحويل الرمز إلى DEX وإزالة السكر.

    أما الآن، فباستخدام R8، يتم إكمال جميع عمليات إزالة التجميل اللغوي والتصغير والتشويش والتحسين والتحويل إلى رمز DEX (باستخدام D8) في خطوة واحدة، كما هو موضّح أدناه.

    باستخدام R8، يتم تنفيذ عمليات إزالة السكر والتقليص والتشويش والتحسين والتحويل إلى رمز DEX في خطوة تجميع واحدة.

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

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

        # Disables R8 for Android Library modules only.
        android.enableR8.libraries = false
        # Disables R8 for all modules.
        android.enableR8 = false
        
      

    ملاحظة: بالنسبة إلى نوع إصدار معيّن، إذا ضبطت useProguard على false في ملف build.gradle لوحدة تطبيقك، سيستخدم المكوّن الإضافي لنظام Gradle المتوافق مع Android أداة R8 لتصغير حجم رمز تطبيقك لنوع الإصدار هذا، بغض النظر عمّا إذا كنت قد أوقفت أداة R8 في ملف gradle.properties لمشروعك.

    أصبحت جميع أنواع الوسيطات المتوافقة مع "مكوّن التنقّل" متاحة الآن في "أداة تعديل التنقّل". لمزيد من المعلومات حول الأنواع المتوافقة، يُرجى الاطّلاع على مقالة نقل البيانات بين وجهات.

    تحسينات على "أداة تعديل التنسيق" {:#layout-editor}

    تم تبسيط لوحة السمات في "محرّر التنسيق" لتصبح صفحة واحدة تتضمّن أقسامًا يمكنك توسيعها لعرض السمات التي يمكنك ضبطها. يتضمّن جزء السمات أيضًا التعديلات التالية:

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

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

    إذا بدأت في استخدام بعض فئات Jetpack وFirebase في الرمز البرمجي، سيقترح عليك إجراء جديد إضافة تبعية مكتبة Gradle المطلوبة إلى مشروعك، إذا لم يسبق لك إجراء ذلك. على سبيل المثال، إذا أشرت إلى الفئة WorkManager بدون استيراد التبعية android.arch.work:work-runtime المطلوبة أولاً، سيسمح لك إجراء جديد بإجراء ذلك بسهولة بنقرة واحدة، كما هو موضّح أدناه.

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

    ‫3.3 (يناير 2019)

    الإصدار 3.3 من "استوديو Android" هو إصدار رئيسي يتضمّن مجموعة متنوعة من الميزات الجديدة والتحسينات.

    ‫3.3.2 (مارس 2019)

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

    3.3.1 (فبراير 2019)

    يتضمّن هذا التحديث البسيط إصلاحات متنوعة للأخطاء وتحسينات في الأداء.

    IntelliJ IDEA 2018.2.2

    تم تعديل بيئة التطوير المتكاملة الأساسية في "استوديو Android" من خلال تحسينات من IntelliJ IDEA في الإصدار 2018.2.2.

    تحديثات "المكوّن الإضافي لنظام Gradle المتوافق مع Android"

    للحصول على معلومات حول الميزات الجديدة في "المكوّن الإضافي لنظام Gradle المتوافق مع Android"، راجِع ملاحظات الإصدار.

    يتيح لك "أداة تعديل التنقّل" إنشاء ميزة التنقّل في تطبيقك وعرضها بشكل مرئي بسرعة باستخدام مكوّن Navigation Architecture.

    لمزيد من المعلومات، يُرجى الاطّلاع على تنفيذ التنقّل باستخدام "مكوّن بنية التنقّل".

    حذف أدلة "استوديو Android" غير المستخدَمة

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

    في ما يلي قائمة بالأدلة التي يضعها "استوديو Android" في الاعتبار عند الحذف:

    • ‫Linux: ~/.AndroidStudio[Preview]X.Y
    • ‫Mac: ‏ ~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
    • ‫Windows: %USER%.AndroidStudio[Preview]X.Y

    تحسينات Lint

    عند استدعاء أداة Lint من Gradle، تصبح أسرع بكثير، إذ يمكن للمشاريع الأكبر حجمًا أن تتوقّع تشغيلها أسرع بأربع مرات.

    معالج إنشاء مشروع جديد

    يتميّز معالج إنشاء مشروع جديد بمظهر جديد ويتضمّن تعديلات تساعد في تبسيط عملية إنشاء مشاريع جديدة في "استوديو Android".

    لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء مشروع.

    تحديثات "أداة تحليل الأداء"

    يتضمّن الإصدار 3.3 من "استوديو Android" تحديثات للعديد من أدوات تحليل الأداء الفردية.

    تحسين الأداء

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

    خيارات تتبُّع تخصيص الذاكرة في Profiler

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

    باستخدام القائمة المنسدلة تتبُّع التخصيص، يمكنك الاختيار من بين الأوضاع التالية:

    • كامل: يسجّل جميع عمليات تخصيص ذاكرة الكائنات. يُرجى العِلم أنّه إذا كان لديك تطبيق يخصّص عددًا كبيرًا من العناصر، قد تواجه مشاكل كبيرة في الأداء أثناء إنشاء الملفات الشخصية.

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

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

      يؤثر التتبُّع في كل من عناصر Java ومراجع JNI.

    فحص بيانات عرض الإطار

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

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

    لمزيد من المعلومات حول التحقيق في مشاكل معدّل عرض اللقطات وحلّها، يمكنك الاطّلاع على مقالة عرض بطيء.

    اللقطات في المخطط الزمني للأحداث

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

    عرض نص منسَّق لحِزم بيانات الاتصال في أداة تحليل الشبكة

    في السابق، كان "أداة تحليل الشبكة" تعرض النص الأولي فقط من حمولات الاتصال. يُنسِّق "استوديو Android" 3.3 الآن بعض أنواع النصوص تلقائيًا، بما في ذلك JSON وXML وHTML. في علامتَي التبويب الردّ والطلب، انقر على الرابط عرض النص المحلّل لعرض النص المنسّق، وانقر على الرابط عرض المصدر لعرض النص الأولي.

    لمزيد من المعلومات، يُرجى الاطّلاع على فحص حركة بيانات الشبكة باستخدام "أداة تحليل الشبكة".

    التنزيل التلقائي لمكوّنات حزمة SDK

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

    لمزيد من المعلومات، راجِع مقالة التنزيل التلقائي للحِزم غير المتوفّرة باستخدام Gradle.

    إتاحة Clang-Tidy

    يتضمّن "استوديو Android" الآن إمكانية إجراء تحليل للتعليمات البرمجية الثابتة باستخدام Clang-Tidy للمشاريع التي تتضمّن تعليمات برمجية أصلية. لتفعيل دعم Clang-Tidy، عليك تحديث حزمة NDK إلى الإصدار 18 أو إصدار أحدث.

    يمكنك بعد ذلك تفعيل عمليات الفحص أو إعادة تفعيلها من خلال فتح مربّع الحوار الإعدادات أو الإعدادات المفضّلة والانتقال إلى المحرّر > عمليات الفحص > C/C++ > عام > Clang-Tidy. عند اختيار عملية الفحص هذه في مربع الحوار الإعدادات أو الإعدادات المفضّلة، يمكنك أيضًا الاطّلاع على قائمة عمليات فحص Clang-Tidy التي تم تفعيلها وإيقافها ضمن قسم الخيار في اللوحة اليمنى. لتفعيل عمليات التحقّق الإضافية، أضِفها إلى القائمة وانقر على تطبيق.

    لضبط Clang-Tidy باستخدام خيارات إضافية، انقر على ضبط خيارات عمليات التحقّق في Clang-Tidy وأضِفها في مربّع الحوار الذي يظهر.

    إزالة خيارات تخصيص C++

    تمت إزالة الخيارات التالية من مربّع الحوار تخصيص دعم C++‎:

    • دعم الاستثناءات (-fexceptions)
    • تفعيل معلومات نوع وقت التشغيل (-ftti)

    يتم تفعيل السلوكيات المعنية لجميع المشاريع التي تم إنشاؤها من خلال "استوديو Android".

    الإصدار 3.10.2 من CMake

    تم الآن تضمين الإصدار 3.10.2 من CMake في "أداة إدارة حزمة SDK". يُرجى العِلم أنّ Gradle لا يزال يستخدم الإصدار 3.6.0 تلقائيًا.

    لتحديد إصدار CMake الذي سيستخدمه Gradle، أضِف ما يلي إلى ملف build.gradle الخاص بالوحدة:

        android {
            ...
            externalNativeBuild {
                cmake {
                    ...
                    version "3.10.2"
                }
            }
        }
        
      

    لمزيد من المعلومات حول إعداد CMake في build.gradle، راجِع مقالة ضبط Gradle يدويًا.

    بنية "+" الجديدة لتحديد الحد الأدنى لإصدارات CMake

    عند تحديد إصدار من CMake في ملف build.gradle الخاص بوحدتك الرئيسية، يمكنك الآن إضافة علامة "+" لتتطابق مع سلوك الأمر cmake_minimum_required() في CMake.

    تنبيه: لا يُنصح باستخدام بنية "+" مع الاعتماديات على الإصدارات الأخرى، لأنّ الاعتماديات الديناميكية يمكن أن تتسبّب في حدوث تحديثات غير متوقّعة للإصدارات وصعوبة في حلّ الاختلافات بين الإصدارات.

    تتوافق "مجموعات حزمات تطبيق Android" الآن مع "التطبيقات الفورية"

    يتيح لك "استوديو Android" الآن إنشاء حِزم تطبيقات Android مع توفير دعم كامل لميزة تطبيقات Google Play الفورية. بعبارة أخرى، يمكنك الآن إنشاء كل من التطبيق المثبَّت والتجربة الفورية ونشرهما من مشروع واحد في Android Studio وتضمينهما في مجموعة حزمات تطبيق Android واحدة.

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

        <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
            <dist:module dist:instant="true" />
            ...
        </manifest>
        
      

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

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

    مزامنة المشاريع ذات الصيغة الواحدة

    مزامنة مشروعك مع إعدادات الإصدار هي خطوة مهمة في السماح لـ &quot;استوديو Android&quot; بفهم كيفية تنظيم مشروعك. ومع ذلك، يمكن أن تستغرق هذه العملية وقتًا طويلاً في المشاريع الكبيرة. إذا كان مشروعك يستخدم عدة صيغ بناء، يمكنك الآن تحسين عمليات المزامنة للمشروع من خلال حصرها على الصيغة التي اخترتها حاليًا فقط.

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

    لتفعيل هذا التحسين يدويًا، انقر على ملف (File) > إعدادات (Settings) > تجريبي (Experimental) > Gradle (Android Studio > الإعدادات المفضّلة (Preferences) > تجريبي (Experimental) > Gradle على جهاز Mac) ثم ضَع علامة في مربّع الاختيار مزامنة الإصدار النشط فقط (Only sync the active variant).

    ملاحظة: لا يتيح التحسين حاليًا سوى المشاريع التي تتضمّن لغة البرمجة Java. على سبيل المثال، إذا رصدت بيئة التطوير المتكاملة (IDE) رمز Kotlin أو C++ في مشروعك، لن يتم تفعيل هذه التحسينات تلقائيًا، ويجب عدم تفعيلها يدويًا.

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

    تقديم ملاحظات سريعة

    إذا وافقت على مشاركة إحصاءات الاستخدام للمساعدة في تحسين Android Studio، سيظهر هذان الرمزان الجديدان في شريط الحالة أسفل نافذة بيئة التطوير المتكاملة:

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

    إذا لم يسبق لك إجراء ذلك، يمكنك تفعيل مشاركة إحصاءات الاستخدام من خلال فتح مربّع الحوار الإعدادات الإعدادات المفضّلة على جهاز Mac)، والانتقال إلى المظهر والسلوك > إعدادات النظام > مشاركة البيانات ووضع علامة في المربّع بجانب إرسال إحصاءات الاستخدام إلى Google.

    ‫3.2 (أيلول/سبتمبر 2018)

    ‫Android Studio 3.2 هو إصدار رئيسي يتضمّن مجموعة متنوعة من الميزات والتحسينات الجديدة.

    3.2.1 (أكتوبر 2018)

    يتضمّن هذا التحديث للإصدار 3.2 من Android Studio التغييرات والإصلاحات التالية:

    • أصبح إصدار Kotlin المضمّن الآن هو 1.2.71.
    • أصبح الإصدار التلقائي لأدوات التصميم هو 28.0.3.
    • في مكتبة Navigation، تمت إعادة تسمية أنواع الوسيطات من type إلى argType.
    • تم إصلاح الأخطاء التالية:
      • عند استخدام مكتبة ربط البيانات، كانت أسماء المتغيرات التي تتضمّن شرطات سفلية تتسبّب في حدوث أخطاء أثناء التجميع.
      • كانت أداة CMake تتسبّب في تعذُّر عمل IntelliSense وميزات أخرى في CLion.
      • كانت إضافة SliceProvider تؤدي إلى حدوث أخطاء في الترجمة البرمجية في المشاريع التي لم تستخدِم مكتبات androidx.*.
      • لم يتم تنفيذ بعض اختبارات الوحدات في Kotlin.
      • حدثت مشكلة في ربط البيانات تسبّبت في ظهور PsiInvalidElementAccessException.
      • كانت عناصر <merge> تتسبّب أحيانًا في تعطُّل &quot;محرّر التصميم&quot;.

    المشاكل المعروفة في الإصدار 3.2.0

    ملاحظة: تم حلّ هذه المشاكل في الإصدار 3.2.1 من Android Studio.

    • ننصحك بشدة بعدم استخدام الإصدار 1.2.70 من Kotlin.

      يُصلِح الإصدار 1.2.61 من Kotlin خطأً قد يؤدي إلى تعليق &quot;استوديو Android&quot;، ولكن الإصدار 1.2.70 من Kotlin لا يتضمّن هذا الإصلاح.

      ومع ذلك، تتضمّن إصدارات Kotlin 1.2.71 والإصدارات الأحدث هذا الإصلاح.

    • على الرغم من أنّه لا يلزم عادةً تحديد إصدار أدوات التصميم، عند استخدام الإصدار 3.2.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android مع ضبط renderscriptSupportModeEnabled على true، عليك تضمين ما يلي في ملف build.gradle لكل وحدة:

      android.buildToolsVersion "28.0.3"

    ميزة "ما الجديد"

    يُعلمك مساعد جديد بآخر التغييرات في Android Studio.

    يفتح المساعد عند بدء تشغيل Android Studio بعد تثبيت جديد أو تحديث إذا رصد توفّر معلومات جديدة لعرضها. يمكنك أيضًا فتح المساعد من خلال اختيار مساعدة > الميزات الجديدة في &quot;استوديو Android&quot;.

    Android Jetpack

    يساعد Android Jetpack في تسريع عملية تطوير تطبيقات Android من خلال توفير مكونات وأدوات وإرشادات تتيح لك التخلص من المهام المتكررة وإنشاء تطبيقات عالية الجودة وقابلة للاختبار بشكل أسرع وأسهل. يتضمّن &quot;استوديو Android&quot; التعديلات التالية التي تتيح استخدام Jetpack. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات Jetpack.

    يتكامل &quot;محرّر التنقّل&quot; الجديد مع مكوّنات التنقّل في Android Jetpack لتوفير عرض رسومي لإنشاء بنية التنقّل في تطبيقك. يسهّل &quot;محرّر التنقّل&quot; تصميم وتنفيذ التنقّل بين وجهات داخل التطبيق.

    في "استوديو Android" 3.2، يكون "محرّر التنقّل" ميزة تجريبية. لتفعيل &quot;أداة تعديل التنقّل&quot;، انقر على ملف (File) > إعدادات (Settings) (استوديو Android (Android Studio) > الإعدادات المفضّلة (Preferences) على جهاز Mac)، واختَر فئة تجريبي (Experimental) في اللوحة اليمنى، وضَع علامة في المربّع بجانب تفعيل &quot;أداة تعديل التنقّل&quot; (Enable Navigation Editor)، ثم أعِد تشغيل &quot;استوديو Android&quot;.

    لمزيد من المعلومات، يُرجى الاطّلاع على مستندات "أداة تعديل التنقّل".

    نقل البيانات إلى AndroidX

    في إطار Jetpack، ننقل &quot;مكتبات الدعم لنظام التشغيل Android&quot; إلى مكتبة إضافات جديدة لنظام التشغيل Android باستخدام مساحة الاسم androidx. لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة حول AndroidX.

    يساعدك الإصدار 3.2 من Android Studio في تنفيذ هذه العملية من خلال ميزة نقل بيانات جديدة.

    لنقل مشروع حالي إلى AndroidX، اختَر إعادة تصميم > النقل إلى AndroidX. إذا كانت لديك أي تبعيات Maven لم يتم نقلها إلى مساحة الاسم AndroidX، سيحوّل نظام الإنشاء في &quot;استوديو Android&quot; تلقائيًا تبعيات المشروع هذه.

    يوفّر المكوّن الإضافي لنظام Gradle المتوافق مع Android العلامات العامة التالية التي يمكنك ضبطها في ملف gradle.properties:

    • android.useAndroidX: عند ضبط هذا الخيار على true، يشير إلى أنّك تريد البدء في استخدام AndroidX من الآن فصاعدًا. في حال عدم توفّر العلامة، سيتصرف &quot;استوديو Android&quot; كما لو كانت العلامة مضبوطة على false.
    • android.enableJetifier: عند ضبط هذا الخيار على true، يشير هذا الخيار إلى أنّك تريد توفير دعم الأدوات (من المكوّن الإضافي لنظام Android في Gradle) لتحويل المكتبات الحالية التابعة لجهات خارجية تلقائيًا كما لو كانت مكتوبة لـ AndroidX. في حال عدم توفّر العلامة، سيتصرف &quot;استوديو Android&quot; كما لو كانت العلامة مضبوطة على false.

    يتم ضبط كلتا العلامتين على true عند استخدام الأمر Migrate to AndroidX.

    إذا كنت تريد البدء في استخدام مكتبات AndroidX على الفور ولا تحتاج إلى تحويل المكتبات الحالية التابعة لجهات خارجية، يمكنك ضبط العلامة android.useAndroidX على true والعلامة android.enableJetifier على false.

    تنسيق Android App Bundle

    مجموعة حزمات تطبيق Android هي تنسيق تحميل جديد يتضمّن جميع الرموز البرمجية والموارد المجمَّعة لتطبيقك، مع تأجيل إنشاء حِزم APK وتوقيعها إلى &quot;متجر Google Play&quot;.

    يستخدم نموذج عرض التطبيقات الجديد من Google Play حِزمة تطبيقك لإنشاء حِزم APK محسَّنة وعرضها بما يتوافق مع إعدادات جهاز كل مستخدم، وبالتالي لا يضطر المستخدم إلى تنزيل سوى الرموز والموارد التي يحتاج إليها لتشغيل تطبيقك. ولن تحتاج بعد ذلك إلى إنشاء حِزم APK متعددة وتوقيعها وإدارتها، وسيتمكّن المستخدمون من تنزيل حِزم أصغر حجمًا ومحسَّنة.

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

    لإنشاء حِزمة، اختَر إنشاء > إنشاء حِزم/حِزم APK > إنشاء حِزم.

    لمزيد من المعلومات، بما في ذلك تعليمات إنشاء &quot;مجموعة حزمات تطبيق Android&quot; وتحليلها، يُرجى الاطّلاع على مقالة مجموعة حزمات تطبيق Android.

    مثال على البيانات في "أداة تعديل التنسيق"

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

    لتجربة استخدام بيانات نموذجية، أضِف RecyclerView إلى تصميم جديد، وانقر على زر سمات وقت التصميم أسفل العرض، ثم اختَر أحد الخيارات من لوحة عرض البيانات النموذجية.

    الشرائح

    توفّر الشرائح طريقة جديدة لتضمين أجزاء من وظائف تطبيقك في مساحات أخرى لواجهة المستخدم على Android. على سبيل المثال، تتيح &quot;شرائح التطبيق&quot; عرض وظائف التطبيق ومحتواه في اقتراحات &quot;بحث Google&quot;.

    يتضمّن الإصدار 3.2 من &quot;استوديو Android&quot; نموذجًا مضمّنًا لمساعدتك في توسيع نطاق تطبيقك باستخدام واجهات برمجة التطبيقات الجديدة الخاصة بميزة &quot;الشرائح&quot;، بالإضافة إلى عمليات فحص جديدة باستخدام أداة lint لضمان اتّباع أفضل الممارسات عند إنشاء &quot;الشرائح&quot;.

    للبدء، انقر بزر الماوس الأيمن على مجلد مشروع واختَر New (جديد) > Other (غير ذلك) > Slice Provider (موفّر Slice).

    لمزيد من المعلومات، بما في ذلك كيفية اختبار تفاعلاتك مع شرائح التطبيق، اطّلِع على دليل البدء في استخدام شرائح التطبيق.

    ‫Kotlin 1.2.61

    تتضمّن حزمة Android Studio 3.2 الإصدار 1.2.61 من Kotlin، كما أنّ حزمة تطوير البرامج (SDK) الجديدة لنظام Android تتكامل بشكل أفضل مع Kotlin. لمزيد من المعلومات، يُرجى الاطّلاع على مدوّنة مطوّري تطبيقات Android.

    IntelliJ IDEA 2018.1.6

    تم تعديل بيئة التطوير المتكاملة الأساسية في &quot;استوديو Android&quot; من خلال تحسينات من IntelliJ IDEA عبر الإصدار 2018.1.6.

    أدوات تحليل الأداء في Android

    جرِّب ميزات أداة فحص Android الجديدة التالية في &quot;استوديو Android&quot; 3.2.

    الجلسات

    يمكنك الآن حفظ بيانات Profiler كـ جلسات لإعادة زيارتها وفحصها لاحقًا. يحتفظ محلّل الأداء ببيانات الجلسة إلى أن تعيد تشغيل بيئة التطوير المتكاملة.

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

    تتبُّع النظام

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

    أثناء استخدام إعدادات التتبُّع هذه، يمكنك وضع علامة مرئية على إجراءات الرموز المهمة في المخطط الزمني لأداة Profiler من خلال تزويد رمز C/C++ بـ Native Tracing API أو رمز Java بفئة Trace.

    فحص مراجع JNI في أداة Memory Profiler

    إذا نشرت تطبيقك على جهاز يعمل بالإصدار 8.0 من نظام التشغيل Android (المستوى 26 لواجهة برمجة التطبيقات) أو إصدار أحدث، يمكنك الآن فحص عمليات تخصيص الذاكرة لرمز JNI الخاص بتطبيقك باستخدام أداة فحص الذاكرة.

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

    استيراد ملفات تفريغ الذاكرة وتصديرها وفحصها

    يمكنك الآن استيراد ملفات تفريغ الذاكرة المؤقتة وتصديرها وفحصها، وهي الملفات التي تم إنشاؤها باستخدام أداة فحص الذاكرة..hprof

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

    لحفظ بيانات تفريغ الذاكرة المؤقتة لمراجعتها لاحقًا، استخدِم الزر تصدير تفريغ الذاكرة المؤقتة على يسار الإدخال تفريغ الذاكرة المؤقتة في لوحة الجلسات. في مربّع الحوار تصدير باسم الذي يظهر، احفظ الملف بامتداد اسم الملف .hprof.

    تسجيل نشاط وحدة المعالجة المركزية (CPU) أثناء بدء تشغيل التطبيق

    يمكنك الآن تسجيل نشاط وحدة المعالجة المركزية أثناء بدء تشغيل تطبيقك، وذلك باتّباع الخطوات التالية:

    1. انقر على تشغيل (Run) > تعديل الإعدادات (Edit Configurations) من القائمة الرئيسية.
    2. ضِمن علامة التبويب إنشاء ملف تعريف لإعدادات التشغيل المطلوبة، ضَع علامة في المربّع بجانب بدء تسجيل تتبُّع طريقة عند بدء التشغيل.
    3. اختَر إعدادات تسجيل وحدة المعالجة المركزية التي تريد استخدامها من القائمة المنسدلة.
    4. يمكنك نشر تطبيقك على جهاز يعمل بالإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث من خلال اختيار تشغيل > إنشاء ملف تعريف.
    تصدير عمليات تتبُّع وحدة المعالجة المركزية

    بعد تسجيل نشاط وحدة المعالجة المركزية باستخدام أداة "محلّل أداء وحدة المعالجة المركزية"، يمكنك تصدير البيانات كملف .trace لمشاركته مع الآخرين أو فحصه لاحقًا.

    لتصدير عملية تتبُّع بعد تسجيل نشاط وحدة المعالجة المركزية، اتّبِع الخطوات التالية:

    1. انقر بزر الماوس الأيمن على التسجيل الذي تريد تصديره من المخطط الزمني لوحدة المعالجة المركزية.
    2. اختَر تصدير التتبُّع من القائمة المنسدلة.
    3. انتقِل إلى المكان الذي تريد حفظ الملف فيه وانقر على حفظ.
    استيراد ملفات تتبُّع وحدة المعالجة المركزية وفحصها

    يمكنك الآن استيراد ملفات .trace التي تم إنشاؤها باستخدام Debug API أو أداة تحليل استخدام وحدة المعالجة المركزية وفحصها. (لا يمكنك حاليًا استيراد تسجيلات &quot;تتبُّع النظام&quot;).

    استورِد ملف التتبُّع بالنقر على بدء جلسة جديدة لأداة Profiler في لوحة الجلسات الخاصة بأداة Profiler، ثم اختَر التحميل من ملف. يمكنك بعد ذلك فحص بياناته في أداة CPU Profiler بالطريقة المعتادة، مع استثناءات:

    • لا يتم تمثيل نشاط وحدة المعالجة المركزية على طول المخطط الزمني لوحدة المعالجة المركزية.
    • لا يوضّح المخطط الزمني لنشاط سلسلة التعليمات سوى الأماكن التي تتوفّر فيها بيانات التتبُّع لكل سلسلة تعليمات، ولا يوضّح حالات سلسلة التعليمات الفعلية (مثل التشغيل أو الانتظار أو التعليق).
    تسجيل نشاط وحدة المعالجة المركزية باستخدام Debug API

    يمكنك الآن بدء تسجيل نشاط وحدة المعالجة المركزية وإيقافه في أداة "محلّل وحدة المعالجة المركزية" من خلال تزويد تطبيقك بـ Debug API. بعد نشر تطبيقك على جهاز، يبدأ محلّل الأداء تلقائيًا في تسجيل نشاط وحدة المعالجة المركزية (CPU) عندما يستدعي تطبيقك startMethodTracing(String tracePath)، ويتوقف محلّل الأداء عن التسجيل عندما يستدعي تطبيقك stopMethodTracing(). أثناء تسجيل نشاط وحدة المعالجة المركزية (CPU) الذي يتم تشغيله باستخدام واجهة برمجة التطبيقات هذه، يعرض "محلّل وحدة المعالجة المركزية" واجهة برمجة التطبيقات للتصحيح كإعدادات تسجيل وحدة المعالجة المركزية المحدّدة.

    محلّل الطاقة

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

    يظهر "محلّل استهلاك الطاقة" كصف جديد في أسفل نافذة Profiler عند تشغيل تطبيقك على جهاز متصل أو "محاكي Android" يعمل بالإصدار 8.0 من نظام التشغيل Android (المستوى 26 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

    يتم عرض أحداث النظام التي تؤثر في استهلاك الطاقة في المخطط الزمني النظام أسفل المخطط الزمني الطاقة. تظهر تفاصيل أحداث النظام ضمن النطاق الزمني المحدّد في جزء الأحداث عند اختيار نطاق زمني في المخطط الزمني استهلاك الطاقة.

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

    التحقّق من أخطاء Lint

    يتضمّن الإصدار 3.2 من &quot;استوديو Android&quot; العديد من الميزات الجديدة والمحسّنة الخاصة بالتحقّق من أداة Lint.

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

    عمليات التحقّق من التوافق بين Java وKotlin باستخدام أداة Lint

    لضمان توافق رموز Java مع رموز Kotlin، تفرض عمليات فحص lint الجديدة أفضل الممارسات الموضّحة في دليل التوافق مع Kotlin. وتشمل أمثلة عمليات التحقّق هذه البحث عن توفّر تعليقات توضيحية بشأن إمكانية قبول القيم الخالية، واستخدام الكلمات الرئيسية الثابتة في Kotlin، ووضع مَعلمات lambda في النهاية.

    لتفعيل عمليات التحقّق هذه، انقر على ملف > الإعدادات (Android Studio > الإعدادات المفضّلة في نظام التشغيل Mac) لفتح مربّع الحوار الإعدادات، وانتقِل إلى القسم المحرّر > عمليات الفحص > Android > Lint > إمكانية التشغيل التفاعلي > إمكانية التشغيل التفاعلي مع Kotlin، واختَر القواعد التي تريد تفعيلها.

    لتفعيل عمليات التحقّق هذه لعمليات الإنشاء من سطر الأوامر، أضِف ما يلي إلى ملف build.gradle:

            android {
                lintOptions {
                    check 'Interoperability'
                }
            }
            
          
    عمليات التحقّق من أداة Lint لـ "شرائح التطبيق"

    تساعد عمليات فحص lint الجديدة الخاصة بـ Slices في ضمان إنشاء Slices بشكل صحيح. على سبيل المثال، تحذّرك عمليات فحص الأخطاء إذا لم تحدّد إجراءً أساسيًا لشريحة.

    هدف Gradle الجديد

    استخدِم مهمة lintFix Gradle الجديدة لتطبيق جميع الإصلاحات الآمنة التي يقترحها فحص lint مباشرةً على الرمز المصدر. مثال على عملية فحص باستخدام أداة Lint تقترح إصلاحًا آمنًا يمكن تطبيقه: SyntheticAccessor.

    تعديلات على البيانات الوصفية

    تم تعديل بيانات وصفية مختلفة، مثل عملية التحقّق من البث المباشر للخدمة، لكي تعمل عمليات التحقّق من lint مع Android 9 (المستوى 28 من واجهة برمجة التطبيقات).

    تحذير في حال تشغيل Lint على صيغة جديدة

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

    تحسينات على عمليات فحص lint الحالية

    يتضمّن الإصدار 3.2 من "استوديو Android" العديد من التحسينات على عمليات التحقّق الحالية المستندة إلى أداة Lint. على سبيل المثال، تنطبق عمليات التحقّق من دورة حياة الموارد الآن على أنواع موارد إضافية، ويمكن لأداة رصد الترجمة العثور على الترجمات الناقصة أثناء التنقل في المحرّر.

    تسهيل العثور على أرقام تعريف المشاكل

    تظهر معرّفات المشاكل الآن في المزيد من المواضع، بما في ذلك في نافذة نتائج الفحص. يسهّل ذلك العثور على المعلومات التي تحتاج إليها لتفعيل عمليات تحقّق معيّنة أو إيقافها من خلال lintOptions في build.gradle.

    لمزيد من المعلومات، يُرجى الاطّلاع على ضبط خيارات lint باستخدام Gradle.

    ربط البيانات (الإصدار 2)

    تم الآن تفعيل الإصدار 2 من مكتبة Data Binding تلقائيًا وهو متوافق مع الإصدار 1. وهذا يعني أنّه إذا كانت لديك عناصر اعتمادية للمكتبة تم تجميعها باستخدام الإصدار 1، يمكنك استخدامها مع المشاريع التي تستخدم الإصدار 2 من ميزة "ربط البيانات". ومع ذلك، تجدر الإشارة إلى أنّ المشاريع التي تستخدم الإصدار 1 لا يمكنها استخدام التبعيات التي تم تجميعها باستخدام الإصدار 2.

    إزالة السكر من D8

    في الإصدار 3.1 من &quot;استوديو Android&quot;، أضفنا خطوة إزالة التشفير إلى أداة D8 كميزة تجريبية، ما أدّى إلى تقليل وقت الإنشاء الإجمالي. في الإصدار 3.2 من &quot;استوديو Android&quot;، يتم تفعيل عملية إزالة التجميل اللغوي من واجهة برمجة التطبيقات باستخدام أداة D8 تلقائيًا.

    أداة جديدة لتقليص حجم الرموز

    ‫R8 هي أداة جديدة لتخفيض حجم الرموز وإخفائها تحلّ محل ProGuard. يمكنك البدء في استخدام الإصدار التجريبي من R8 من خلال تضمين ما يلي في ملف gradle.properties الخاص بمشروعك:

          android.enableR8 = true
        

    تغيير واجهات التطبيق الثنائية التلقائية لحِزم APK المتعدّدة

    عند إنشاء حِزم APK متعدّدة يستهدف كل منها واجهة تطبيق ثنائية (ABI) مختلفة، لن تنشئ الإضافة حِزم APK لواجهات التطبيق الثنائية التالية تلقائيًا: mips وmips64 وarmeabi.

    إذا أردت إنشاء حِزم APK تستهدف واجهات التطبيق الثنائية هذه، عليك استخدام الإصدار 16b أو إصدار أقدم من حزمة تطوير البرامج الأصلية (NDK) وتحديد واجهات التطبيق الثنائية في ملف build.gradle، كما هو موضّح أدناه:

        splits {
            abi {
                include 'armeabi', 'mips', 'mips64'
                ...
            }
        }
        
        splits {
            abi {
                include("armeabi", "mips", "mips64")
                ...
            }
        }
        

    ملاحظة: يتضمّن الإصدار التجريبي الأول من Android Studio 3.1 والإصدارات الأحدث أيضًا هذا التغيير في السلوك.

    ميزات محسَّنة للمحرِّر لملفات إنشاء CMake

    إذا كنت تستخدم CMake من أجل إضافة رمز C وC++ إلى مشروعك، يتضمّن &quot;استوديو Android&quot; الآن ميزات محسّنة في أداة التعديل لمساعدتك في تعديل نصوص CMake البرمجية، مثل ما يلي:

    • تمييز بناء الجملة وإكمال الرموز البرمجية: تتيح بيئة التطوير المتكاملة الآن تمييز بناء الجملة واقتراح إكمال الرموز البرمجية لأوامر CMake الشائعة. بالإضافة إلى ذلك، يمكنك الانتقال إلى ملف من خلال النقر عليه مع الضغط على مفتاح Control (أو Command على جهاز Mac).
    • إعادة تنسيق الرمز: يمكنك الآن استخدام خيار إعادة تنسيق الرمز في IntelliJ لتطبيق أنماط الرموز على نصوص CMake البرمجية.
    • إعادة تصميم آمنة: تتحقّق أدوات إعادة التصميم المضمّنة في بيئة التطوير المتكاملة الآن أيضًا مما إذا كنت بصدد إعادة تسمية أو حذف ملفات تشير إليها في نصوص برامج إنشاء CMake.

    عند استخدام نافذة المشروع في الإصدارات السابقة من &quot;استوديو Android&quot;، كان بإمكانك التنقّل وفحص ملفات العناوين التي تنتمي إلى المكتبات التي تنشئها من مشروع محلي فقط. يتيح لك هذا الإصدار أيضًا عرض ملفات العناوين التي تتضمّنها تبعيات مكتبة C/C++‎ الخارجية التي تستوردها إلى مشروع تطبيقك وفحصها.

    إذا كنت تضمّن رمز C/C++ ومكتبات في مشروعك، افتح نافذة المشروع على الجانب الأيمن من بيئة التطوير المتكاملة (IDE) من خلال اختيار عرض (View) > نوافذ الأدوات (Tool Windows) > المشروع (Project) من القائمة الرئيسية، ثم اختَر Android من القائمة المنسدلة. في الدليل cpp، يتم تنظيم جميع العناوين التي تقع ضمن نطاق مشروع تطبيقك ضمن العقدة include لكل من تبعيات مكتبة C/C++ المحلية، كما هو موضّح أدناه.

    تفعيل ميزة multidex الأصلية تلقائيًا

    كانت الإصدارات السابقة من &quot;استوديو Android&quot; تتيح استخدام ملفات DEX متعددة أصلية عند نشر إصدار تصحيح الأخطاء من تطبيق على جهاز يعمل بالإصدار 21 من واجهة برمجة التطبيقات Android أو إصدار أحدث. الآن، سواء كنت تنشر التطبيق على جهاز أو تنشئ حزمة APK لإصدار التطبيق، يتيح المكوّن الإضافي لنظام Gradle المتوافق مع Android ملفات DEX المتعددة الأصلية لجميع الوحدات التي تم ضبطها على minSdkVersion=21 أو إصدار أحدث.

    نقل أداة AAPT2 إلى مستودع Maven من Google

    بدءًا من الإصدار 3.2 من &quot;استوديو Android&quot;، أصبح مصدر أداة AAPT2 (أداة حزم مواد العرض لنظام Android 2) هو مستودع Maven من Google.

    لاستخدام AAPT2، تأكَّد من توفّر اعتمادية google() في ملف build.gradle، كما هو موضّح هنا:

        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:3.2.0'
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        
        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath("com.android.tools.build:gradle:3.2.0")
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        

    يحلّ الإصدار الجديد من AAPT2 العديد من المشاكل، بما في ذلك تحسين التعامل مع الأحرف غير ASCII على أجهزة Windows.

    إزالة الإعدادات عند الطلب

    تمت إزالة الإعداد المفضّل الإعداد عند الطلب من "استوديو Android".

    لم يعُد &quot;استوديو Android&quot; يمرِّر الوسيطة --configure-on-demand إلى Gradle.

    أداة "مساعد ربط ADB"

    يقدّم مساعد اتصال ADB الجديد تعليمات تفصيلية لمساعدتك في إعداد جهاز واستخدامه عبر اتصال Android Debug Bridge (ADB).

    لبدء تشغيل "مساعد الربط"، اختَر الأدوات > مساعد الربط.

    تقدّم أداة &quot;مساعد ربط ADB&quot; تعليمات وعناصر تحكّم ضمن السياق وقائمة بالأجهزة المتصلة في سلسلة من الصفحات في لوحة المساعد.

    تحسينات على المحاكي

    يمكنك الآن حفظ لقطات لجهاز Android الافتراضي (AVD) وتحميلها في أي وقت في &quot;محاكي Android&quot;، ما يتيح لك العودة بسرعة وسهولة إلى حالة معروفة لجهاز محاكى بغرض الاختبار. عند تعديل جهاز AVD باستخدام &quot;مدير أجهزة Android الافتراضية&quot;، يمكنك تحديد لقطة جهاز AVD التي سيتم تحميلها عند بدء تشغيل جهاز AVD.

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

    لمزيد من التفاصيل، يُرجى الاطّلاع على اللقطات.

    للحصول على معلومات إضافية حول الميزات الجديدة والمعدَّلة في المحاكي، راجِع ملاحظات إصدار المحاكي.

    ‫3.1 (مارس 2018)

    ‫Android Studio 3.1.0 هو إصدار رئيسي يتضمّن مجموعة متنوّعة من الميزات والتحسينات الجديدة.

    3.1.4 (أغسطس 2018)

    يتضمّن هذا التحديث للإصدار 3.1 من Android Studio التغييرات والإصلاحات التالية:

    • أصبح إصدار Kotlin المضمّن هو 1.2.50.
    • يتم إنشاء المشاريع الجديدة باستخدام kotlin-stdlib-jdk* artifacts بدلاً من عناصر kotlin-stdlib-jre* التي تم إيقافها نهائيًا.
    • تم تحسين تحليل R8 لقواعد ProGuard.
    • تم إصلاح الأخطاء التالية:
      • تعذّرت محاولة تشغيل فئة Kotlin الرئيسية بسبب حدوث خطأ: "Error: Could not find or load main class..."
      • حدثت حلقة تكرار لا نهائية في R8 أثناء إجراء بعض عمليات التحسين.
      • كان استخدام الأمر إعادة تنفيذ الاختبارات الفاشلة في نافذة التنفيذ يؤدي أحيانًا إلى عرض الرسالة "لم يتم العثور على أي اختبارات" بشكل غير صحيح.
      • لم يتعامل المحوّل البرمجي D8 بشكل صحيح مع مثيلات invoke-virtual، ما أدّى إلى حدوث عطل مع VerifyError: invoke-super/virtual can't be used on private method
      • كان برنامج التحويل البرمجي Data Binding يعتمد على إصدار قديم من com.android.tools:annotations. يستخدم المحول البرمجي الآن تعليقات توضيحية خاصة بالأدوات من المشروع الأساسي عندما تكون متاحة.
      • تعطّل "استوديو Android" أثناء عمليات الانتقال بين الأجزاء عند استخدام أدوات تحليل الأداء.
      • تعطّل مصحّح الأخطاء عند تصحيح خطأ في تصميم يتضمّن مربّع نص.
      • تعذّر على أداة D8 قراءة بعض ملفات ZIP التي تحتوي على رموز خاصة.

    3.1.3 (يونيو 2018)

    يتضمّن هذا التحديث للإصدار 3.1 من &quot;استوديو Android&quot; إصلاحات للأخطاء التالية:

    • كانت تسريبات الذاكرة تؤدي إلى بطء أداء Android Studio وعدم استجابته بعد استخدام "أداة تعديل التصميم". يتضمّن هذا التحديث إصلاحات لمعظم هذه المشاكل. وننوي طرح تحديث آخر قريبًا لمعالجة المزيد من المشاكل المتعلّقة بتسرُّب الذاكرة.
    • تعطّلت بعض التطبيقات التي تم إنشاؤها باستخدام D8 على بعض أجهزة Verizon Ellipsis اللوحية.
    • تعذّر تثبيت التطبيقات التي تم إنشاؤها باستخدام D8 مع ظهور الخطأ INSTALL_FAILED_DEXOPT على الأجهزة التي تعمل بالإصدار 5.0 أو 5.1 من نظام التشغيل Android (المستوى 21 أو 22 من واجهة برمجة التطبيقات).
    • تعطّلت بعض التطبيقات التي استخدمت مكتبة OkHttp وتم إنشاؤها باستخدام D8 على الأجهزة التي تعمل بالإصدار 4.4 من نظام التشغيل Android (المستوى 19 من واجهة برمجة التطبيقات).
    • في بعض الأحيان، كان يتعذّر بدء تشغيل &quot;استوديو Android&quot;، مع ظهور الخطأ ProcessCanceledException أثناء عملية تهيئة الفئة com.intellij.psi.jsp.JspElementType.

    3.1.2 (أبريل 2018)

    يتضمّن هذا التحديث للإصدار 3.1 من &quot;استوديو Android&quot; إصلاحات للأخطاء التالية:

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

      "The SourceSet name is not recognized by the Android Gradle Plugin."

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

      "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

    • لم تكن عملية احتساب قائمة DEX الرئيسية في D8 تأخذ في الاعتبار بعض عمليات الاستدعاء الانعكاسية.

    يتضمّن هذا التحديث أيضًا تغييرات تجعل عمليات التحقّق من lint التي يتم إجراؤها من Gradle أسرع بكثير في بعض السيناريوهات.

    3.1.1 (أبريل 2018)

    يتضمّن هذا التحديث للإصدار 3.1 من &quot;استوديو Android&quot; إصلاحات للأخطاء التالية:

    • في بعض الحالات، عند فتح مشروع تم إنشاؤه في &quot;استوديو Android&quot; 3.0 للمرة الأولى في &quot;استوديو Android&quot; 3.1، تمت إزالة مهمة Make المتوافقة مع Gradle من منطقة قبل الإطلاق في إعدادات التشغيل/تصحيح الأخطاء. ونتيجةً لذلك، لم يتم إنشاء المشاريع عند النقر على الزر تشغيل أو تصحيح الأخطاء، ما أدّى بدوره إلى حدوث أخطاء، مثل نشر حِزم APK غير صحيحة وتعطُّل التطبيق عند استخدام "التشغيل الفوري".

      لحلّ هذه المشكلة، يضيف الإصدار 3.1.1 من &quot;استوديو Android&quot; مهمة &quot;إنشاء متوافق مع Gradle&quot; إلى إعدادات التشغيل للمشاريع التي لا تتضمّن هذا الإدخال. يحدث هذا التعديل بعد المزامنة الأولى لـ Gradle عند تحميل المشروع.

    • تعطّل مصحّح الأخطاء عند تصحيح أخطاء تصميم يتضمّن مربّع نص في حال تفعيل ميزة "التوصيف المتقدّم".
    • توقّف Android Studio عن العمل بعد النقر على إصدارات الإنشاء.
    • تم استخراج ملفات AAR (أرشيف Android) مرتين، مرة أثناء عملية المزامنة في Gradle ومرة أثناء عملية التصميم في Gradle.
    • كانت بعض العناصر مفقودة من بعض الرسومات المتجهة القابلة للرسم التي تم استيرادها من ملفات SVG.
    • تم تعديل التحذير بشأن إيقاف إعدادات التبعية compile نهائيًا، وتمت إضافة إرشادات أفضل بشأن إعدادات implementation وapi. للاطّلاع على تفاصيل حول إيقاف استخدام إعدادات compile، يُرجى الرجوع إلى المستندات الخاصة بإعدادات التبعيات الجديدة.

    الترميز/بيئة التطوير المتكاملة

    ‫IntelliJ 2017.3.3

    تم تعديل بيئة التطوير المتكاملة (IDE) الأساسية في &quot;استوديو Android&quot; من خلال تحسينات من IntelliJ IDEA حتى الإصدار 2017.3.3. وتشمل التحسينات تحليلًا أفضل لتدفّق التحكّم في المجموعات والسلاسل، واستنتاجًا محسّنًا لقابلية القيم على أن تكون فارغة، وإصلاحات سريعة جديدة، وغير ذلك الكثير.

    للحصول على التفاصيل، راجِع ملاحظات إصدار JetBrains للإصدارَين 2017.2 و2017.3 من IntelliJ IDEA، بالإضافة إلى ملاحظات إصدار JetBrains لتحديثات إصلاح الأخطاء.

    تحسينات على تعديل SQL باستخدام Room

    عند استخدام مكتبة قاعدة بيانات Room، يمكنك الاستفادة من العديد من التحسينات على تعديل SQL:

    • تتيح ميزة إكمال الرمز البرمجي ضمن Query فهم جداول SQL (الكيانات) والأعمدة ومَعلمات طلب البحث والأسماء المستعارة وعمليات الربط والاستعلامات الفرعية وعبارات WITH.
    • أصبح بإمكانك الآن تمييز بنية SQL.
    • يمكنك النقر بزر الماوس الأيمن على اسم جدول في SQL وإعادة تسميته، ما يؤدي أيضًا إلى إعادة كتابة رمز Java أو Kotlin المقابل (بما في ذلك، على سبيل المثال، نوع الإرجاع للاستعلام). تعمل إعادة التسمية في الاتجاه الآخر أيضًا، لذا تؤدي إعادة تسمية فئة أو حقل Java إلى إعادة كتابة رمز SQL المقابل.
    • تظهر استخدامات SQL عند استخدام البحث عن الاستخدامات (انقر بزر الماوس الأيمن واختَر البحث عن الاستخدامات من قائمة السياق).
    • للانتقال إلى تعريف عنصر SQL في رمز Java أو Kotlin، يمكنك الضغط مع الاستمرار على مفتاح Control (أو Command على جهاز Mac) أثناء النقر على العنصر.

    للحصول على معلومات حول استخدام SQL مع Room، راجِع حفظ البيانات في قاعدة بيانات محلية باستخدام Room.

    تعديلات على ربط البيانات

    يتضمّن هذا التحديث العديد من التحسينات على ربط البيانات:

    • يمكنك الآن استخدام كائن LiveData كحقل قابل للمراقبة في تعبيرات ربط البيانات. يتضمّن الصف ViewDataBinding الآن طريقة setLifecycle() جديدة يمكنك استخدامها لمراقبة عناصر LiveData.

    • يمكن لفئة ObservableField الآن قبول كائنات Observable أخرى في الدالة الإنشائية.

    • يمكنك معاينة أداة تجميع تصاعدية جديدة لفئات ربط البيانات. للاطّلاع على تفاصيل برنامج التجميع الجديد هذا وتعليمات تفعيله، يُرجى الرجوع إلى الإصدار 2 من برنامج تجميع ربط البيانات.

      تشمل مزايا المحول البرمجي الجديد ما يلي:

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

    برنامج التجميع وGradle

    ‫D8 هو برنامج الترجمة البرمجية التلقائي لملفات DEX

    يتم الآن استخدام برنامج التجميع D8 تلقائيًا لإنشاء رمز بايت DEX.

    يوفّر برنامج تجميع DEX الجديد العديد من المزايا، بما في ذلك ما يلي:

    • Faster dexing
    • تقليل استخدام الذاكرة
    • تحسين عملية إنشاء الرموز البرمجية (تخصيص أفضل للتسجيل، وجداول سلاسل أكثر ذكاءً)
    • تجربة أفضل لتصحيح الأخطاء عند تتبُّع تنفيذ الرمز

    ولن تحتاج إلى إجراء أي تغييرات على الرمز البرمجي أو سير عمل التطوير للاستفادة من هذه المزايا، إلا إذا كنت قد أوقفت برنامج الترجمة البرمجية D8 يدويًا في السابق.

    إذا ضبطت android.enableD8 على false في gradle.properties، عليك إما حذف هذا العلم أو ضبطه على true:

            android.enableD8=true
          

    لمزيد من التفاصيل، يُرجى الاطّلاع على مترجم DEX الجديد.

    إزالة التشويش التدريجية

    بالنسبة إلى المشاريع التي تستخدم ميزات لغة Java 8، يتم تفعيل ميزة إزالة التشويش التدريجية تلقائيًا، ما يمكن أن يحسّن من مدة الإنشاء.

    تعمل عملية إزالة السكر النحوي على تحويل السكر النحوي إلى شكل يمكن للمترجم البرمجي معالجته بكفاءة أكبر.

    يمكنك إيقاف عملية إزالة التشويش التدريجية من خلال تحديد ما يلي في ملف gradle.properties الخاص بمشروعك:

            android.enableIncrementalDesugaring=false
          
    نافذة الناتج المبسّطة

    تم استبدال وحدة تحكّم Gradle بنافذة إنشاء التي تحتوي على علامتَي التبويب مزامنة وإنشاء.

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

    التعديلات المجمّعة والفهرسة المتزامنة

    أصبحت عمليتا مزامنة Gradle وفهرسة بيئة التطوير المتكاملة أكثر كفاءة، ما يقلّل الوقت المستغرَق في العديد من عمليات الفهرسة المكرّرة.

    ‫C++ وLLDB

    أجرينا العديد من التحسينات على الجودة والأداء في مراحل الترميز والمزامنة والإنشاء وتصحيح الأخطاء في عملية تطوير C++. تشمل التحسينات ما يلي:

    • إذا كنت تعمل على مشاريع C++ كبيرة، ستلاحظ تحسّنًا كبيرًا في تقليل الوقت المستغرَق في إنشاء الرموز. كما تم تقليل وقت المزامنة بشكل كبير للمشاريع الكبيرة.

    • تم تحسين الأداء عند الإنشاء والمزامنة باستخدام CMake من خلال إعادة استخدام النتائج المخزّنة مؤقتًا بشكل أكثر فعالية.

    • تسهّل إضافة أدوات التنسيق ("أدوات الطباعة الجميلة") إلى المزيد من هياكل بيانات C++ قراءة ناتج LLDB.

    • لا يعمل مصحّح أخطاء LLDB الآن إلا مع الإصدار 4.1 من نظام التشغيل Android (المستوى 16 لواجهة برمجة التطبيقات) والإصدارات الأحدث.

    ملاحظة: لا يمكن إجراء تصحيح الأخطاء الأصلي باستخدام الإصدار 3.0 من Android Studio أو الإصدارات الأحدث على نظام التشغيل Windows 32 بت. إذا كنت تستخدم نظام التشغيل Windows 32 بت وتحتاج إلى تصحيح أخطاء الرمز البرمجي الأصلي، استخدِم الإصدار 2.3 من "استوديو Android".

    Kotlin

    تمت ترقية Kotlin إلى الإصدار 1.2.30

    يتضمّن الإصدار 3.1 من &quot;استوديو Android&quot; Kotlin الإصدار 1.2.30.

    تحليل رمز Kotlin البرمجي الآن باستخدام أداة lint للتحقّق من سطر الأوامر

    يمكنك الآن تحليل فئات Kotlin عند تشغيل أداة lint من سطر الأوامر.

    بالنسبة إلى كل مشروع تريد تشغيل أداة lint عليه، يجب تضمين مستودع Google Maven في ملف build.gradle ذي المستوى الأعلى. يتم تضمين مستودع Maven تلقائيًا في المشاريع التي تم إنشاؤها في الإصدار 3.0 من &quot;استوديو Android&quot; والإصدارات الأحدث.

    أدوات الأداء

    أخذ عيّنات من عمليات C++ الأصلية باستخدام "أداة فحص وحدة المعالجة المركزية"

    يتضمّن CPU Profiler الآن إعدادًا تلقائيًا لتسجيل عمليات تتبُّع مأخوذة من عيّنات لسلاسل التعليمات البرمجية الأصلية في تطبيقك. يمكنك استخدام هذا الإعداد من خلال نشر تطبيقك على جهاز يعمل بالإصدار 8.0 (المستوى 26 من واجهة برمجة التطبيقات) من نظام التشغيل Android أو إصدار أحدث، ثم اختيار أخذ عيّنات (أصلية) من القائمة المنسدلة لإعدادات التسجيل في "أداة تحليل وحدة المعالجة المركزية". بعد ذلك، يمكنك تسجيل وفحص عملية تتبُّع كالمعتاد.

    يمكنك تغيير الإعدادات التلقائية، مثل فاصل أخذ العيّنات، من خلال إنشاء إعدادات تسجيل.

    للعودة إلى تتبُّع سلاسل Java، اختَر إعداد تم أخذ عينات منه (Java) أو تم قياسه (Java).

    فلترة عمليات تتبُّع وحدة المعالجة المركزية ونتائج تخصيص الذاكرة وعمليات تفريغ الذاكرة المؤقتة

    تتضمّن أداتا CPU Profiler وMemory Profiler ميزة بحث تتيح لك فلترة النتائج من تسجيل تتبُّع طريقة أو عمليات تخصيص الذاكرة أو تفريغ الذاكرة المؤقتة.

    للبحث، انقر على فلتر في أعلى يسار اللوحة، واكتب طلب البحث، ثم اضغط على Enter.

    ملاحظة: يمكنك أيضًا فتح حقل البحث من خلال الضغط على Control + F (Command + F على أجهزة Mac).

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

    لمزيد من المعلومات حول الفلترة حسب الطريقة أو الفئة أو اسم الحزمة، يُرجى الاطّلاع على تسجيل عمليات تتبُّع الطرق وفحصها.

    علامة التبويب "الطلب" في "أداة تحليل الشبكة"

    يتضمّن أداة تحليل الشبكة الآن علامة التبويب طلب التي تقدّم تفاصيل حول طلبات الشبكة خلال المخطط الزمني المحدّد. في الإصدارات السابقة، كان &quot;أداة تحليل الشبكة&quot; تقدّم معلومات حول استجابات الشبكة فقط.

    طريقة عرض سلاسل المحادثات في "محلّل الشبكة"

    بعد اختيار جزء من المخطط الزمني في أداة تحليل بيانات الشبكة، يمكنك اختيار إحدى علامات التبويب التالية للاطّلاع على مزيد من التفاصيل حول نشاط الشبكة خلال هذا الإطار الزمني:

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

    أداة فحص التنسيق

    تمت إضافة ميزات جديدة إلى أداة فحص التنسيق، بما في ذلك بعض الوظائف التي كانت توفّرها سابقًا الأداتان المتوقّفتان Hierarchy Viewer وPixel Perfect:

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

    أداة تعديل التنسيق

    تم إجراء العديد من التحسينات على لوحة الألوان في أداة تعديل التصميم، وهي:

    يمكنك استخدام الأمر الجديد تحويل طريقة العرض في شجرة المكوّنات أو أداة تعديل التصميم لتحويل طريقة عرض أو تخطيط إلى نوع آخر من طرق العرض أو التخطيطات.

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

    التشغيل و"التشغيل الفوري"

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

    عند استهداف جهاز يعمل بالإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث، يمكن أن تنشر ميزة التشغيل الفوري التغييرات على الموارد بدون التسبّب في إعادة تشغيل التطبيق. وهذا ممكن لأنّ الموارد مضمّنة في حِزمة APK مقسّمة.

    المحاكي

    للاطّلاع على تفاصيل حول الميزات الجديدة والتغييرات التي تم إجراؤها على المحاكي منذ الإصدار 3.0 من Android Studio، راجِع ملاحظات إصدار Android Emulator من الإصدار 27.0.2 إلى الإصدار 27.1.12.

    تشمل التحسينات الرئيسية ما يلي:

    • لقطات Quick Boot لحفظ حالة المحاكي وبدء التشغيل بشكل أسرع، مع إمكانية استخدام الأمر الحفظ الآن لحفظ حالة بدء مخصّصة.
    • شاشة المحاكي بدون نوافذ
    • صور نظام التشغيل Android 8.0 (المستوى 26 من واجهة برمجة التطبيقات) وAndroid 8.1 (المستوى 27 من واجهة برمجة التطبيقات) وAndroid P Developer Preview

    تحسينات على واجهة المستخدم وتجربة المستخدم

    المزيد من تلميحات الأدوات واختصارات لوحة المفاتيح والرسائل المفيدة

    أضفنا تلميحات وأدوات تراكب للرسائل المفيدة في مواضع عديدة في Android Studio.

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

    الأدوات > تمت إزالة قائمة Android

    تمت إزالة قائمة الأدوات > Android. تم نقل الأوامر التي كانت تظهر سابقًا ضمن هذه القائمة.

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

    تتوفّر أداة "مراقبة الجهاز" من سطر الأوامر

    في الإصدار 3.1 من Android Studio، لم يعُد &quot;مراقب الجهاز&quot; يؤدي الدور نفسه الذي كان يؤديه في السابق. في العديد من الحالات، يتم توفير الوظائف المتاحة من خلال &quot;مراقبة الأجهزة&quot; باستخدام أدوات جديدة ومحسّنة.

    راجِع مستندات &quot;مراقبة الأجهزة&quot; للحصول على تعليمات حول استدعاء &quot;مراقبة الأجهزة&quot; من سطر الأوامر وللاطّلاع على تفاصيل الأدوات المتاحة من خلال &quot;مراقبة الأجهزة&quot;.

    ‫3.0 (أكتوبر 2017)

    ‫Android Studio 3.0.0 هو إصدار رئيسي يتضمّن مجموعة متنوّعة من الميزات والتحسينات الجديدة.

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

    3.0.1 (تشرين الثاني/نوفمبر 2017)

    هذا تحديث بسيط للإصدار 3.0 من Android Studio يتضمّن إصلاحات عامة للأخطاء وتحسينات في الأداء.

    الإصدار 3.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android

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

    • أوقات إعداد أسرع بسبب ميزة حلّ التبعيات الجديدة المؤجّلة
    • حلّ التبعيات التي تتضمّن صيغًا مختلفة للمشاريع والصيغ التي تعمل على إنشائها فقط
    • تقليل مدة الإنشاء التزايدي عند تطبيق تغييرات بسيطة على الرمز أو الموارد

    ملاحظة: تطلّبت هذه التحسينات إجراء تغييرات كبيرة تؤدي إلى إيقاف بعض سلوكيات المكوّن الإضافي ولغة DSL وواجهات برمجة التطبيقات. قد تتطلّب الترقية إلى الإصدار 3.0.0 إجراء تغييرات على ملفات الإصدار والمكوّنات الإضافية لنظام Gradle.

    يتضمّن هذا الإصدار أيضًا ما يلي:

    • يتوافق مع الإصدار 8.0 من نظام التشغيل Android.
    • إتاحة إنشاء حِزم APK منفصلة استنادًا إلى موارد اللغة
    • إتاحة مكتبات Java 8 وميزات لغة Java 8 (بدون برنامج الترجمة Jack)
    • إتاحة استخدام الإصدار 1.0 من "مكتبة دعم اختبار Android" (أداة اختبار Android ومنسّق اختبارات Android)
    • تحسين سرعات الإنشاء باستخدام ndk-build وcmake
    • تم تحسين سرعة مزامنة Gradle.
    • تم الآن تفعيل أداة AAPT2 تلقائيًا.
    • أصبح استخدام ndkCompile أكثر تقييدًا. بدلاً من ذلك، عليك الانتقال إلى استخدام CMake أو ndk-build لتجميع الرمز البرمجي الأصلي الذي تريد تضمينه في حزمة APK. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة نقل البيانات من ndkcompile.

    لمزيد من المعلومات حول التغييرات، راجِع ملاحظات إصدار &quot;المكوّن الإضافي لنظام Gradle المتوافق مع Android&quot;.

    إذا كنت مستعدًا للترقية إلى المكوّن الإضافي الجديد، راجِع مقالة نقل البيانات إلى الإصدار 3.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android.

    التوافق مع Kotlin

    كما أعلنّا في مؤتمر Google I/O لعام 2017، أصبحت لغة البرمجة Kotlin متاحة رسميًا على Android. وبالتالي، يتضمّن هذا الإصدار دعمًا للغة Kotlin في تطوير تطبيقات Android.

    يمكنك دمج Kotlin في مشروعك عن طريق تحويل ملف Java إلى ملف Kotlin (انقر على الرمز البرمجي > تحويل ملف Java إلى ملف Kotlin) أو عن طريق إنشاء مشروع جديد متوافق مع Kotlin باستخدام معالج &quot;مشروع جديد&quot;.

    للبدء، يمكنك الاطّلاع على كيفية إضافة Kotlin إلى مشروعك.

    إتاحة ميزات لغة Java 8

    يمكنك الآن استخدام بعض ميزات لغة Java 8 واستخدام المكتبات التي تم إنشاؤها باستخدام Java 8. لم يعُد Jack مطلوبًا، ويجب أولاً إيقاف Jack لاستخدام ميزة التوافق المحسّنة مع Java 8 المضمّنة في مجموعة الأدوات التلقائية.

    لتعديل مشروعك كي يتوافق مع مجموعة أدوات لغة Java 8 الجديدة، عدِّل توافق المصدر وتوافق الإصدار المستهدف إلى 1.8 في مربّع الحوار بنية المشروع (انقر على ملف > بنية المشروع). لمزيد من المعلومات، اطّلِع على كيفية استخدام ميزات لغة Java 8.

    Android Profiler

    يحلّ Android Profiler الجديد محل أداة Android Monitor، كما يوفّر مجموعة جديدة من الأدوات لقياس استخدام وحدة المعالجة المركزية والذاكرة والشبكة في تطبيقك في الوقت الفعلي. يمكنك إجراء تتبُّع الأسلوب المستند إلى العيّنات لتحديد وقت تنفيذ الرمز البرمجي، وتسجيل عمليات تفريغ الذاكرة المؤقتة، وعرض عمليات تخصيص الذاكرة، وفحص تفاصيل الملفات المنقولة عبر الشبكة.

    لفتحها، انقر على عرض > نوافذ الأدوات > Android Profiler (أو انقر على Android Profiler في شريط الأدوات).

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

    ملاحظة: تم أيضًا نقل طريقة عرض Logcat إلى نافذة منفصلة (كانت في السابق داخل Android Monitor الذي تمت إزالته).

    من المخطط الزمني العام في Android Profiler، انقر على المخططات الزمنية وحدة المعالجة المركزية (CPU) أو الذاكرة أو الشبكة للوصول إلى أدوات Profiler ذات الصلة.

    محلّل وحدة المعالجة المركزية (CPU)

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

    لمزيد من المعلومات، اطّلِع على دليل أداة فحص استخدام وحدة المعالجة المركزية.

    Memory Profiler

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

    لمزيد من المعلومات، راجِع دليل Memory Profiler.

    محلّل الشبكة

    تتيح لك أداة Network Profiler مراقبة نشاط الشبكة في تطبيقك، وفحص حمولة كل طلب من طلبات الشبكة، والرجوع إلى الرمز البرمجي الذي أنشأ طلب الشبكة.

    لمزيد من المعلومات، راجِع دليل Network Profiler.

    إنشاء ملفات تعريف لحِزم APK وتصحيح الأخطاء فيها

    يتيح لك &quot;استوديو Android&quot; الآن تحديد المشاكل وحلّها في أي ملف APK بدون الحاجة إلى إنشائه من مشروع &quot;استوديو Android&quot;، وذلك طالما تم إنشاء ملف APK لإتاحة تصحيح الأخطاء وكان بإمكانك الوصول إلى رموز تصحيح الأخطاء وملفات المصدر.

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

    لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء ملفات تعريف وتصحيح أخطاء حِزم APK المُنشأة مسبقًا.

    مُستكشف الملفات المحفوظة على الجهاز

    يتيح لك &quot;مستكشف ملفات الأجهزة&quot; الجديد فحص نظام الملفات على جهازك المتصل ونقل الملفات بين الجهاز والكمبيوتر. يحلّ هذا الخيار محلّ أداة نظام الملفات المتاحة في DDMS.

    لفتحها، انقر على عرض (View) > نوافذ الأدوات (Tool Windows) > مستكشف ملفات الأجهزة (Device File Explorer).

    لمزيد من المعلومات، يُرجى الاطّلاع على دليل "مستكشف ملفات الجهاز".

    التطبيقات الفورية المتوافقة

    تتيح لك ميزة &quot;التطبيقات الفورية&quot; الجديدة لنظام التشغيل Android إنشاء تطبيقات فورية في مشروعك باستخدام نوعَين جديدَين من الوحدات، وهما وحدات التطبيقات الفورية ووحدات الميزات (يتطلّب ذلك تثبيت حزمة تطوير البرامج (SDK) الخاصة بتطوير التطبيقات الفورية).

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

    وعندما تكون مستعدًا لاختبار تطبيقك الفوري، يمكنك إنشاء وحدة التطبيق الفوري وتشغيلها على جهاز متصل من خلال تحديد عنوان URL الخاص بالتطبيق الفوري ضمن خيارات تشغيل إعدادات التشغيل: انقر على تشغيل > تعديل الإعدادات، واختَر وحدة التطبيق الفوري، ثم اضبط عنوان URL ضمن خيارات التشغيل.

    لمزيد من المعلومات، يُرجى الاطّلاع على تطبيقات Android الفورية.

    وحدات Android Things

    قوالب Android Things الجديدة في معالِجَي "مشروع جديد" و"وحدة جديدة" لمساعدتك في بدء تطوير تطبيقات لأجهزة إنترنت الأشياء التي تعمل بنظام التشغيل Android

    لمزيد من المعلومات، اطّلِع على كيفية إنشاء مشروع Android Things.

    معالج الرموز التكيّفية

    تتيح أداة Image Asset Studio الآن استخدام رسومات متجهة، كما تتيح إنشاء رموز تكيّفية لمشغّل التطبيقات في Android 8.0، مع إمكانية إنشاء رموز تقليدية ("رموز قديمة") في الوقت نفسه للأجهزة القديمة.

    للبدء، انقر بزر الماوس الأيمن على المجلد res في مشروعك، ثم انقر على New (جديد) > Image Asset (مادة عرض صورة). في نافذة Asset Studio، اختَر رموز مشغّل التطبيق (متكيّفة وقديمة) كنوع الرمز.

    ملاحظة: يجب ضبط compileSdkVersion على 26 أو أعلى لاستخدام رموز مشغّل التطبيقات التكيُّفية.

    لمزيد من المعلومات، اطّلِع على مقالة الرموز التكيّفية.

    التوافق مع موارد الخطوط

    لتوفير دعم لموارد الخطوط الجديدة في الإصدار 8.0 من نظام التشغيل Android، يتضمّن &quot;استوديو Android&quot; أداة اختيار موارد الخطوط للمساعدة في تجميع الخطوط في تطبيقك أو ضبط مشروعك لتنزيل الخطوط على الجهاز (عند توفّرها). يمكن لمحرّر التصميم أيضًا معاينة الخطوط في التصميم.

    لتجربة الخطوط القابلة للتنزيل، تأكَّد من أنّ جهازك أو المحاكي يعمل بالإصدار 11.2.63 أو إصدار أحدث من &quot;خدمات Google Play&quot;. لمزيد من المعلومات، اطّلِع على مقالة الخطوط القابلة للتنزيل.

    أداة "فهرسة التطبيقات على Firebase"

    تم تعديل "مساعد Firebase" وإضافة دليل توجيهي جديد لاختبار فهرسة التطبيقات. لفتح "مساعد Firebase"، اختَر الأدوات > Firebase. بعد ذلك، اختَر فهرسة التطبيقات > اختبار فهرسة التطبيقات.

    يتضمّن البرنامج التعليمي أزرارًا جديدة لاختبار فهرسة المحتوى العام والشخصي:

    • في الخطوة 2، انقر على معاينة نتائج البحث للتأكّد من أنّ عناوين URL تظهر في نتائج البحث من Google.
    • في الخطوة 3، انقر على التحقّق من وجود أخطاء للتأكّد من أنّه تمّت إضافة العناصر القابلة للفهرسة في تطبيقك إلى فهرس المحتوى الشخصي.

    تم تعديل مساعِد روابط التطبيقات وإضافة الإمكانات الجديدة التالية:

    • أضِف اختبارات عناوين URL لكل عملية ربط عناوين URL للتأكّد من أنّ فلاتر الأهداف تتعامل مع عناوين URL من العالم الحقيقي.

      يمكنك أيضًا تحديد اختبارات عناوين URL هذه يدويًا باستخدام العلامة <tools:validation> الموضّحة أدناه.

    • أنشئ ملف Digital Asset Links يتضمّن إدخال العنصر المناسب لتفعيل Google Smart Lock، وأضِف علامة asset_statements <meta-data> المناسبة إلى ملف البيان.

    أداة التحقّق من صحة فلتر الأهداف الخاص بعناوين URL

    يتيح لك &quot;استوديو Android&quot; الآن استخدام علامة خاصة في ملف البيان تتيح لك اختبار عناوين URL الخاصة بفلاتر الأهداف. وهذه هي العلامات نفسها التي يمكن أن ينشئها لك &quot;مساعد روابط التطبيق&quot;.

    لتعريف عنوان URL اختباري لفلتر الأهداف، أضِف العنصر <tools:validation> بجانب العنصر <intent-filter> المقابل. مثلاً:

          <activity ...>
              <intent-filter>
                  ...
              </intent-filter>
              <tools:validation testUrl="https://www.example.com/recipe/1138" />
          </activity>
        
        

    احرص أيضًا على تضمين xmlns:tools="http://schemas.android.com/tools" في العلامة <manifest>.

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

    أداة تعديل التنسيق

    تم تعديل أداة تعديل التصميم من خلال إضافة عدد من التحسينات، بما في ذلك ما يلي:

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

    أداة فحص التنسيق

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

    أداة تحليل ملفات APK

    يمكنك الآن استخدام "أداة تحليل حِزم APK" من سطر الأوامر باستخدام أداة apkanalyzer.

    تم أيضًا تعديل "أداة تحليل ملفات APK" من خلال التحسينات التالية:

    • بالنسبة إلى حِزم APK التي تم إنشاؤها باستخدام ProGuard، يمكنك تحميل ملفات ربط ProGuard التي تضيف إمكانات إلى عارض DEX، بما في ذلك:
      • عُقد بخط غليظ للإشارة إلى أنّه يجب عدم إزالة العُقد عند تصغير الرمز.
      • زر لعرض العُقد التي تمت إزالتها أثناء عملية التصغير
      • زر يعيد الأسماء الأصلية للعُقد في العرض الشجري التي تم تشويشها بواسطة ProGuard.
    • يعرض DEX Viewer الآن التأثير المقدَّر لحجم كل حزمة وفئة وطريقة.
    • خيارات فلترة جديدة في الأعلى لعرض الحقول والطُرق وإخفائها
    • في العرض الشجري، تظهر العُقد التي تمثل مراجع غير محدّدة في ملف DEX بخط مائل.

    لمزيد من المعلومات، يُرجى الاطّلاع على تحليل الإصدار باستخدام "أداة تحليل حِزم APK".

    معاينة لمترجم D8 DEX

    يتضمّن الإصدار 3.0 من "استوديو Android" برنامج ترجمة DEX جديدًا اختياريًا يُسمى D8. سيحلّ محلّ برنامج DX المجمّع في النهاية، ولكن يمكنك اختيار استخدام برنامج D8 المجمّع الجديد الآن.

    تؤثّر عملية تجميع DEX بشكل مباشر في وقت إنشاء تطبيقك وحجم ملف .dex وأداء وقت التشغيل. وعند مقارنة برنامج الترجمة البرمجية الجديد D8 ببرنامج الترجمة البرمجية الحالي DX، نجد أنّ D8 يترجم الرموز البرمجية بشكل أسرع وينتج ملفات .dex أصغر حجمًا، مع الحفاظ على مستوى أداء وقت تشغيل التطبيق نفسه أو تحسينه.

    لتجربتها، اضبط ما يلي في ملف gradle.properties الخاص بمشروعك:

    android.enableD8=true
        

    لمزيد من المعلومات، يمكنك الاطّلاع على مشاركة المدونة حول برنامج الترجمة البرمجية D8.

    مستودع Maven من Google

    يستخدم &quot;استوديو Android&quot; الآن مستودع Maven من Google تلقائيًا بدلاً من الاعتماد على أداة Android SDK Manager للحصول على تحديثات لمكتبة Android Support Library و&quot;خدمات Google Play&quot; وFirebase والعناصر التابعة الأخرى. يسهّل ذلك إبقاء مكتباتك محدّثة، خاصةً عند استخدام نظام دمج متواصل (CI).

    تتضمّن جميع المشاريع الجديدة الآن مستودع Google Maven تلقائيًا. لتعديل مشروعك الحالي، أضِف google() في حزمة repositories ضمن ملف build.gradle ذي المستوى الأعلى:

          allprojects {
              repositories {
                  google()
              }
          }
        
        

    مزيد من المعلومات حول مستودع Maven من Google

    تغييرات أخرى

    • لم يعُد تصحيح الأخطاء البرمجية الأصلي باستخدام "استوديو Android" متوافقًا مع أنظمة التشغيل Windows بإصدار 32 بت. وقد اخترنا التركيز على منصات أخرى لأنّ عددًا قليلاً جدًا من المطوّرين يستخدمون هذه المنصة. إذا كنت تستخدم نظام التشغيل Windows‏ 32 بت وتخطّط لتصحيح أخطاء الرمز البرمجي الأصلي، عليك مواصلة استخدام الإصدار 2.3 من "استوديو Android".
    • تمت ترقية بيئة التطوير المتكاملة الأساسية إلى IntelliJ 2017.1.2، التي تضيف عددًا من الميزات الجديدة من 2016.3 و 2017.1، مثل إعادة تصميم رمز Java 8، وتلميحات المَعلمات، والتمييز الدلالي، ونقاط الإيقاف القابلة للسحب، والنتائج الفورية في البحث، وغير ذلك الكثير.
    • تمت إضافة العديد من عمليات فحص lint الجديدة.
    • يمكنك أيضًا الاطّلاع على آخر تحديثات "محاكي Android".

    ‫2.3 (مارس 2017)

    الإصدار 2.3.0 من &quot;استوديو Android&quot; هو في الأساس إصدار لإصلاح الأخطاء وتعزيز الثبات، ولكنّه يتضمّن أيضًا عددًا من الميزات الجديدة.

    ‫2.3.3 (يونيو 2017)

    هذا تحديث بسيط لإضافة توافق مع الإصدار Android O (المستوى 26 لواجهة برمجة التطبيقات).

    2.3.2 (أبريل 2017)

    هذا تحديث بسيط للإصدار 2.3 من &quot;استوديو Android&quot; يتضمّن التغييرات التالية:

    • تحديث "مدير الأجهزة الافتراضية لنظام التشغيل Android" ليتوافق مع Google Play في صور النظام
    • إصلاحات للأخطاء في إصدارات NDK عند استخدام الإصدار 14 أو إصدار أحدث من NDK

    راجِع أيضًا التحديثات المقابلة لبرنامج محاكي Android الإصدار 26.0.3.

    2.3.1 (أبريل 2017)

    هذا تحديث بسيط للإصدار 2.3 من Android Studio يحلّ مشكلة عدم عمل بعض أجهزة Android الفعلية بشكل سليم مع ميزة التشغيل الفوري (راجِع المشكلة رقم 235879).

    <h3 class="hide-from-toc">
      New
    </h3>
    
    <div class="video-wrapper-left">
      <iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
              data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
      </iframe>
    </div>
    
    <ul>
      <li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
      WebP format. WebP is an image file format from Google that provides lossy
      compression (like JPEG) as well as transparency (like PNG) but can provide
      better compression than either JPEG or PNG. For more information, see
        <a href="/studio/write/convert-webp.html">Convert images to WebP in Android
        Studio</a>.
      </li>
    
      <li>The new <a href="/studio/write/app-link-indexing.html">App Links
      Assistant</a> simplifies the process of adding Android App Links to your app
      into a step-by-step wizard. Android App Links are HTTP URLs that bring users
      directly to specific content in your Android app.
      </li>
    
      <li>The Layout Editor now includes support for two new ConstraintLayout
      features:
        <ul>
          <li>Define a view size based on an aspect ratio.
          </li>
          <li>Create packed, spread, and weighted linear groups with constraint
          chains.
          </li>
        </ul>
        For more information, see <a href=
        "/training/constraint-layout/index.html">Build a Responsive UI with
        ConstraintLayout</a>.
      </li>
    
      <li>The Layout Editor also now lets you create a list of <a href=
      "/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
      you don't have to click <b>View all attributes</b> to access the attributes
      you use most.
      </li>
    
      <li>When adding a material icon using the Vector Import Dialog (<b>File &gt;
      New &gt; Vector Asset</b>), you can now filter the list of available icons by
      category or by icon name. For more information, see <a href=
      "/studio/write/vector-asset-studio.html#materialicon">Adding a material
      icon</a>.
      </li>
    
      <li>
        <a href="/studio/write/annotations.html#accessibility">New and updated
        annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
        classes, and packages lets you restrict an API. The updated
        <code>@VisibleForTesting</code> annotation now has an optional
        <code>otherwise</code> argument that lets you designate what the visibility
        of a method should be if not for the need to make it visible for testing.
        Lint uses the <code>otherwise</code> option to enforce the intended
        visibility of the method.
      </li>
    
      <li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
      allows you to use a snapshot of your project's current set of warnings as a
      baseline for future inspection runs so only new issues are reported. The
      baseline snapshot lets you start using lint to fail the build for new issues
      without having to go back and address all existing issues first.
      </li>
    
      <li>New lint checks, including the following:
        <ul>
          <li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
          code that checks for SDK versions.
          </li>
          <li>Object Animator Validation: Lint analyzes your code to make sure that
          your <code>ObjectAnimator</code> calls reference valid methods with the
          right signatures and checks that those methods are annotated with <code>
            @Keep</code> to prevent ProGuard from renaming or removing them during
            release builds.
          </li>
          <li>Unnecessary Item Decorator Copy: Older versions of the
          <code>RecyclerView</code> library did not include a divider decorator
          class, but one was provided as a sample in the support demos. Recent
          versions of the library have a divider decorator class. Lint looks for
          the old sample and suggests replacing it with the new one.
          </li>
          <li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
          the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class&lt;T&gt;)">Context.getSystemService()</a></code>
          can cause a memory leak if the context is not the application context.
          Lint looks for these initializations, and if it <em>cannot</em> determine
          that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
          initialization.
          </li>
          <li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
          lint check had many limitations. You can now configure your project with
          a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
          }</code>, and lint makes sure that all of your resources are using this
          prefix. You can use variations of the name for styles and themes. For
          example for the <var>my_lib</var> prefix, you can have themes named
          <code>MyLibTheme</code>, <code>myLibAttr</code>,
          <code>my_lib_layout</code>, and so on.
          </li>
          <li>Switch to WebP: This check identifies images in your project that can
          be converted to WebP format based on your projects
          <code>minSdkVersion</code> setting. An associated quickfix can
          automatically convert the images, or you can <a href=
          "/studio/write/convert-webp.html">convert images to WebP</a> manually.
          </li>
          <li>Unsafe WebP: If your project already includes WebP images, this check
          analyzes your project to ensure that your <code>minSdkVersion</code>
          setting is high enough to support the included images. For more
          information about WebP support in Android and Android Studio, see
          <a class="external" href=
          "https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
            Which browsers natively support WebP?</a> and <a href=
            "/studio/write/convert-webp.html">Create WebP Images Using Android
            Studio</a>.
          </li>
        </ul>
      </li>
    </ul>
    
    <h3 class="hide-from-toc">
      Changes
    </h3>
    
    <ul>
      <li>A separate button to push changes with Instant Run: After deploying your
      app, you now click <b>Apply Changes</b> <img src=
      "/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
      "inline-icon"> to quickly push incremental changes to your running app using
      Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
        alt="" class="inline-icon"> and <b>Debug</b> <img src=
        "/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
        buttons are always available to you when you want to reliably push your
        changes and force an app restart.
        <ul>
          <li>Instant Run is supported only when deploying your app to a target
          device running Android 5.0 (API level 21) or higher.
          </li>
          <li>Instant Run is no longer disabled for projects that <a href=
          "/studio/projects/add-native-code.html">link to external native
          projects</a> using CMake or ndk-build. However, you can only use Instant
          Run to push incremental changes to your Java code, not your native code.
          </li>
          <li>Cold swaps (which you can force for a running app by clicking
          <strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
          alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
          also fixes the issue where changes to notification and widget UIs were
          not updated on the target device.
          </li>
          <li>Includes optimizations that make app startup much faster. These
          optimizations may affect profiling, so you should temporarily <a href=
          "/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
          profiling your app.
          </li>
        </ul>
      </li>
    
      <li>
        <p>
          The <b>AVD Manager</b> <img src=
          "/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
          "inline-icon"> and <b>SDK Manager</b> <img src=
          "/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
          "inline-icon"> buttons are now included in the lean Navigation Bar as
          well as the full Toolbar. To use the lean Navigation Bar, click
          <b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
          is selected and <b>Toolbar</b> is <em>not</em> selected.
        </p>
        <img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
      </li>
    
      <li>The "Hybrid" debugger has been renamed to "Dual" debugger.
      </li>
    
      <li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
      Configurations</a> dialog, under Defaults in the left pane, the following run
      configuration names have changed with no behavior changes:
        <ul>
          <li>The JUnit name has changed to Android JUnit. If you have a project
          that uses JUnit run configurations, those configurations are transformed
          to Android JUnit run configurations the first time you open the project
          with Android Studio. A dialog appears to inform you of the name change.
          </li>
          <li>The Android Tests name has changed to Android Instrumented Tests.
          </li>
        </ul>
      </li>
    
      <li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
      been removed from Android Studio as of version 2.3. An open-source,
      standalone version of the tool is now available on <a href=
      "https://github.com/google/gapid" class="external-link">GitHub</a>.
      </li>
    
      <li>The Run/Debug option is no longer available when you right-click a <code>
        *.gradle build</code> script.
      </li>
    
      <li>All templates now use <code>ConstraintLayout</code> as the default
      layout.
      </li>
    
      <li>The Widgets palette in the Layout Editor has been redesigned.
      </li>
    </ul>
    
    <p>
      This release also includes a number of bug fixes. <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.3+status%3DReleased&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.3.0.</a>
    </p>
    
    <p class="note">
      <b>Known issue:</b> Some device manufacturers block apps from automatically
      launching after being installed on the device. When deploying your app to a
      physical device using Android Studio 2.3, this restriction breaks the
      intended behavior of Instant Run and causes the following error output:
      <code>Error: Not found; no service started</code>. To avoid this issue,
      either <a href="/studio/run/emulator.html">use the emulator</a> or enable
      automatic launching for your app in your device's settings. The procedure
      for doing this is different for each device, so check the instructions
      provided by the manufacturer. To learn more about this issue, see
      <a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
        #235879</a>.
    </p>
    

    ‫2.2 (سبتمبر 2016)

    2.2.3 (ديسمبر 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a bug fixes
      focused around gradle, the core IDE, and lint.
    </p>
    
    <p>
      Highlighted build changes:
    </p>
    
    <ul>
      <li>ProGuard version rollback. Due to a <a href=
      "https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
      discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
      have worked with the ProGuard team on getting a fix quickly, and we expect
      to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
      </li>
      <li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
      not working properly (<a href="http://b.android.com/224167">issue
      224167</a>)
      </li>
      <li>Bug fix for Gradle autodownload for Constraint Layout library
        (<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
        212128</a>)
      </li>
      <li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
      "http://b.android.com/227729">issue 227729</a>)
      </li>
    </ul>
    
    <p>
      <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.2.3+status%3AReleased+&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.2.3</a>.
    </p>
    

    2.2.2 (أكتوبر 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a number of small
      changes and bug fixes, including:
    </p>
    
    <ul>
      <li>When reporting Instant Run issues through the IDE, the report now also
      includes logcat output for <code>InstantRun</code> events. To help us
      improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
      </li>
      <li>A number of small bug fixes for Gradle.
      </li>
      <li>A fix for problems with generating multiple APKs.
      </li>
    </ul>
    

    2.2.1 (أكتوبر 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes several bug fixes
      and a new feature to enable extra logging to help us troubleshoot Instant
      Run issues—to help us improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
    </p>
    

    جديد

    • محرّر التصميم الجديد بالكامل مع أدوات مخصّصة لدعم ConstraintLayout
    • <li>New <strong><a href=
      "http://tools.android.com/tech-docs/layout-inspector">Layout
      Inspector</a></strong> lets you examine snapshots of your layout hierarchy
      while your app is running on the emulator or a device.
      </li>
      
      <li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
      window to help you integrate Firebase services into your app.
      </li>
      
      <li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
      Analyzer</a></strong> tool so you can inspect the contents of your packaged
      app.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/test-recorder">Espresso Test
      Recorder</a></strong> tool (currently in beta) to help you create UI tests by
      recording your own interactions.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
      (currently experimental) to speed up build performance.
      </li>
      
      <li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
      Compile and build new or existing native code into libraries packaged into
      your APK, and debug using lldb. For new projects, Android Studio uses CMake
      by default, but also supports ndk-build for existing projects. To learn how
      to include native code in your Android application, read <a href=
      "/studio/projects/add-native-code.html">Add C and C++ Code to Your
      Project</a>. To learn how to debug native code with lldb, see <a href=
      "/studio/debug/index.html#debug-native">Debug Native Code</a>.
      </li>
      
      <li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
      Browser</a></strong> so you can easily look up Google Android sample code
      from within Android Studio to jump start app development.
      </li>
      
      <li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
      manifest file merges with your app dependencies across project build
      variants.
      </li>
      
      <li>The <strong>Run</strong> window now contains log messages for the current
      running app. Note that you can configure the <a href=
      "/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
      <strong>Run</strong> window.
      </li>
      
      <li>New <strong><a href="/studio/run/emulator.html">Android
      Emulator</a></strong> features:
        <ul>
          <li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
          <strong>Cellular</strong> &gt; <strong>Signal Strength</strong> controls.
          </li>
          <li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
          &gt; <strong>Network type</strong> control.
          </li>
          <li>Added simulated vertical swipes for scrolling through vertical menus
          with a mouse wheel.
          </li>
        </ul>
      </li>
      
      <li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
      Configuration</a></strong> features:
        <ul>
          <li>The <strong>Debugger</strong> tab of the Android App and Android
          Tests templates now contain several new options for debugging with LLDB.
          </li>
          <li>The <strong>Profiling</strong> tab of the Android App and Android
          Tests templates now contain a <strong>Capture GPU Commands</strong>
          option for enabling GPU tracing. You can display GPU traces in the GPU
          Debugger (a beta feature).
          </li>
          <li>The Android Tests template now has a <strong>Firebase Test Lab Device
          Matrix</strong> option for the <strong>Deployment Target</strong>.
          </li>
          <li>The Native Application template has been deprecated. If you use this
          template in a project, Android Studio automatically converts it to the
          Android App template.
          </li>
          <li>The Android Application template has been renamed to Android App.
          </li>
        </ul>
      </li>
      
      <li>Improved installation, configuration, performance, and UI features in the
      <strong><a href="/studio/debug/am-gpu-debugger.html">GPU
      Debugger</a></strong> (currently in beta).
      </li>
      
      <li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
      Existing projects still use the JDK specified in <strong>File &gt; Project
      Structure &gt; SDK Location</strong>. You can switch to use the new bundled
      JDK by clicking <strong>File &gt; Project Structure &gt; SDK
      Location</strong> and checking the <strong>Use embedded JDK</strong>
      checkbox.
      </li>
      
      <li>Added new <strong>help menus and buttons</strong> in the UI so you can
      more easily find the online documentation.
      </li>
      

    التغييرات

    • تم تعديل قاعدة الرموز البرمجية لبيئة التطوير المتكاملة من IntelliJ 15 إلى IntelliJ 2016.1
    • يتطلّب التشغيل الفوري الآن تثبيت حزمة تطوير البرامج (SDK) الخاصة بالمنصة والمتوافقة مع مستوى واجهة برمجة التطبيقات للجهاز المستهدف.
    • سيتم إيقاف ميزة "التشغيل الفوري" تلقائيًا إذا كان المستخدم يشغّل التطبيق ضمن ملف عمل أو كمستخدم ثانوي.
    • تم إصلاح العديد من المشاكل المتعلّقة بموثوقية ميزة التشغيل الفوري، مثل عدم نشر التغييرات أو تعطُّل التطبيق:
      • لم يتم نشر بعض مواد عرض التطبيق إلى تطبيقك قيد التشغيل. ( خطأ: ‎#213454)
      • يتعطّل التطبيق عندما ينتقل المستخدم بين جلسات "التشغيل الفوري" والجلسات غير التابعة لها، حيث لا يتم تحديد serialVersionUID لفئة قابلة للتسلسل. (الخطأ: ‎#209006)
      • لا تنعكس تغييرات الأنماط مع ميزة "التشغيل الفوري". (الخطأ: ‎#210851)
      • جلسة "التشغيل الفوري" غير موثوق بها وتتسبّب في حدوث خطأ FileNotFoundException. (الخطأ: ‎#213083)
      • لم يتم عرض التغييرات التي تم إجراؤها على العناصر القابلة للرسم إلا بعد إعادة الإنشاء الكاملة في KitKat. (الخطأ: ‎#21530)
      • لا تنعكس تغييرات الموارد مع ميزة Instant Run عندما تحتوي sourceSets المخصّصة على مسارات متداخلة. (الخطأ: ‎#219145)
      • لا يعمل التبديل السريع والتبديل الدافئ إذا كان الصف الذي تم تغييره يحتوي على تعليق توضيحي مع قيمة تعداد. (خطأ: ‎#209047)
      • لا تظهر التغييرات التي يتم إجراؤها على بيانات التعليقات التوضيحية عند استخدام "التشغيل الفوري". (خطأ: ‎#210089)
      • لا يرصد ميزة &quot;التشغيل الفوري&quot; تغييرات الرمز إذا أجريت تغييرات خارج بيئة التطوير المتكاملة. (خطأ: ‎#213205)
      • جلسة "التشغيل الفوري" غير موثوق بها بسبب عدم تطابق رمز الأمان. (خطأ: ‎#211989
      • يتعذّر إجراء التبديل البارد للأجهزة التي لا تتوافق بشكل صحيح مع run-as. (الخطأ: ‎#210875)
      • تعطُّل التطبيق بعد إعادة تشغيل "التشغيل الفوري" (خطأ: ‎219744#)
      • تم رصد الخطأ ClassNotFoundException عند التبديل من "التشغيل الفوري" إلى "التصحيح الفوري". (الخطأ: ‎#215805)
    • <li>Improved performance for <strong>Gradle sync</strong> within the IDE,
      especially for large projects.
      </li>
      
      <li>Improved build times for both full and incremental builds with new app
      packaging code.
      </li>
      
      <li>Improved <strong>Jack compiler performance and features</strong>,
      including support for annotation processors and dexing in process. To learn
      more, read the <a href=
      "/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
      2.2.0 release notes</a>.
      </li>
      
      <li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
      </li>
      
      <li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
      command-line options now report which ports and serial number the emulator
      instance is using, and warn if there are any issues with the values you
      provided.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/create-java-class.html">Create New Class dialog</a></strong>
      and the corresponding file templates. <strong>Note:</strong> If you've
      previously customized the <strong>AnnotationType</strong>,
      <strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
      <strong>Singleton</strong> file templates, you need to modify your templates
      to comply with the new templates or you wont be able to use the new fields
      in the <strong>Create New Class</strong> dialog.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
      user interface and added support for Adobe Photoshop Document (PSD) files.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
      interface.
      </li>
      
      <li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
      </li>
      
      <li>Fixed memory leaks and reduced overall memory usage in Android Studio.
      </li>
      
      <li>Added a <strong>Background</strong> button in the <strong><a href=
      "/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
      get back to work and install your packages in the background.
      </li>
      
      <li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
      features</a></strong>, including support for screen readers and keyboard
      navigation.
      </li>
      
      <li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
      Java 8 language usage and more cross-file analysis.
      </li>
      
      <li>Several toolbar icons have changed.
      </li>
      

    ‫2.1 (أبريل 2016)

    توفّر التغييرات الأساسية في هذا التحديث إمكانية التطوير باستخدام الإصدار التجريبي من Android N.

    2.1.3 (أغسطس 2016)

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

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

    2.1.2 (يونيو 2016)

    يتضمّن هذا التحديث عددًا من التغييرات الصغيرة وإصلاحات للأخطاء:

    • تحديثات التشغيل الفوري وإصلاح الأخطاء
    • تحسينات على أداء LLDB وإشعارات التعطُّل
    • إصلاح مشكلة في تحديث الأمان في الإصدار 2.1.1 من &quot;استوديو Android&quot; والتي تسبّبت في تعذّر git rebase.

    2.1.1 (مايو 2016)

    تحديث إصدار الأمان

    يضيف نظام التشغيل Android N إمكانية استخدام ميزات لغة Java 8، التي تتطلب برنامج ترجمة تجريبي جديد يُسمى Jack. لا يتوافق أحدث إصدار من Jack حاليًا إلا مع Android Studio 2.1. لذا، إذا أردت استخدام ميزات لغة Java 8، عليك استخدام الإصدار Android Studio 2.1 لإنشاء تطبيقك.

    ملاحظة: يتم إيقاف التشغيل الفوري عند تفعيل برنامج التجميع Jack لأنّهما غير متوافقَين حاليًا.

    على الرغم من أنّ الإصدار Android Studio 2.1 أصبح ثابتًا الآن، إلا أنّ برنامج Jack المجمّع لا يزال تجريبيًا ويجب تفعيله باستخدام السمة jackOptions في ملف build.gradle.

    بالإضافة إلى التغييرات التي تتيح استخدام الإصدار التجريبي من نظام التشغيل N، يتضمّن الإصدار 2.1 Android Studio‎ إصلاحات طفيفة للأخطاء والتحسينات التالية:

    • يتم الآن تفعيل برنامج تصحيح الأخطاء C++ المتوافق مع Java تلقائيًا عند استخدام جهاز أو محاكي يعمل بنظام التشغيل Android N واختيار وضع تصحيح الأخطاء Native (في علامة التبويب Debugger لإعدادات التشغيل/تصحيح الأخطاء).

    للحصول على تحسينات أخرى في عملية الإنشاء، بما في ذلك تجميع Java بشكل تدريجي وإنشاء ملفات dex داخل العملية، يجب تحديث المكوّن الإضافي المتوافق مع Android لنظام Gradle إلى الإصدار 2.1.0.

    ‫2.0 (أبريل 2016)

    ملاحظة: إذا كنت تطوّر تطبيقات للإصدار التجريبي من نظام التشغيل N، عليك استخدام الإصدار التجريبي 2.1 من &quot;استوديو Android&quot;. لا يتيح الإصدار 2.0 من Android Studio جميع الميزات المطلوبة لاستهداف الإصدار التجريبي من نظام التشغيل N.

    التشغيل الفوري:

    • أصبح بإمكان &quot;استوديو Android&quot; الآن نشر الإصدارات النظيفة بشكل أسرع من أي وقت مضى. بالإضافة إلى ذلك، أصبح إرسال تغييرات الرموز المتزايدة إلى المحاكي أو الجهاز الفعلي فوريًا تقريبًا. راجِع التحديثات بدون إعادة نشر إصدار تصحيح أخطاء جديد أو بدون إعادة تشغيل التطبيق في كثير من الحالات.
    • تتيح ميزة "التشغيل الفوري" إرسال التغييرات التالية إلى تطبيق قيد التشغيل:
      • تغييرات على تنفيذ طريقة حالية من طرق المثيل أو الطرق الثابتة
      • التغييرات على أحد موارد التطبيق الحالية
      • تغييرات في الرمز البنيوي، مثل توقيع طريقة أو حقل ثابت (يتطلّب جهازًا مستهدفًا يعمل بالمستوى 21 من واجهة برمجة التطبيقات أو مستوى أعلى).
    • يمكنك الاطّلاع على المستندات لمعرفة المزيد عن ميزة "التشغيل الفوري".

      ملاحظة: لا تتوفّر ميزة &quot;التشغيل الفوري&quot; إلا عند نشر تنويعة الإصدار المخصّصة لتصحيح الأخطاء، واستخدام المكوّن الإضافي لنظام Gradle المتوافق مع Android بالإصدار 2.0.0 أو الإصدارات الأحدث، وتعديل ملف build.gradle على مستوى وحدة التطبيق ليصبح minSdkVersion 15 أو إصدارًا أحدث. لتحقيق أفضل أداء، اضبط تطبيقك على minSdkVersion 21 أو أعلى.

    الإضافات الجديدة إلى أداة Lint:

    • فحص عبارات switch باستخدام أعداد صحيحة مشروحة @IntDef للتأكّد من معالجة جميع الثوابت. لإضافة أي عبارات ناقصة بسرعة، استخدِم القائمة المنسدلة الخاصة بإجراءات النية واختَر إضافة ثوابت @IntDef الناقصة.
    • علامات لمحاولات غير صحيحة لاستخدام ميزة &quot;إدراج السلسلة&quot; من أجل إدراج أرقام الإصدارات في الملف build.gradle
    • علامات للفئات المجهولة التي توسّع الفئة Fragment
    • الإبلاغ عن الرموز البرمجية الأصلية في أماكن غير آمنة، مثل المجلدَين res/ وasset/ يشجّع هذا الخيار على تخزين الرمز البرمجي الأصلي في المجلد libs/، والذي يتم بعد ذلك تجميعه بشكل آمن في المجلد data/app-lib/ الخاص بالتطبيق أثناء عملية التثبيت. AOSP: #169950
    • علامات للمكالمات غير الآمنة إلى أرقام Runtime.load() وSystem.load() AOSP: #179980
    • ابحث عن أي موارد غير مستخدَمة وأزِلها من خلال اختيار Refactor > Remove Unused Resources من شريط القوائم. أصبحت ميزة رصد الموارد غير المستخدَمة تتيح الآن رصد الموارد التي تشير إليها الموارد غير المستخدَمة فقط، والمراجع في الملفات الأولية مثل مراجع صور .html، وسمات tools:keep وtools:discard التي يستخدمها برنامج تصغير الموارد في Gradle، مع مراعاة مجموعات رموز المصدر غير النشطة (مثل الموارد المستخدَمة في إصدارات أخرى من الإصدارات) والتعامل بشكل صحيح مع عمليات استيراد الحقول الثابتة.
    • التحقّق من أنّ مراجع واجهة برمجة التطبيقات الضمنية متوافقة مع جميع المنصات التي يستهدفها minSdkVersion
    • تشير إلى الاستخدام غير الملائم للرمزين RecyclerView وParcelable.
    • يتم الآن أيضًا التحقّق من عمليات الفحص @IntDef و@IntRange و@Size بحثًا عن مصفوفات int وvarargs.

    تحسينات إضافية:

    • تم تحسينه ليتوافق مع الإصدار 2.0 من &quot;محاكي Android&quot; الذي يتميز بسرعة فائقة ويتوافق مع مجموعة أكبر من الأجهزة الافتراضية، كما يتضمّن واجهة مستخدم محسّنة بشكل كبير. لمزيد من المعلومات حول المحاكي الجديد، يُرجى قراءة ملاحظات إصدار "أدوات حزمة تطوير البرامج (SDK)".
    • تحسينات على مدير الأجهزة الافتراضية المتوافقة مع Android:
      • يتم الآن تصنيف صور النظام ضمن علامات التبويب التالية: مقترَحة وx86 وغير ذلك.
      • ضمن الإعدادات المتقدّمة، يمكنك تفعيل ميزة التوافق مع المعالجات المتعددة النواة وتحديد عدد النوى التي يمكن للمحاكي استخدامها.
      • ضمن الإعدادات المتقدّمة، يمكنك تحديد طريقة عرض الرسومات على المحاكي من خلال اختيار أحد الخيارات التالية:
        • الأجهزة: استخدام بطاقة الرسومات في الكمبيوتر لعرض الصور بشكل أسرع
        • البرامج: استخدِم العرض المستند إلى البرامج.
        • تلقائي: السماح للمحاكي بتحديد الخيار الأفضل وهذا هو الإعداد التلقائي.
    • تم تحسين أوقات تجميع AAPT من خلال تحديد هدف النشر قبل إنشاء التطبيق. يتيح ذلك لـ Android Studio حزم الموارد المطلوبة للجهاز المحدّد فقط بكفاءة.
    • تمت إضافة ميزة الدمج مع Cloud Test Lab لتوفير اختبارات التطبيقات عند الطلب مع توفير مزايا خدمة السحابة الإلكترونية من حيث الملاءمة وقابلية التوسّع. مزيد من المعلومات حول كيفية استخدام Cloud Test Lab مع &quot;استوديو Android&quot;
    • تمت إضافة معاينة لأداة تصحيح أخطاء وحدة معالجة الرسومات الجديدة. بالنسبة إلى التطبيقات التي تتطلّب رسومات مكثّفة، يمكنك الآن تتبُّع رمز OpenGL ES بصريًا لتحسين تطبيقك أو لعبتك.
    • تمت إضافة اختبار "فهرسة التطبيقات" من Google. أضِف ميزات تتوافق مع عناوين URL وفهرسة التطبيقات ووظائف البحث إلى تطبيقاتك للمساعدة في زيادة عدد الزيارات إلى تطبيقك، واكتشاف محتوى التطبيق الأكثر استخدامًا، واجتذاب مستخدمين جدد. اختبار عناوين URL والتحقّق من صحتها في تطبيقك، كل ذلك ضمن &quot;استوديو Android&quot; راجِع مقالة إتاحة عناوين URL وفهرسة التطبيقات في &quot;استوديو Android&quot;.
    • ترقيات من أحدث إصدار من IntelliJ 15، بما في ذلك تحسين تحليل الرموز البرمجية والأداء يمكنك الاطّلاع على الميزات الجديدة في IntelliJ للحصول على وصف كامل للميزات والتحسينات الجديدة.
    • تضيف ميزة الإكمال التلقائي في محرّر XML الآن علامات اقتباس عند إكمال السمات. للتحقّق من تفعيل هذا الخيار، افتح مربّع الحوار الإعدادات أو الإعدادات المفضّلة، وانتقِل إلى المحرّر > عام > المفاتيح الذكية، وضَع علامة في المربّع بجانب إضافة علامات اقتباس لقيمة السمة عند إكمال السمة. المشكلة: 195113
    • يتيح محرِّر XML الآن إكمال الرمز البرمجي لتعبيرات ربط البيانات.

    الإصدار 1.5.1 من "استوديو Android" (ديسمبر 2015)

    الإصلاحات والتحسينات:

    • تم إصلاح مشكلة تعذُّر العرض في "محرّر التصميم". المشكلة: 194612
    • تمت إضافة إمكانية تغيير سمات ملف description البيان حسب الإعدادات. المشكلة: 194705
    • تم تحسين تباين مظهر Darcula في Android Studio في "استوديو مواد العرض الخاصة بالمتّجهات". المشكلة: 191819
    • تمت إضافة إمكانية استخدام زر المساعدة في "استوديو مواد العرض الخاصة بالمتّجهات".
    • تمت إضافة إمكانية استخدام عامل التشغيل % لربط البيانات. المشكلة: 194045
    • تم إصلاح مشكلة كانت تؤدي إلى اتصال مصحّح الأخطاء بالجهاز غير الصحيح عند تشغيل تطبيق لتصحيح الأخطاء. المشكلة: 195167
    • تم إصلاح استثناء مؤشر فارغ كان يمكن أن يحدث عند محاولة تشغيل تطبيق في سيناريوهات معيّنة.

    الإصدار 1.5.0 من "استوديو Android" (نوفمبر 2015)

    الإصلاحات والتحسينات:

    • تمت إضافة إمكانات تحليل جديدة إلى "مراقبة الذاكرة" في "أداة مراقبة Android". عند عرض ملف HPROF تم التقاطه من أداة المراقبة هذه، ستكون طريقة العرض أكثر فائدة الآن، ما يتيح لك تحديد المشاكل بشكل أسرع، مثل تسرُّب الذاكرة. لاستخدام هذه الأداة، انقر على Android Monitor في أسفل النافذة الرئيسية. في "مراقب Android"، انقر على علامة التبويب الذاكرة. أثناء تشغيل أداة المراقبة، انقر على الرمز تفريغ ذاكرة التجميع Java، ثم انقر على عمليات الالتقاط في النافذة الرئيسية وانقر مرّتين على الملف لعرضه. انقر على تسجيل التحليل على يسار الصفحة. (لا يمكن تشغيل أداة Android Device Monitor في الوقت نفسه مع أداة Android Monitor).
    • تمت إضافة ميزة دعم الروابط الجديدة لصفحات في التطبيق وروابط التطبيقات. يمكن لأداة "محرّر الرموز" إنشاء فلتر أهداف تلقائيًا لربط الصفحات في التطبيق بصفحات أخرى على الويب في ملف AndroidManifest.xml. يمكنه أيضًا إنشاء رمز برمجي لمساعدتك في الدمج مع واجهة برمجة التطبيقات لفهرسة التطبيقات في نشاط في ملف Java. تساعدك ميزة اختبار الروابط لصفحات معيّنة في التأكّد من أنّ رابطًا معيّنًا لصفحة في التطبيق يمكنه تشغيل تطبيق. في علامة التبويب عام ضمن مربّع الحوار إعدادات التشغيل/تصحيح الأخطاء، يمكنك تحديد خيارات تشغيل الروابط لصفحات معيّنة. يمكنك أيضًا اختبار طلبات بيانات من واجهة برمجة التطبيقات App Indexing في نشاط معيّن باستخدام شاشة logcat في Android Monitor. تتضمّن أداة lint في Android الآن تحذيرات بشأن بعض المشاكل المتعلقة بالروابط لصفحات معيّنة في التطبيق وواجهة برمجة التطبيقات App Indexing API.
    • تمت إضافة إمكانية استخدام أسماء قصيرة عند إكمال الرمز تلقائيًا للعروض المخصّصة في "محرّر الرموز".
    • تمت إضافة دعم المزيد من عناصر VectorDrawable إلى استوديو مواد العرض الخاصة بالمتّجهات لضمان التوافق مع الإصدارات القديمة. يمكن أن تستخدم أداة Vector Asset Studio هذه العناصر لتحويل الرسومات المتجهة إلى صور نقطية بتنسيق PNG لاستخدامها مع الإصدار 4.4 من نظام التشغيل Android (المستوى 20 من واجهة برمجة التطبيقات) والإصدارات الأقدم.
    • أضفنا عمليات فحص جديدة lint لتطبيقات Android TV وAndroid Auto بهدف تقديم ملاحظات فورية قابلة للتنفيذ في &quot;استوديو Android&quot;، بالإضافة إلى العديد من الإصلاحات السريعة. على سبيل المثال، يمكن لأداة Android TV الإبلاغ عن المشاكل وتقديم حلّ سريع لها، مثل مشاكل الأذونات والأجهزة غير المتوافقة وعنصر uses-feature والمشاكل المتعلّقة بالبانر. بالنسبة إلى Android Auto، يمكنها التحقّق من الاستخدام الصحيح في ملف الواصف المشار إليه من ملف AndroidManifest.xml، والإبلاغ في حال عدم توفّر فلتر أهداف لفئة MediaBrowserService، وتحديد بعض المشاكل المتعلّقة بالإجراءات الصوتية.
    • تمت إضافة عمليات التحقّق الجديدة lint الخاصة بمستقبِلات البث غير الآمنة، واستخدامات الفئات SSLCertificateSocketFactory وHostnameVerifier، ومكالمات File.setReadable() وFile.setWritable(). ويرصد أيضًا عمليات البحث غير الصالحة عن موارد البيان، خاصةً الموارد التي تختلف حسب الإعداد.
    • تم إصلاح عدد من المشاكل المتعلّقة بالثبات.

    الإصدار 1.4.1 من "استوديو Android" (أكتوبر 2015)

    الإصلاحات والتحسينات:

    • تم إصلاح مشكلة التخزين المؤقت لنموذج Gradle التي كانت تؤدي إلى مزامنة Gradle بشكل مفرط عند إعادة تشغيل بيئة التطوير المتكاملة.
    • تم إصلاح مشكلة تعذُّر إكمال عملية تصحيح الأخطاء في الرموز البرمجية الأصلية.
    • تم إصلاح مشكلة كانت تحظر مستخدمي نظام التحكّم في الإصدار Subversion 1.9.
    • تم إصلاح مشكلة في مربع الحوار أداة اختيار الجهاز، حيث لم يعُد بإمكانك اختيار المحاكي بعد توصيل جهاز غير مصرّح به. المشكلة: 189658
    • تم إصلاح خطأ الإبلاغ عن الترجمة غير الصحيحة للغات التي تتضمّن مؤهِّلاً للمنطقة وترجمة في المنطقة (ولكن ليس في اللغة الأساسية). المشكلة: 188577
    • تم إصلاح مشكلة تعذُّر الوصول في "أداة تعديل التصميم" مرتبطة بتفاعلها مع "أداة تعديل التنسيق". المشكلة: 188070
    • تم إصلاح مشكلة إعادة تحميل "أداة تعديل المظهر" وتعارض التعديل الذي يؤدي إلى عدم تعديل السمات بشكل صحيح. المشكلة: 187726
    • تحسين أداء "محرّر السمات"
    • تم إصلاح المشكلة المتمثّلة في تجاهل السمة android:required في ملف البيان. المشكلة: 187665

    الإصدار 1.4.0 من "استوديو Android" (سبتمبر 2015)

    الإصلاحات والتحسينات:

    • تمت إضافة أداة Vector Asset Studio لاستيراد الرسومات المتجهة، مثل رموز Material وملفات SVG. لاستخدام هذه الأداة، انقر بزر الماوس الأيمن على المجلد res في عرض Android ضمن نافذة "المشروع"، ثم اختَر جديد > أصل متّجه.
    • تمت إضافة وظائف جديدة إلى "أداة مراقبة Android"، وهي وحدة معالجة الرسومات والشبكة. لاستخدام هذه النوافذ، انقر على Android Monitor في أسفل النافذة الرئيسية. لا يمكن تشغيل أداة Android Device Monitor في الوقت نفسه مع أداة Android Monitor.
    • تمت إضافة معاينة مبكرة لأداة "محرّر المظاهر" الجديدة. لاستخدام هذه الميزة، اختَر أدوات > Android > أداة تعديل المظهر.
    • تم تعديل نماذج Android الخاصة بـ "مكتبة دعم التصميم". تتضمّن النماذج الآن دعمًا لمواصفات Material Design، بالإضافة إلى appcompat Support Library لضمان التوافق مع الإصدارات القديمة.

    الإصدار 1.3.2 من "استوديو Android" (أغسطس 2015)

    الإصلاحات والتحسينات:

    • تمت إضافة إمكانية استخدام Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات)، بما في ذلك الرموز الجديدة وإمكانية استخدام &quot;مدير الأجهزة الافتراضية لنظام Android&quot; لإنشاء أجهزة بكثافات شاشة جديدة.
    • تم إصلاح استثناء كان يحدث أثناء عمليات التحقّق من التحديثات. المشكلة: 183068
    • تم إصلاح المشكلة التي قد تؤدي فيها إحداثيات العرض التي لم يتم حلّها إلى تعطُّل أداة تعديل التصميم. المشكلة: 178690
    • تم إصلاح المشكلة المتعلقة بتحذيرات نوع المورد غير الصالح. المشكلة: 182433
    • تم إصلاح عملية فحص lint التي كانت تُصنّف الموارد بشكل خاطئ على أنّها خاصة. المشكلة: 183120

    الإصدار 1.3.1 من "استوديو Android" (أغسطس 2015)

    الإصلاحات والتحسينات:

    • تم إصلاح مشكلة عدم إمكانية إنشاء جهاز Android افتراضي (AVD) لنظام Android Wear على أجهزة Windows.
    • تم تعديل معالج المشاريع لاستخدام اسم المشروع الذي تم إدخاله.
    • تمت إضافة إمكانية تخزين حزمة تطوير البرامج (SDK) لنظام التشغيل Android في دليل للقراءة فقط.
    • تم تعديل إصدار المكوّن الإضافي لنظام Gradle المتوافق مع Android إلى 1.3.0.
    • تم إصلاح المشاكل المتعلقة بتشغيل جلسة تصحيح الأخطاء من واجهة سطر الأوامر Unix الخاصة بأداة Android Debug Bridge (adb).
    • تم إصلاح رسالة إعادة تسمية حزمة Java لعرض اسم الحزمة الصحيح.

    الإصدار 1.3.0 من "استوديو Android" (يوليو 2015)

    الإصلاحات والتحسينات:

    • تمت إضافة خيارات لتفعيل خدمات المطوّرين، مثل Google AdMob وإحصاءات Google، في تطبيقك من داخل "استوديو Android".
    • تمت إضافة تعليقات توضيحية إضافية، مثل @RequiresPermission و@CheckResults و@MainThread.
    • تمت إضافة إمكانية إنشاء عمليات تفريغ لذاكرة التجميع في Java وتحليل عمليات تخصيص سلاسل البيانات من خلال أداة مراقبة الذاكرة. يمكنك أيضًا تحويل ملفات تنسيق HPROF الثنائي الخاصة بنظام Android إلى تنسيق HPROF العادي من داخل Android Studio.
    • تم دمج SDK Manager في "استوديو Android" لتسهيل الوصول إلى الحِزم والأدوات وتقديم إشعارات التحديثات.

      ملاحظة: لا يزال بإمكانك استخدام أداة SDK Manager المستقلة من سطر الأوامر، ولكن يُنصح باستخدامها فقط مع عمليات تثبيت حِزم SDK المستقلة.

    • تمت إضافة الأمر finger في وحدة تحكّم المحاكي لمحاكاة المصادقة باستخدام بصمة الإصبع.
    • تمت إضافة بيان مورد <public> لتحديد موارد المكتبة على أنّها موارد عامة وخاصة.

      ملاحظة: يتطلّب ذلك الإصدار 1.3 أو إصدارًا أحدث من المكوّن الإضافي لنظام Gradle المتوافق مع Android.

    • تمت إضافة إمكانية ربط البيانات لإنشاء تنسيقات تعريفية تربط منطق تطبيقك بعناصر التنسيق.
    • تمت إضافة إمكانية استخدام وحدة حزمة APK منفصلة للاختبار لإنشاء حِزم APK للاختبار في "استوديو Android".
    • تم تعديل AVD Manager من خلال تحسينات HAXM وإشعارات محسّنة.
    • تمت إضافة دعم لمحاكي 64 بت ARM وMIPS في QEMU 2.1.
    • تم تبسيط عملية حلّ تحذيرات Lint من خلال إضافة إصلاحات سريعة، مثل الإنشاء التلقائي لتنفيذ Parcelable.
    • تمت إضافة ميزة النماذج المباشرة لإدراج مقتطفات الرموز البرمجية بسرعة.

    الإصدار 1.2.2 من "استوديو Android" (يونيو 2015)

    الإصلاحات والتحسينات:

    • تم إصلاح مشاكل في الإصدارات كانت تمنع اكتمالها.

    الإصدار 1.2.1 من "استوديو Android" (مايو 2015)

    الإصلاحات والتحسينات:

    • تم إصلاح مشاكل بسيطة في الأداء والميزات.

    الإصدار 1.2.0 من "استوديو Android" (أبريل 2015)

    الإصلاحات والتحسينات:

    • تم تعديل نافذة "وقت تشغيل Android" لتضمين أداة مراقبة الذاكرة، كما تمت إضافة علامة تبويب لمراقبة أداء وحدة المعالجة المركزية.
    • تمت إضافة علامة التبويب عمليات الالتقاط في الهامش الأيمن لعرض ملفات بيانات أداء الذاكرة ووحدة المعالجة المركزية التي تم التقاطها، مثل تتبُّع طريقة وحدة المعالجة المركزية ولقطات مكدّس الذاكرة.
    • توسيع نطاق ميزة التعليقات التوضيحية من خلال إضافة تعليقات توضيحية للبيانات الوصفية واستنتاج إمكانية القيم الفارغة.
    • تم تحسين "محرّر الترجمات" من خلال توفير دعم إضافي لمعيار Best Current Practice (BCP) 47 الذي يستخدم رموزًا مكوّنة من 3 أحرف للّغة والمنطقة.
    • تم دمج ميزات IntelliJ 14 و14.1 لتحسين أداء تحليل الرموز البرمجية:
      • تصحيح الأخطاء المحسّن لعرض القيم المضمّنة للمتغيرات والكائنات المرجعية، بالإضافة إلى إجراء تقييم مضمّن لتعبيرات lambda والمشغّل
      • تمت إضافة ميزة رصد نمط الرمز لأحجام علامات التبويب والمسافات البادئة.
      • تمت إضافة ملفات مؤقتة لإجراء تجارب على الرموز البرمجية وإنشاء نماذج أولية بدون ملفات مشاريع.
      • تمت إضافة إمكانية إدراج علامات الفتح والإغلاق بشكل متزامن في ملفات HTML وXML.
      • تمت إضافة أداة مدمجة لتجميع رموز Java البرمجية، ما يتيح لك الاطّلاع على محتوى مكتبة لا يتوفّر رمزها المصدر.

      يمكنك الاطّلاع على الميزات الجديدة في IntelliJ للحصول على وصف كامل للميزات والتحسينات الجديدة.

    • تمت إضافة طرق عرض إضافية للمشاريع من أجل المسودات وملفات المشاريع والمشاكل والإصدارات العلنية والاختبارات لتحسين إدارة المشاريع والوصول إليها.
    • تم تحسين القائمة ملف > الإعدادات ومربّعات الحوار لتسهيل الوصول إلى الإعدادات وإدارتها.
    • تمت إضافة دعم لشاشات العرض عالية الكثافة في نظامَي التشغيل Windows وLinux.
    • تمت إضافة دعم لموارد بدقة 280 نقطة في البوصة في المجلد res/drawable-280dpi/.

    الإصدار 1.1.0 من "استوديو Android" (فبراير 2015)

    إصلاحات وتحسينات متنوّعة:

    • تمت إضافة نموذج ساعة Android Wear.
    • تم تعديل عملية إنشاء المشاريع والوحدات الجديدة لتتضمّن مجلدات res/mipmap خاصة برموز مشغّل التطبيق المحدّدة الكثافة. تحلّ مجلدات res/mipmap محل مجلدات res/drawable الخاصة برموز المشغّل.
    • تم تعديل رموز مشغّل التطبيقات لتتضمّن مظهر التصميم المتعدد الأبعاد، كما تم إضافة رمز xxxhdpi لمشغّل التطبيقات.
    • تمت إضافة عمليات فحص Lint وتحسينها للمجموعات المكوّنة من المنطقة واللغة، ورموز مشغّل التطبيقات، وأسماء الموارد، وغيرها من المشاكل الشائعة في الرموز البرمجية.
    • تمت إضافة دعم لعلامة اللغة 47 وفقًا لأفضل الممارسات الحالية (BCP).

    الإصدار 1.0.1 من "استوديو Android" (ديسمبر 2014)

    إصلاحات وتحسينات متنوّعة:

    • تم إصلاح مشكلة قفل ملف AVD Manager وdevice.xml.
    • تم إصلاح سجلّ المحاكي على أنظمة التشغيل Windows.
    • تم إصلاح مشكلة إنشاء أجهزة افتراضية تعمل بنظام Android (AVD) باستخدام "استوديو Android" وحزمة تطوير البرامج (SDK) لنظام التشغيل Android المثبّتة على محركات أقراص مختلفة على أنظمة التشغيل Windows.
    • يضبط قناة التحديث التلقائية لعمليات التنزيل الجديدة على القناة الثابتة. إذا كنت قد ثبّت الإصدار 1.0.0 من &quot;استوديو Android&quot; وأردت الحصول على تحديثات للإصدار الثابت الجاهز للاستخدام، استخدِم ملف (File) > إعدادات (Settings) > تحديثات (Updates) للتبديل إلى قناة التحديث الثابتة (Stable).

    الإصدار 1.0 من "استوديو Android" (ديسمبر 2014)

    الإصدار الأوّلي من "استوديو Android"

    الإصدار 0.8.14 من "استوديو Android" (أكتوبر 2014)

    يمكنك الاطّلاع على tools.android.com للحصول على قائمة كاملة بالتغييرات.

    الإصدار 0.8.6 من "استوديو Android" (أغسطس 2014)

    يمكنك الاطّلاع على tools.android.com للحصول على قائمة كاملة بالتغييرات.

    الإصدار 0.8.0 من "استوديو Android" (يونيو 2014)

    تمت إضافة إمكانية استخدام مشاريع Android Wear.

    يمكنك الاطّلاع على tools.android.com للحصول على قائمة كاملة بالتغييرات.

    الإصدار 0.5.2 من "استوديو Android" (مايو 2014)

    • يمكنك الاطّلاع على tools.android.com للحصول على قائمة كاملة بالتغييرات.

    الإصدار 0.4.6 من "استوديو Android" (مارس 2014)

    • يمكنك الاطّلاع على tools.android.com للحصول على قائمة كاملة بالتغييرات.

    الإصدار 0.4.2 من Android Studio (يناير 2014)

    • يمكنك الاطّلاع على tools.android.com للحصول على قائمة كاملة بالتغييرات.

    الإصدار 0.3.2 من "استوديو Android" (أكتوبر 2013)

    • يمكنك الاطّلاع على tools.android.com للحصول على قائمة كاملة بالتغييرات.

    الإصدار 0.2.x من "استوديو Android" (يوليو 2013)

    • تم دمج أحدث التغييرات في قاعدة بيانات IntelliJ. يتضمّن هذا الإصدار إصلاحات للمشاكل التي أبلغ عنها مستخدمو Studio، مثل تعديلات على أحجام الخطوط وعرض الخطوط في نظام التشغيل Linux.
    • تم تعديل المكوّن الإضافي لنظام Gradle المتوافق مع Android إلى الإصدار 0.5.0.

      تنبيه: لا يتوافق هذا الإصدار الجديد مع الإصدارات القديمة. عند فتح مشروع يستخدم إصدارًا قديمًا من المكوّن الإضافي، سيعرض &quot;استوديو Android&quot; رسالة خطأ تفيد بأنّه تعذّر إعادة تحميل مشروع &lt;project_name&gt; في Gradle.

      يتضمّن المكوّن الإضافي المعدَّل لنظام Gradle التغييرات التالية:

      • تم إصلاح نموذج IDE ليحتوي على ملف الإخراج حتى إذا تم تخصيصه من خلال DSL. تم أيضًا إصلاح DSL للحصول على ملف الإخراج وضبطه في عنصر المتغير، وبالتالي لم يعُد من الضروري استخدام variant.packageApplication or variant.zipAlign
      • تم إصلاح عملية تحديد التبعيات لكي يتم تحديد مجموعة (الإعدادات التلقائية وأنواع الإصدارات والنكهات) معًا بدلاً من تحديدها بشكل منفصل.
      • تم إصلاح التبعية لاختبارات مشروع المكتبة لتضمين جميع التبعيات الخاصة بالمكتبة بشكل صحيح.
      • تم إصلاح المشكلة التي يتضمّن فيها عنصران تابعان الاسم الفرعي نفسه.
      • تم إصلاح المشكلة التي يتعذّر فيها تطبيق ملف قواعد Proguard على النكهات.

      تتوفّر جميع ملاحظات إصدار المكوّن الإضافي لنظام Gradle هنا: http://tools.android.com/tech-docs/new-build-system.

    • لم تعُد أخطاء Gradle من aapt تشير إلى ملفات الإخراج المدمجة في مجلد build/، بل تشير إلى مواقع المصدر الحقيقية.
    • عمليات الإنشاء المتوازية أصبح من الممكن الآن استخدام عمليات الإنشاء المتوازية في Gradle. يُرجى العلم أنّ عمليات الإنشاء المتوازية في مرحلة "التطوير" (راجِع مستندات Gradle). هذه الميزة غير مفعّلة تلقائيًا. لتفعيل هذه الميزة، انتقِل إلى الإعدادات المفضّلة > المترجم، ثم ضَع علامة في المربّع تجميع الوحدات المستقلة بالتوازي.
    • مواصلة العمل على مستودع الموارد الجديد المستخدَم لعرض التنسيقات وطي الموارد في المحرّر وغير ذلك:
      • توفير الدعم الأساسي للعناصر التابعة لمكتبة ‎.aar (مثل استخدام مكتبة بدون نسخة محلية من المصادر) لا يزال يتعذّر إجراء عملية التحقّق من صحة ملف XML الخاص بالموارد والتنقّل في أدوات تعديل المصدر.
      • رصد الدورات في مراجع الموارد
      • يمكن الآن استخدام ميزة Quick Documentation (F1) التي تعرض جميع ترجمات السلسلة ضمن علامة الإقحام، لعرض جميع تراكبات الموارد من مختلف إصدارات Gradle وأنواع الإصدارات، بالإضافة إلى المكتبات. يتم إدراجها بترتيب عكسي لتراكب الموارد، مع وضع خط يتوسط النص على نُسخ السلسلة التي تم إخفاؤها.
      • إصلاحات للتعامل مع تعديل الموارد المدمجة عند تغيير مجموعة تبعيات الوحدات.
      • إصلاحات في عرض XML للتعامل بشكل صحيح مع تعريفات كيانات الأحرف وأحرف الإفلات في XML وUnicode
    • إتاحة حفظ لقطة شاشة لمعاينة التنسيق ونوافذ محرر التنسيق
    • إصلاح أخطاء النماذج
    • إصلاح الأخطاء في أداة Lint
    • إصلاحات متنوّعة لتقارير الأعطال شكرًا لك، وننصحك بمواصلة إرسال تقارير الأعطال.

    الإصدار 0.1.x من "استوديو Android" (مايو 2013)

    • تم إصلاح أخطاء متنوّعة، بما في ذلك خطأ شائع في عملية تثبيت Windows.

    الإصدارات القديمة من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"

    ‫3.6.0 (شباط/فبراير 2020)

    يتطلّب هذا الإصدار ما يلي:

    الميزات الجديدة

    يتضمّن هذا الإصدار من المكوّن الإضافي لنظام Gradle المتوافق مع Android الميزات الجديدة التالية.

    ربط العرض

    توفّر ميزة &quot;ربط العرض&quot; أمانًا في وقت الترجمة البرمجية عند الإشارة إلى طرق العرض في الرمز البرمجي. يمكنك الآن استبدال findViewById() بمرجع فئة الربط الذي يتم إنشاؤه تلقائيًا. لبدء استخدام View Binding، أدرِج ما يلي في ملف build.gradle الخاص بكل وحدة:

          android {
              viewBinding.enabled = true
          }
          
          android {
              viewBinding.enabled = true
          }
          

    لمزيد من المعلومات، يُرجى الاطّلاع على مستندات ربط العرض.

    إتاحة استخدام إضافة Maven Publish

    يتضمّن المكوّن الإضافي لنظام Gradle المتوافق مع Android إمكانية استخدام المكوّن الإضافي لنظام Gradle الخاص بالنشر في Maven، ما يتيح لك نشر نتائج الإصدار في مستودع Apache Maven. ينشئ المكوّن الإضافي لنظام Gradle المتوافق مع Android مكوّنًا لكل عنصر من عناصر تنويعات الإصدار في تطبيقك أو وحدة المكتبة، ويمكنك استخدامه لتخصيص عملية نشر في مستودع Maven.

    لمزيد من المعلومات، انتقِل إلى الصفحة التي تشرح كيفية استخدام مكوّن Maven Publish الإضافي.

    أداة الحزم التلقائية الجديدة

    عند إنشاء إصدار تصحيح الأخطاء من تطبيقك، تستخدم المكوّنات الإضافية أداة جديدة لتجميع الحِزم، تُسمى zipflinger، لإنشاء حزمة APK. من المفترض أن تؤدي هذه الأداة الجديدة إلى تحسين سرعة الإنشاء. إذا لم تعمل أداة التغليف الجديدة على النحو المتوقّع، يُرجى الإبلاغ عن خطأ. يمكنك الرجوع إلى استخدام أداة التغليف القديمة من خلال تضمين ما يلي في ملف gradle.properties:

            android.useNewApkCreator=false
          
    إحالة الإصدار الأصلي

    يمكنك الآن تحديد المدة التي يستغرقها Clang لإنشاء وربط كل ملف C/C++‎ في مشروعك. يمكن أن يعرض Gradle عملية تتبُّع Chrome تتضمّن الطوابع الزمنية لأحداث المحول البرمجي هذه، ما يتيح لك فهم الوقت المطلوب لإنشاء مشروعك بشكل أفضل. لإخراج ملف تحديد المصدر الخاص بهذا الإصدار، اتّبِع الخطوات التالية:

    1. أضِف العلامة -Pandroid.enableProfileJson=true عند تنفيذ إصدار Gradle. مثلاً:

      gradlew assembleDebug -Pandroid.enableProfileJson=true

    2. افتح متصفّح Chrome واكتب chrome://tracing في شريط البحث.

    3. انقر على الزر تحميل وانتقِل إلى <var>project-root</var>/build/android-profile للعثور على الملف. اسم الملف هو profile-<var>timestamp</var>.json.gz.

    يمكنك الاطّلاع على بيانات تحديد المصدر الخاصة بالإصدارات الأصلية بالقرب من أعلى نافذة العرض:

    تتبُّع تحديد المصدر الأصلي لإنشاء التطبيق في Chrome

    تغييرات السلوك

    عند استخدام هذا الإصدار من المكوّن الإضافي، قد تواجه التغييرات التالية في السلوك.

    المكتبات الأصلية المضمّنة غير المضغوطة تلقائيًا

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

    • صغر حجم تثبيت التطبيق لأنّ النظام الأساسي يمكنه الوصول إلى المكتبات الأصلية مباشرةً من حزمة APK المثبَّتة، بدون إنشاء نسخة من المكتبات
    • حجم تنزيل أصغر لأنّ الضغط في &quot;متجر Play&quot; يكون عادةً أفضل عند تضمين مكتبات مجمّعة من رموز برمجية أصلية غير مضغوطة في حزمة APK أو حزمة تطبيق Android

    إذا كنت تريد أن يضمِّن المكوّن الإضافي لنظام Gradle المتوافق مع Android المكتبات المجمّعة من رموز برمجية أصلية المضغوطة بدلاً من ذلك، أضِف ما يلي إلى ملف البيان الخاص بتطبيقك:

            <application
              android:extractNativeLibs="true"
              ... >
            </application>
            
          

    ملاحظة: تم استبدال السمة extractNativeLibs في ملف البيان بالخيار useLegacyPackaging DSL. لمزيد من المعلومات، راجِع ملاحظة الإصدار استخدام لغة خاصة بالمجال لتجميع المكتبات الأصلية المضغوطة.

    إصدار NDK التلقائي

    إذا نزّلت إصدارات متعددة من NDK، يختار المكوّن الإضافي لنظام Gradle المتوافق مع Android الآن إصدارًا تلقائيًا لاستخدامه في تجميع ملفات رموز المصدر. في السابق، كانت الإضافة تختار أحدث إصدار تم تنزيله من NDK. استخدِم السمة android.ndkVersion في ملف build.gradle الخاص بالوحدة لتجاوز الإعداد التلقائي الذي اختارته الإضافة.

    إنشاء فئة R مبسطة

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

    • بما أنّ برنامج الترجمة البرمجية يشارك فئات R مع تبعيات الوحدات الأصلية، من المهم أن تستخدم كل وحدة في مشروعك اسم حزمة فريدًا.
    • يتم تحديد إذن الوصول إلى فئة R الخاصة بالمكتبة من خلال العناصر الاعتمادية الأخرى للمشروع حسب الإعدادات المستخدَمة لتضمين المكتبة كعنصر اعتمادي. على سبيل المثال، إذا كانت المكتبة A تتضمّن المكتبة B كعنصر تابع من النوع api، يمكن للمكتبة A والمكتبات الأخرى التي تعتمد على المكتبة A الوصول إلى فئة R الخاصة بالمكتبة B. ومع ذلك، قد لا تتمكّن المكتبات الأخرى من الوصول إلى فئة R في المكتبة B. إذا كانت المكتبة A تستخدم إعدادات التبعية implementation. لمزيد من المعلومات، اطّلِع على إعدادات التبعية.
    إزالة الموارد غير المتوفّرة في الإعدادات التلقائية

    بالنسبة إلى وحدات المكتبة، إذا أدرجت موردًا للغة لا يتضمّنها مجموعة الموارد التلقائية، مثلاً إذا أدرجت hello_world كمورد سلسلة في /values-es/strings.xml ولكن لم تحدّد هذا المورد في /values/strings.xml، لن تتضمّن إضافة Android Gradle هذا المورد عند تجميع مشروعك. من المفترض أن يؤدي هذا التغيير في السلوك إلى تقليل عدد Resource Not Found استثناءات وقت التشغيل وتحسين سرعة الإنشاء.

    يتوافق D8 الآن مع سياسة الاحتفاظ ببيانات CLASS للتعليقات التوضيحية

    عند تجميع تطبيقك، يراعي المحوّل البرمجي D8 الآن الحالات التي تطبّق فيها التعليقات التوضيحية سياسة الاحتفاظ CLASS، ولم تعُد هذه التعليقات التوضيحية متاحة في وقت التشغيل. يحدث هذا السلوك أيضًا عند ضبط حزمة تطوير البرامج (SDK) المستهدَفة للتطبيق على المستوى 23 من واجهة برمجة التطبيقات، والذي كان يسمح سابقًا بالوصول إلى هذه التعليقات التوضيحية أثناء وقت التشغيل عند تجميع تطبيقك باستخدام إصدارات أقدم من المكوّن الإضافي Android Gradle وD8.

    تغييرات أخرى في السلوك
    • لم يعُد aaptOptions.noCompress حساسًا لحالة الأحرف على جميع المنصات (لكل من حِزم APK والحِزم)، ويتوافق مع المسارات التي تستخدم أحرفًا كبيرة.
    • أصبحت ميزة "ربط البيانات" الآن تزايدية تلقائيًا. لمزيد من المعلومات، يُرجى الاطّلاع على المشكلة رقم 110061530.

    • أصبحت جميع اختبارات الوحدات، بما في ذلك اختبارات الوحدات باستخدام Roboelectric، قابلة للتخزين المؤقت بالكامل. لمزيد من المعلومات، يُرجى الاطّلاع على المشكلة رقم 115873047.

    إصلاح الأخطاء

    يتضمّن هذا الإصدار من المكوّن الإضافي لنظام Gradle المتوافق مع Android إصلاحات الأخطاء التالية:

    • أصبحت اختبارات الوحدات Robolectric متاحة الآن في وحدات المكتبة التي تستخدم ربط البيانات. لمزيد من المعلومات، يُرجى الاطّلاع على المشكلة رقم 126775542.
    • يمكنك الآن تنفيذ مهام connectedAndroidTest في وحدات متعددة أثناء تفعيل وضع التنفيذ المتوازي في Gradle.

    المشاكل المعروفة

    يوضّح هذا القسم المشاكل المعروفة في الإصدار 3.6.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android.

    بطء أداء مهمة Android Lint

    قد تستغرق أداة Android Lint وقتًا أطول بكثير لإكمال بعض المشاريع بسبب تراجع في البنية الأساسية لتحليلها، ما يؤدي إلى بطء عملية احتساب الأنواع المستنتَجة للوظائف lambda في بعض بنيات الرموز البرمجية.

    تم الإبلاغ عن هذه المشكلة على أنّها خطأ في IDEA وسيتم حلّها في الإصدار 4.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android.

    فئة البيان غير متوفّرة {:#agp-missing-manifest}

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

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

    • يمكنك الرجوع إلى الأذونات المخصّصة من خلال اسمها المؤهَّل بالكامل. على سبيل المثال: "com.example.myapp.permission.DEADLY_ACTIVITY".

    • حدِّد الثوابت الخاصة بك، كما هو موضّح أدناه:

                  public final class CustomPermissions {
                    public static final class permission {
                      public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY";
                    }
                  }
                  
                

    ‫3.5.0 (أغسطس 2019)

    الإصدار 3.5.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android، بالإضافة إلى الإصدار 3.5 من &quot;استوديو Android&quot;، هو إصدار رئيسي ونتيجة &quot;مشروع Marble&quot; الذي يركّز على تحسين ثلاثة جوانب رئيسية من أدوات مطوّري تطبيقات Android، وهي: حالة النظام وتحسين الميزات وإصلاح الأخطاء. جدير بالذكر أنّ تحسين سرعة إنشاء المشاريع كان من أهم أهداف هذا التحديث.

    للحصول على معلومات حول هذه التعديلات وغيرها من تعديلات Project Marble، يمكنك الاطّلاع على مشاركة المدوّنة على &quot;مطوّرو تطبيقات Android&quot; أو الأقسام أدناه.

    يتطلّب هذا الإصدار ما يلي:

    ‫3.5.4 (يوليو 2020)

    يتيح هذا التحديث الطفيف التوافق مع الإعدادات التلقائية والميزات الجديدة لإمكانية الوصول إلى الحِزم في Android 11.

    يُرجى الاطّلاع على ملاحظات الإصدار 4.0.1 للحصول على التفاصيل.

    3.5.3 (ديسمبر 2019)

    يتوافق هذا التحديث الطفيف مع الإصدار 3.5.3 من &quot;استوديو Android&quot; ويتضمّن إصلاحات متنوعة للأخطاء وتحسينات في الأداء.

    ‫3.5.2 (تشرين الثاني/نوفمبر 2019)

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

    ‫3.5.1 (تشرين الأول/أكتوبر 2019)

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

    المعالجة المتزايدة للتعليقات التوضيحية

    يتيح معالج التعليقات التوضيحية ربط البيانات المعالجة التزايدية للتعليقات التوضيحية إذا ضبطت android.databinding.incremental=true في ملف gradle.properties. يؤدي هذا التحسين إلى تحسين أداء عمليات الإنشاء المتزايدة. للحصول على قائمة كاملة بمعالجات التعليقات التوضيحية المحسّنة، راجِع جدول معالجات التعليقات التوضيحية التزايدية.

    بالإضافة إلى ذلك، يتيح الإصدار 1.3.30 من KAPT والإصدارات الأحدث أيضًا استخدام معالِجات التعليقات التوضيحية التزايدية، ويمكنك تفعيلها من خلال تضمين kapt.incremental.apt=true في ملف gradle.properties.

    اختبارات الوحدات القابلة للتخزين المؤقت

    عندما تفعّل اختبارات الوحدات لاستخدام موارد Android ومواد العرض وبيانات Android عن طريق ضبط includeAndroidResources على true، ينشئ المكوّن الإضافي لنظام Gradle المتوافق مع Android ملف إعداد اختبار يحتوي على مسارات مطلقة، ما يؤدي إلى إيقاف إمكانية نقل البيانات المخزّنة مؤقتًا. يمكنك توجيه المكوّن الإضافي لإنشاء إعدادات الاختبار باستخدام مسارات نسبية بدلاً من ذلك، ما يتيح إمكانية تخزين مهمة AndroidUnitTest مؤقتًا بالكامل، وذلك من خلال تضمين ما يلي في ملف gradle.properties:

          android.testConfig.useRelativePath = true
        

    المشاكل المعروفة

    • عند استخدام الإصدار 1.3.31 أو إصدار أقدم من المكوّن الإضافي لنظام Gradle المتوافق مع Kotlin، قد يظهر لك التحذير التالي عند إنشاء مشروعك أو مزامنته:

                WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced
                        with 'variant.getPackageLibraryProvider()'.
                
              

      لحلّ هذه المشكلة، يجب ترقية المكوّن الإضافي إلى الإصدار 1.3.40 أو إصدار أحدث.

    ‫3.4.0 (نيسان/أبريل 2019)

    يتطلّب هذا الإصدار ما يلي:

    ‫3.4.3 (يوليو 2020)

    يتيح هذا التحديث الطفيف التوافق مع الإعدادات التلقائية والميزات الجديدة لإمكانية الوصول إلى الحِزم في Android 11.

    يُرجى الاطّلاع على ملاحظات الإصدار 4.0.1 للحصول على التفاصيل.

    3.4.2 (تموز/يوليو 2019)

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

    3.4.1 (مايو 2019)

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

    الميزات الجديدة

    • إعدادات جديدة للاعتماديات في عمليات فحص lint: تم تغيير سلوك lintChecks، وتم تقديم إعدادات جديدة للاعتماديات، وهي lintPublish، لمنحك المزيد من التحكّم في عمليات فحص lint التي يتم تضمينها في مكتبات Android.

      • lintChecks: هذا إعداد حالي يجب استخدامه لعمليات فحص Lint التي تريد تنفيذها فقط عند إنشاء مشروعك محليًا. إذا كنت تستخدم سابقًا إعدادات التبعية lintChecks لتضمين عمليات التحقّق من lint في ملف AAR المنشور، عليك نقل هذه التبعيات لاستخدام إعدادات lintPublish الجديدة الموضّحة أدناه بدلاً من ذلك.
      • lintPublish: استخدِم هذا الإعداد الجديد في مشاريع المكتبات لعمليات فحص Lint التي تريد تضمينها في ملف AAR المنشور، كما هو موضّح أدناه. وهذا يعني أنّ المشاريع التي تستخدم مكتبتك تطبِّق أيضًا عمليات فحص lint هذه.

      يستخدم نموذج الرمز البرمجي التالي كلا إعدادَي العناصر التابعة في مشروع مكتبة Android محلية.

      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks project(':lint')
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish project(':lintpublish')
      }
              
      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks(project(":lint"))
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish(project(":lintpublish"))
          }
              
      • بشكل عام، من المفترض أن تتحسّن سرعة الإنشاء الإجمالية لمهام التغليف والتوقيع. إذا لاحظت تراجعًا في الأداء مرتبطًا بهذه المهام، يُرجى الإبلاغ عن خطأ.

    تغييرات السلوك

    • تحذير بشأن إيقاف المكوّن الإضافي لميزة "التطبيقات الفورية على Android": إذا كنت لا تزال تستخدم المكوّن الإضافي com.android.feature لإنشاء تطبيقك الفوري، سيظهر لك تحذير بشأن إيقاف المكوّن الإضافي في الإصدار 3.4.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android. لضمان إمكانية إنشاء تطبيقك الفوري على الإصدارات المستقبلية من المكوّن الإضافي، عليك نقل تطبيقك الفوري إلى استخدام المكوّن الإضافي للميزات الديناميكية، والذي يتيح لك أيضًا نشر كلّ من تجارب التطبيق المثبَّت والتطبيق الفوري من حِزمة تطبيق Android واحدة.

    • تفعيل R8 تلقائيًا: يدمج R8 عملية إزالة التكرار، والتصغير، والتشويش، والتحسين، والتحويل إلى رمز DEX في خطوة واحدة، ما يؤدي إلى تحسينات ملحوظة في أداء عملية الإنشاء. تم طرح R8 في الإصدار 3.3.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android، وهو مفعَّل الآن تلقائيًا لكل من مشاريع التطبيقات ومكتبات Android التي تستخدم الإصدار 3.4.0 من المكوّن الإضافي والإصدارات الأحدث.

    تقدّم الصورة أدناه نظرة عامة شاملة على عملية التجميع قبل طرح R8.

    قبل R8، كانت عملية ProGuard خطوة تجميع مختلفة عن عملية تحويل الرمز إلى تنسيق dex وعملية إزالة السكر.

    أما الآن، فباستخدام R8، يتم إكمال جميع عمليات إزالة التجميل اللغوي والتصغير والتشويش والتحسين والتحويل إلى رمز DEX (باستخدام D8) في خطوة واحدة، كما هو موضّح أدناه.

    باستخدام R8، يتم تنفيذ عمليات إزالة السكر الزائد والتصغير والتشويش والتحسين والتحويل إلى رمز DEX في خطوة تجميع واحدة.

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

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

          # Disables R8 for Android Library modules only.
          android.enableR8.libraries = false
          # Disables R8 for all modules.
          android.enableR8 = false
          
        

    ملاحظة: بالنسبة إلى نوع إصدار معيّن، إذا ضبطت useProguard على false في ملف build.gradle لوحدة تطبيقك، سيستخدم المكوّن الإضافي لنظام Gradle المتوافق مع Android أداة R8 لتقليل حجم رمز تطبيقك لنوع الإصدار هذا، بغض النظر عمّا إذا كنت قد أوقفت R8 في ملف gradle.properties الخاص بمشروعك.

    • تم إيقاف ndkCompile نهائيًا: سيظهر لك الآن خطأ في الإصدار إذا حاولت استخدام ndkBuild لتجميع المكتبات المجمّعة من رموز برمجية أصلية. بدلاً من ذلك، عليك استخدام CMake أو ndk-build من أجل إضافة رمز C وC++ إلى مشروعك.

    المشاكل المعروفة

    • لا يتم حاليًا فرض الاستخدام الصحيح لأسماء الحِزم الفريدة، ولكن سيصبح ذلك أكثر صرامة في الإصدارات اللاحقة من المكوّن الإضافي. في الإصدار 3.4.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android، يمكنك الموافقة على التحقّق مما إذا كان مشروعك يعرّف أسماء حِزم مقبولة عن طريق إضافة السطر أدناه إلى ملف gradle.properties.

                android.uniquePackageNames = true
                
              

      لمزيد من المعلومات حول ضبط اسم الحزمة من خلال المكوّن الإضافي لنظام Gradle المتوافق مع Android، يُرجى الاطّلاع على ضبط معرّف التطبيق.

    ‫3.3.0 (يناير 2019)

    يتطلّب هذا الإصدار ما يلي:

    ‫3.3.3 (تموز/يوليو 2020)

    يتيح هذا التحديث الطفيف التوافق مع الإعدادات التلقائية والميزات الجديدة لإمكانية الوصول إلى الحِزم في Android 11.

    يُرجى الاطّلاع على ملاحظات الإصدار 4.0.1 للحصول على التفاصيل.

    ‫3.3.2 (مارس 2019)

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

    3.3.1 (فبراير 2019)

    يتوافق هذا التحديث الطفيف مع الإصدار 3.3.1 من Android Studio ويتضمّن إصلاحات متنوعة للأخطاء وتحسينات في الأداء.

    الميزات الجديدة

    • تحسين مزامنة مسار الفئة: عند تحديد التبعيات في مسارات الفئات في وقت التشغيل ووقت التجميع، تحاول إضافة Android Gradle إصلاح بعض تعارضات الإصدارات اللاحقة للتبعيات التي تظهر في مسارات فئات متعددة.

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

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

    • تحسين عملية تجميع Java بشكل تدريجي عند استخدام معالِجات التعليقات التوضيحية: يقلّل هذا التحديث من وقت الإنشاء من خلال تحسين إمكانية تجميع Java بشكل تدريجي عند استخدام معالِجات التعليقات التوضيحية.

      ملاحظة: تتوافق هذه الميزة مع الإصدار 4.10.1 من Gradle والإصدارات الأحدث، باستثناء الإصدار 5.1 من Gradle بسبب المشكلة 8194 في Gradle.

      • بالنسبة إلى المشاريع التي تستخدم Kapt (معظم المشاريع التي تستخدم Kotlin فقط والمشاريع المختلطة التي تستخدم Kotlin وJava): يتم تفعيل عملية تجميع Java التزايدي، حتى عند استخدام ربط البيانات أو المكوّن الإضافي retro-lambda. لا يمكن بعد إجراء معالجة تعليقات توضيحية بشكل تدريجي من خلال مهمة Kapt.

      • بالنسبة إلى المشاريع التي لا تستخدم Kapt (المشاريع التي تستخدم Java فقط): إذا كانت جميع معالجات التعليقات التوضيحية التي تستخدمها تتوافق مع المعالجة التزايدية للتعليقات التوضيحية، سيتم تفعيل تجميع Java التزايدي تلقائيًا. لمراقبة معدّل استخدام معالج التعليقات التوضيحية التزايدي، راجِع المشكلة 5277 في Gradle.

        ومع ذلك، إذا كان معالج واحد أو أكثر من معالجات التعليقات التوضيحية لا يتيح إنشاء إصدارات متزايدة، لن يتم تفعيل تجميع Java المتزايد. بدلاً من ذلك، يمكنك تضمين العلامة التالية في ملف gradle.properties:

        android.enableSeparateAnnotationProcessing=true
                    

        عند تضمين هذا العلامة، ينفّذ المكوّن الإضافي لنظام Gradle المتوافق مع Android معالجات التعليقات التوضيحية في مهمة منفصلة ويسمح بتنفيذ مهمة تجميع Java بشكل تدريجي.

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

                android.debug.obsoleteApi=true
              

      يمكنك أيضًا تفعيل العلامة من خلال تمرير -Pandroid.debug.obsoleteApi=true من سطر الأوامر.

    • يمكنك إجراء اختبارات أدوات القياس على وحدات الميزات من سطر الأوامر.

    تغييرات السلوك

    • إعداد المهام عند الطلب: يستخدم المكوّن الإضافي الآن واجهة برمجة التطبيقات الجديدة لإنشاء المهام في Gradle لتجنُّب تهيئة المهام وإعدادها إذا لم تكن مطلوبة لإكمال عملية الإنشاء الحالية (أو المهام غير المدرَجة في الرسم البياني لمهام التنفيذ). على سبيل المثال، إذا كان لديك عدة صيغ للإنشاء، مثل صيغ الإنشاء "الإصدار" و"تصحيح الأخطاء"، وكنت بصدد إنشاء إصدار "تصحيح الأخطاء" من تطبيقك، تتجنّب الإضافة تهيئة المهام وضبطها لإصدار "الإصدار" من تطبيقك.

      قد يؤدي استدعاء بعض الطرق القديمة في واجهة برمجة التطبيقات Variants API، مثل variant.getJavaCompile()، إلى فرض إعدادات المهام. للتأكّد من أنّ الإصدار محسّن لإعداد المهام المؤجَّل، استخدِم طرقًا جديدة تعرض بدلاً من ذلك عنصر TaskProvider، مثل variant.getJavaCompileProvider().

      إذا كنت تنفّذ مهام تصميم مخصّصة، تعرَّف على كيفية التكيّف مع واجهة برمجة التطبيقات الجديدة لإنشاء المهام في Gradle.

    • بالنسبة إلى نوع إصدار معيّن، عند ضبط useProguard false، تستخدم الإضافة الآن R8 بدلاً من ProGuard لتقليل حجم الرموز والموارد وإخفائها في تطبيقك. لمزيد من المعلومات حول R8، يمكنك الاطّلاع على مشاركة المدونة هذه من مدوّنة مطوّري تطبيقات Android.

    • إنشاء أسرع لفئة R لمشاريع المكتبات: في السابق، كان المكوّن الإضافي لنظام Gradle المتوافق مع Android ينشئ ملف R.java لكل التبعيات في مشروعك، ثم يجمّع فئات R هذه مع فئات تطبيقك الأخرى. تنشئ الإضافة الآن ملف JAR يحتوي على فئة R المجمَّعة لتطبيقك مباشرةً، بدون إنشاء فئات R.java وسيطة أولاً. قد يؤدي هذا التحسين إلى تحسين أداء عملية الإنشاء بشكل كبير للمشاريع التي تتضمّن العديد من المشاريع الفرعية والمكتبات والتبعيات، كما يؤدي إلى تحسين سرعة الفهرسة في &quot;استوديو Android&quot;.

    • عند إنشاء حِزمة تطبيق Android، تتضمّن حِزم APK التي يتم إنشاؤها من حِزمة التطبيق هذه والتي تستهدف الإصدار 6.0 من نظام التشغيل Android (المستوى 23 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث تلقائيًا إصدارات غير مضغوطة من المكتبات المجمّعة من رموز برمجية أصلية. يؤدي هذا التحسين إلى تجنُّب حاجة الجهاز إلى إنشاء نسخة من المكتبة، وبالتالي تقليل حجم تطبيقك على القرص. وإذا كنت تفضّل إيقاف هذا التحسين، أضِف ما يلي إلى ملف gradle.properties:

      android.bundle.enableUncompressedNativeLibs = false
              
    • تفرض الإضافة الحد الأدنى من إصدارات بعض الإضافات التابعة لجهات خارجية.

    • مزامنة المشروع ذي الصيغة الواحدة: مزامنة مشروعك مع إعدادات الإصدار هي خطوة مهمة تتيح لـ &quot;استوديو Android&quot; فهم كيفية تنظيم مشروعك. ومع ذلك، يمكن أن تستغرق هذه العملية وقتًا طويلاً في المشاريع الكبيرة. إذا كان مشروعك يستخدم عدة خيارات إنشاء، يمكنك الآن تحسين عمليات المزامنة في المشروع من خلال حصرها على خيار الإنشاء الذي اخترته حاليًا فقط.

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

      لتفعيل هذا التحسين يدويًا، انقر على ملف (File) > الإعدادات (Settings) > تجريبي (Experimental) > Gradle (استوديو Android > الإعدادات المفضّلة (Preferences) > تجريبي (Experimental) > Gradle على جهاز Mac) وضَع علامة في مربّع الاختيار مزامنة الإصدار النشط فقط (Only sync the active variant).

      ملاحظة: تتوافق عملية التحسين هذه تمامًا مع المشاريع التي تتضمّن لغتَي Java وC++‎، وتتوافق جزئيًا مع Kotlin. عند تفعيل التحسين للمشاريع التي تتضمّن محتوى Kotlin، يعود خيار المزامنة في Gradle إلى استخدام صيغ كاملة داخليًا.

    • التنزيل التلقائي لحِزم SDK غير المتوفّرة: تم توسيع نطاق هذه الوظيفة لتشمل NDK. لمزيد من المعلومات، يمكنك الاطّلاع على مقالة التنزيل التلقائي للحِزم الناقصة باستخدام Gradle.

    تم إصلاح الأخطاء

    • يعمل الإصدار 3.3.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android على إصلاح المشاكل التالية:

      • عملية الإنشاء التي تستدعي android.support.v8.renderscript.RenderScript بدلاً من إصدار AndroidX، على الرغم من تفعيل Jetifier
      • تعارضات بسبب تضمين androidx-rs.jar في حزمة ثابتة annotation.AnyRes
      • عند استخدام RenderScript، لن تحتاج بعد الآن إلى ضبط إصدار &quot;أدوات الإنشاء&quot; يدويًا في ملفات build.gradle

    ‫3.2.0 (أيلول/سبتمبر 2018)

    يتطلّب هذا الإصدار ما يلي:

    • Gradle 4.6 أو إصدار أحدث لمزيد من المعلومات، راجِع القسم حول تحديث Gradle.
    • الإصدار 28.0.3 أو إصدار أحدث من "أدوات إنشاء حزمة تطوير البرامج (SDK)"

    3.2.1 (أكتوبر 2018)

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

    الميزات الجديدة

    • إتاحة إنشاء مجموعات حزمات تطبيق Android: حِزمة التطبيق هي تنسيق تحميل جديد يتضمّن جميع الرموز البرمجية والموارد المجمَّعة لتطبيقك، مع تأجيل إنشاء حِزم APK وتوقيعها إلى &quot;متجر Google Play&quot;. ولن تحتاج بعد ذلك إلى إنشاء حِزم APK متعددة وتوقيعها وإدارتها، وسيتمكّن المستخدمون من تنزيل حِزم أصغر حجمًا ومحسَّنة لأجهزتهم. لمزيد من المعلومات، يمكنك الاطّلاع على مقالة لمحة عن "مجموعات حزمات تطبيق Android".

    • إتاحة سرعات إنشاء تراكمي محسّنة عند استخدام معالجات التعليقات التوضيحية: تتضمّن DSL AnnotationProcessorOptions الآن CommandLineArgumentProvider، ما يتيح لك أو لمؤلف معالج التعليقات التوضيحية إضافة تعليقات توضيحية إلى الوسيطات لمعالج البيانات باستخدام التعليقات التوضيحية الخاصة بنوع السمة للإنشاء التراكمي. يؤدي استخدام هذه التعليقات التوضيحية إلى تحسين صحة وأداء عمليات الإنشاء النظيف المتزايدة والمخزّنة مؤقتًا. لمزيد من المعلومات، اطّلِع على تمرير وسيطات إلى معالجات التعليقات التوضيحية.

    • أداة نقل البيانات إلى AndroidX: عند استخدام الإصدار 3.2.0 من المكوّن الإضافي Android Gradle مع الإصدار 3.2 من Android والإصدارات الأحدث، يمكنك نقل العناصر التابعة المحلية وعناصر Maven التابعة لمشروعك لاستخدام مكتبات AndroidX الجديدة من خلال اختيار إعادة تصميم > نقل البيانات إلى AndroidX من شريط القوائم. يؤدي استخدام أداة نقل البيانات هذه أيضًا إلى ضبط العلامات التالية على true في ملف gradle.properties:

      • android.useAndroidX: عند ضبطها على true، يستخدم المكوّن الإضافي المتوافق مع Android مكتبة AndroidX المناسبة بدلاً من Support Library. عندما لا يتم تحديد هذه العلامة، يضبطها المكوّن الإضافي على false تلقائيًا.

      • android.enableJetifier: عند ضبط هذا الخيار على true، ينقل المكوّن الإضافي المتوافق مع Android تلقائيًا المكتبات الحالية التابعة لجهات خارجية لاستخدام AndroidX من خلال إعادة كتابة ملفاتها الثنائية. في حال عدم تحديد هذه العلامة، يضبط المكوّن الإضافي القيمة تلقائيًا على false. يمكنك ضبط هذه العلامة على true فقط عندما تكون العلامة android.useAndroidX مضبوطة أيضًا على true، وإلا سيظهر لك خطأ في الإنشاء.

        لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على AndroidX.

    • أداة جديدة لتقليص حجم الرموز، وهي R8‏: R8 هي أداة جديدة لتخفيض حجم الرموز وإخفائها تحلّ محل ProGuard. يمكنك البدء في استخدام الإصدار التجريبي من R8 من خلال تضمين ما يلي في ملف gradle.properties الخاص بمشروعك:

              android.enableR8 = true
              
              android.enableR8 = true
              

    تغييرات السلوك

    • تم الآن تفعيل عملية إزالة التجميل اللغوي من واجهة برمجة التطبيقات باستخدام أداة D8 تلقائيًا.

    • أصبحت أداة AAPT2 متاحة الآن في مستودع Maven من Google. لاستخدام AAPT2، تأكَّد من توفّر اعتمادية google() في ملف build.gradle، كما هو موضّح أدناه:

                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
    • تم الآن تفعيل ميزة multidex الأصلية تلقائيًا. كانت الإصدارات السابقة من &quot;استوديو Android&quot; تتيح استخدام ملفات DEX متعددة أصلية عند نشر إصدار تصحيح الأخطاء من تطبيق على جهاز يعمل بالإصدار 21 من واجهة برمجة التطبيقات Android أو إصدار أحدث. الآن، سواء كنت تنشر التطبيق على جهاز أو تنشئ حزمة APK لإصدار التطبيق، يتيح المكوّن الإضافي لنظام Gradle المتوافق مع Android ملفات DEX المتعددة الأصلية لجميع الوحدات التي تم ضبطها على minSdkVersion=21 أو إصدار أحدث.

    • يفرض المكوّن الإضافي الآن الحد الأدنى من إصدار المكوّن الإضافي لبروتوكول المخزن المؤقت (0.8.6) والمكوّن الإضافي للغة Kotlin (1.2.50) والمكوّن الإضافي لـ Crashlytics (1.25.4).

    • يفرض المكوّن الإضافي لوحدة الميزات، com.android.feature، الآن استخدام الأحرف والأرقام والشُرط السفلية فقط عند تحديد اسم وحدة. على سبيل المثال، إذا كان اسم وحدة الميزات يتضمّن شرطات، سيظهر لك خطأ في الإصدار. يتطابق هذا السلوك مع سلوك المكوّن الإضافي الخاص بالميزة الديناميكية.

    إصلاح الأخطاء

    • أصبح JavaCompile قابلاً للتخزين المؤقت في المشاريع التي تتضمّن ربط البيانات. (المشكلة رقم 69243050)
    • تحسين تجنُّب إعادة التجميع لوحدات المكتبة التي تتضمّن ربط البيانات (المشكلة رقم 77539932)
    • يمكنك الآن إعادة تفعيل configure-on-demand إذا كنت قد أوقفتها في الإصدارات السابقة بسبب بعض أخطاء الإنشاء غير المتوقّعة. (المشكلة رقم 77910727)

    ‫3.1.0 (مارس 2018)

    يتطلّب هذا الإصدار ما يلي:

    • Gradle 4.4 أو إصدار أحدث

      لمزيد من المعلومات، راجِع القسم حول تحديث Gradle.

    • أدوات الإنشاء 27.0.3 أو إصدار أحدث

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

    برنامج تجميع DEX الجديد، D8

    يستخدم Android Studio الآن تلقائيًا برنامج ترجمة DEX جديدًا يُسمى D8. التحويل البرمجي لرمز DEX هو عملية تحويل الرمز الثانوي .class إلى الرمز الثانوي .dex من أجل "وقت تشغيل Android" (أو Dalvik، في الإصدارات القديمة من Android). مقارنةً بالمترجم البرمجي السابق، DX، يترجم D8 الرموز البرمجية بشكل أسرع وينتج ملفات DEX أصغر، مع الحفاظ على أداء وقت تشغيل التطبيق نفسه أو تحسينه.

    يجب ألا يؤدي D8 إلى تغيير سير عمل تطوير التطبيقات اليومي. ومع ذلك، إذا واجهت أي مشاكل متعلّقة بالمترجم البرمجي الجديد، يُرجى الإبلاغ عن خطأ. يمكنك إيقاف D8 مؤقتًا واستخدام DX من خلال تضمين ما يلي في ملف gradle.properties الخاص بمشروعك:

          android.enableD8=false
        

    بالنسبة إلى المشاريع التي تستخدم ميزات لغة Java 8، يتم تفعيل ميزة إزالة التشويش التدريجية تلقائيًا. يمكنك إيقافها من خلال تحديد ما يلي في ملف gradle.properties الخاص بمشروعك:

          android.enableIncrementalDesugaring=false.
        

    مستخدمو الإصدار التجريبي: إذا كنت تستخدم إصدارًا تجريبيًا من D8، يُرجى العِلم بأنّه يتم الآن تجميعه باستخدام المكتبات المضمّنة في أدوات إنشاء حزمة SDK وليس JDK. لذلك، إذا كنت تستخدم واجهات برمجة تطبيقات متوفّرة في JDK ولكنها غير متوفّرة في مكتبات أدوات إنشاء حزمة SDK، سيظهر لك خطأ في التجميع.

    تغييرات السلوك

    • عند إنشاء حِزم APK متعددة يستهدف كل منها واجهة تطبيق ثنائية مختلفة، لن ينشئ حِزم APK لواجهات التطبيق الثنائية التالية تلقائيًا: mips وmips64 وarmeabi.

      إذا أردت إنشاء حِزم APK تستهدف واجهات التطبيق الثنائية هذه، عليك استخدام NDK r16b أو إصدار أقدم وتحديد واجهات التطبيق الثنائية في ملف build.gradle، كما هو موضّح أدناه:

                splits {
                    abi {
                        include 'armeabi', 'mips', 'mips64'
                        ...
                    }
                }
              
                splits {
                    abi {
                        include("armeabi", "mips", "mips64")
                        ...
                    }
                }
              
    • يزيل ذاكرة التخزين المؤقت الخاصة بالإنشاء في إضافة Android الآن إدخالات ذاكرة التخزين المؤقت التي مرّ عليها أكثر من 30 يومًا.

    • لم يعُد تمرير "auto" إلى resConfig يختار تلقائيًا موارد السلاسل لتضمينها في حزمة APK. إذا واصلت استخدام "auto"، ستجمع الإضافة كل موارد السلاسل النصية التي يوفّرها تطبيقك والعناصر التابعة له. لذلك، عليك بدلاً من ذلك تحديد كل لغة تريد أن يضمّنها المكوّن الإضافي في حزمة APK.

    • بما أنّه لا يمكن أن تعتمد الوحدات المحلية على حزمة APK الاختبارية لتطبيقك، فإنّ إضافة التبعيات إلى الاختبارات المزوّدة بأدوات باستخدام إعدادات androidTestApi بدلاً من androidTestImplementation يؤدي إلى إصدار Gradle للتحذير التالي:

              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              
              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              

    الإصلاحات

    • تم إصلاح مشكلة عدم التعرّف بشكلٍ صحيح على التبعيات في عمليات الإنشاء المركّبة في &quot;استوديو Android&quot;.
    • تم إصلاح مشكلة ظهور خطأ في مزامنة المشروع عند تحميل المكوّن الإضافي لنظام التشغيل Android عدة مرات في إصدار واحد، مثلاً عندما تتضمّن عدة مشاريع فرعية المكوّن الإضافي لنظام التشغيل Android في مسار فئة buildscript.

    ‫3.0.0 (أكتوبر 2017)

    يتضمّن هذا الإصدار مجموعة متنوّعة من التغييرات التي تهدف إلى معالجة مشاكل الأداء في المشاريع الكبيرة.

    على سبيل المثال، في مشروع هيكلي تجريبي يتضمّن حوالي 130 وحدة وعددًا كبيرًا من التبعيات الخارجية (ولكن بدون رموز أو موارد)، يمكنك ملاحظة تحسينات في الأداء مشابهة لما يلي:

    إصدار المكوّن الإضافي لنظام Android + إصدار Gradle الإصدار 2.2.0 من المكوّن الإضافي المتوافق مع Android + الإصدار 2.14.1 من Gradle الإصدار 2.3.0 من المكوّن الإضافي لنظام Android + الإصدار 3.3 من نظام Gradle الإصدار 3.0.0 من المكوّن الإضافي لنظام Android + الإصدار 4.1 من Gradle
    الإعداد (مثل تنفيذ ./gradlew --help) ‫~2 دقيقة ‫9 ثوانٍ تقريبًا ‫~2.5 ثانية
    تغيير سطر واحد في Java (تغيير في التنفيذ) ‫2 دقيقة و15 ثانية تقريبًا ‫29 ثانية تقريبًا ‫~6.4 ثانية

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

    إذا لم تلاحظ التحسينات في الأداء الموضّحة أعلاه، يُرجى إرسال تقرير عن الخطأ وتضمين تتبُّع لعملية التصميم باستخدام أداة Gradle Profiler.

    يتطلّب هذا الإصدار ما يلي:

    • الإصدار 4.1 من Gradle أو إصدار أحدث لمزيد من المعلومات، راجِع القسم حول تحديث Gradle.
    • الإصدار 26.0.2 أو إصدار أحدث من أدوات الإنشاء من خلال هذا التحديث، لن تحتاج بعد الآن إلى تحديد إصدار لأدوات الإنشاء، إذ يستخدم المكوّن الإضافي الحد الأدنى للإصدار المطلوب تلقائيًا. وبالتالي، يمكنك الآن إزالة السمة android.buildToolsVersion.

    3.0.1 (تشرين الثاني/نوفمبر 2017)

    هذا تحديث بسيط يتيح استخدام الإصدار 3.0.1 من &quot;استوديو Android&quot;، ويتضمّن إصلاحات عامة للأخطاء وتحسينات في الأداء.

    التحسينات

    • تحسين التوازي للمشاريع المتعددة الوحدات من خلال رسم بياني دقيق للمهام.
    • عند إجراء تغييرات على الاعتمادية، ينفّذ Gradle عمليات تصميم أسرع من خلال عدم إعادة تجميع الوحدات التي لا يمكنها الوصول إلى واجهة برمجة التطبيقات الخاصة بهذه الاعتمادية. عليك حصر التبعيات التي تسرّب واجهات برمجة التطبيقات الخاصة بها إلى وحدات أخرى من خلال استخدام إعدادات الاعتماديات الجديدة في Gradle: implementation وapi وcompileOnly وruntimeOnly.
    • سرعة تصميم متزايدة أسرع بسبب تقسيم رمز DEX على مستوى كل فئة يتم الآن تجميع كل فئة في ملفات DEX منفصلة، ولا تتم إعادة تجميع الفئات إلا إذا تم تعديلها. من المفترض أيضًا أن تلاحظ تحسّنًا في سرعات تصميم التطبيقات التي تضبط قيمة minSdkVersion على 20 أو أقل، وتستخدم الإصدار القديم من Multi-Dex.
    • تحسين سرعات التصميم من خلال تحسين مهام معيّنة لاستخدام النواتج المخزّنة مؤقتًا للاستفادة من هذا التحسين، عليك أولاً تفعيل ذاكرة التخزين المؤقت لتصميم Gradle.
    • تحسين معالجة الموارد التزايدية باستخدام AAPT2، والتي أصبحت مفعَّلة تلقائيًا. إذا كنت تواجه مشاكل أثناء استخدام AAPT2، يُرجى الإبلاغ عن خطأ. يمكنك أيضًا إيقاف AAPT2 من خلال ضبط android.enableAapt2=false في ملف gradle.properties وإعادة تشغيل عملية Gradle الخلفية عن طريق تنفيذ ./gradlew --stop من سطر الأوامر.

    الميزات الجديدة

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

      • تمت إضافة testOptions.execution لتحديد ما إذا كان سيتم استخدام تنسيق الاختبار على الجهاز. إذا أردت استخدام منسّق الاختبارات من Android، عليك تحديد ANDROID_TEST_ORCHESTRATOR، كما هو موضّح أدناه. يتم ضبط هذه السمة تلقائيًا على HOST، ما يؤدي إلى إيقاف التنسيق على الجهاز، وهي الطريقة العادية لتنفيذ الاختبارات.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • يتيح لك إعداد الاعتمادية الجديد androidTestUtil تثبيت حزمة APK أخرى خاصة بأداة الاختبار المساعدة قبل تشغيل اختبارات حالة التطبيق، مثل "منسّق الاختبارات من Android":

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • تمت إضافة testOptions.unitTests.includeAndroidResources لدعم اختبارات الوحدات التي تتطلّب موارد Android، مثل Roboelectric. عند ضبط هذه السمة على true، تنفّذ الإضافة عملية دمج للموارد ومواد العرض والبيان قبل تشغيل اختبارات الوحدات. يمكن أن تفحص اختباراتك بعد ذلك com/android/tools/test_config.properties في مسار الفئة بحثًا عن المفاتيح التالية:

      • android_merged_assets: المسار المطلق إلى مجلد مواد العرض المدمجة.

        ملاحظة: بالنسبة إلى وحدات المكتبة، لا تحتوي مواد العرض المدمجة على مواد عرض التبعيات (راجِع المشكلة رقم 65550419).

      • android_merged_manifest: المسار المطلق إلى ملف البيان المدمج.

      • android_merged_resources: المسار المطلق إلى مجلد الموارد المدمجة الذي يحتوي على جميع الموارد من الوحدة وجميع التبعيات.

      • android_custom_package: اسم حزمة فئة R النهائية في حال تعديل معرّف التطبيق بشكل ديناميكي، قد لا يتطابق اسم الحزمة هذا مع السمة package في ملف بيان التطبيق.

    • إتاحة استخدام الخطوط كموارد (وهي ميزة جديدة تم طرحها في Android 8.0 (المستوى 26 لواجهة برمجة التطبيقات)).
    • إتاحة حِزم APK خاصة بلغات معيّنة باستخدام الإصدار 1.1 من حزمة تطوير البرامج (SDK) للتطبيقات الفورية على Android والإصدارات الأحدث
    • يمكنك الآن تغيير دليل الإخراج لمشروع الإصدار الأصلي الخارجي، كما هو موضّح أدناه:

      Groovy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • يمكنك الآن استخدام الإصدار 3.7 من CMake أو إصدار أحدث عند إنشاء مشاريع أصلية من "استوديو Android".
    • يتيح لك إعداد الاعتمادية الجديد lintChecks إنشاء ملف JAR يحدّد قواعد أداة Lint مخصّصة، وتضمينه في مشاريع AAR وAPK.

      يجب أن تنتمي قواعد Lint المخصّصة إلى مشروع منفصل يعرض ملف JAR واحدًا ويتضمّن فقط compileOnly التبعيات. يمكن أن تعتمد وحدات التطبيق والمكتبة الأخرى على مشروع Lint باستخدام إعدادات lintChecks:

      Groovy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    تغييرات السلوك

    • يزيل الإصدار 3.0.0 من المكوّن الإضافي لنظام Android بعض واجهات برمجة التطبيقات، وسيتعذّر تصميم تطبيقك إذا كنت تستخدمها. على سبيل المثال، لن يعود بإمكانك استخدام Variants API للوصول إلى عناصر outputFile() أو استخدام processManifest.manifestOutputFile() للحصول على ملف البيان لكل صيغة. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في واجهة برمجة التطبيقات.
    • لم يعُد عليك تحديد إصدار لأدوات التصميم (وبالتالي، يمكنك الآن إزالة السمة android.buildToolsVersion). تستخدم المكوّنات الإضافية تلقائيًا الحد الأدنى من إصدار أدوات التصميم المطلوب لإصدار مكوّن Android الإضافي الذي تستخدمه.
    • يمكنك الآن تفعيل/إيقاف تقليل حجم ملفات PNG في كتلة buildTypes كما هو موضّح أدناه. يتم تفعيل ضغط ملفات PNG تلقائيًا لجميع الإصدارات باستثناء إصدارات تصحيح الأخطاء، لأنّ ذلك يزيد من مدّة التصميم للمشاريع التي تتضمّن العديد من ملفات PNG. لتحسين مدّة التصميم لأنواع التصميم الأخرى، عليك إما إيقاف تصغير حجم ملفات PNG أو تحويل صورك إلى WebP.

      Groovy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • تنشئ إضافة Android الآن تلقائيًا أهدافًا قابلة للتنفيذ يمكنك ضبطها في مشاريع CMake الخارجية.
    • يجب الآن إضافة معالِجات التعليقات التوضيحية إلى مسار فئة المعالج باستخدام إعدادات الاعتمادية annotationProcessor.
    • أصبح استخدام ndkCompile المتوقّف نهائيًا أكثر تقييدًا. بدلاً من ذلك، عليك نقل البيانات لاستخدام CMake أو ndk-build لتجميع الرمز البرمجي الأصلي الذي تريد تضمينه في حزمة APK. لمزيد من المعلومات، يمكنك الاطّلاع على مقالة نقل البيانات من ndkcompile.

    ‫3.0.0 (أكتوبر 2017)

    يتضمّن هذا الإصدار مجموعة متنوّعة من التغييرات التي تهدف إلى معالجة مشاكل الأداء في المشاريع الكبيرة.

    على سبيل المثال، في مشروع هيكلي تجريبي يتضمّن حوالي 130 وحدة وعددًا كبيرًا من التبعيات الخارجية (ولكن بدون رموز أو موارد)، يمكنك ملاحظة تحسينات في الأداء مشابهة لما يلي:

    إصدار المكوّن الإضافي لنظام Android + إصدار Gradle الإصدار 2.2.0 من المكوّن الإضافي المتوافق مع Android + الإصدار 2.14.1 من Gradle الإصدار 2.3.0 من المكوّن الإضافي لنظام Android + الإصدار 3.3 من نظام Gradle الإصدار 3.0.0 من المكوّن الإضافي لنظام Android + الإصدار 4.1 من Gradle
    الإعداد (مثل تنفيذ ./gradlew --help) ‫~2 دقيقة ‫9 ثوانٍ تقريبًا ‫~2.5 ثانية
    تغيير سطر واحد في Java (تغيير في التنفيذ) ‫2 دقيقة و15 ثانية تقريبًا ‫29 ثانية تقريبًا ‫~6.4 ثانية

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

    إذا لم تلاحظ التحسينات في الأداء الموضّحة أعلاه، يُرجى إرسال تقرير عن الخطأ وتضمين تتبُّع لعملية التصميم باستخدام أداة Gradle Profiler.

    يتطلّب هذا الإصدار ما يلي:

    • الإصدار 4.1 من Gradle أو إصدار أحدث لمزيد من المعلومات، راجِع القسم حول تحديث Gradle.
    • الإصدار 26.0.2 أو إصدار أحدث من أدوات الإنشاء من خلال هذا التحديث، لن تحتاج بعد الآن إلى تحديد إصدار لأدوات الإنشاء، إذ يستخدم المكوّن الإضافي الحد الأدنى للإصدار المطلوب تلقائيًا. وبالتالي، يمكنك الآن إزالة السمة android.buildToolsVersion.

    3.0.1 (تشرين الثاني/نوفمبر 2017)

    هذا تحديث بسيط يتيح استخدام الإصدار 3.0.1 من &quot;استوديو Android&quot;، ويتضمّن إصلاحات عامة للأخطاء وتحسينات في الأداء.

    التحسينات

    • تحسين التوازي للمشاريع المتعددة الوحدات من خلال رسم بياني دقيق للمهام.
    • عند إجراء تغييرات على الاعتمادية، ينفّذ Gradle عمليات تصميم أسرع من خلال عدم إعادة تجميع الوحدات التي لا يمكنها الوصول إلى واجهة برمجة التطبيقات الخاصة بهذه الاعتمادية. عليك حصر التبعيات التي تسرّب واجهات برمجة التطبيقات الخاصة بها إلى وحدات أخرى من خلال استخدام إعدادات الاعتماديات الجديدة في Gradle: implementation وapi وcompileOnly وruntimeOnly.
    • سرعة تصميم متزايدة أسرع بسبب تقسيم رمز DEX على مستوى كل فئة يتم الآن تجميع كل فئة في ملفات DEX منفصلة، ولا تتم إعادة تجميع الفئات إلا إذا تم تعديلها. من المفترض أيضًا أن تلاحظ تحسّنًا في سرعات تصميم التطبيقات التي تضبط قيمة minSdkVersion على 20 أو أقل، وتستخدم الإصدار القديم من Multi-Dex.
    • تحسين سرعات التصميم من خلال تحسين مهام معيّنة لاستخدام النواتج المخزّنة مؤقتًا للاستفادة من هذا التحسين، عليك أولاً تفعيل ذاكرة التخزين المؤقت لتصميم Gradle.
    • تحسين معالجة الموارد التزايدية باستخدام AAPT2، والتي أصبحت مفعَّلة تلقائيًا. إذا كنت تواجه مشاكل أثناء استخدام AAPT2، يُرجى الإبلاغ عن خطأ. يمكنك أيضًا إيقاف AAPT2 من خلال ضبط android.enableAapt2=false في ملف gradle.properties وإعادة تشغيل عملية Gradle الخلفية عن طريق تنفيذ ./gradlew --stop من سطر الأوامر.

    الميزات الجديدة

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

      • تمت إضافة testOptions.execution لتحديد ما إذا كان سيتم استخدام تنسيق الاختبار على الجهاز. إذا أردت استخدام منسّق الاختبارات من Android، عليك تحديد ANDROID_TEST_ORCHESTRATOR، كما هو موضّح أدناه. يتم ضبط هذه السمة تلقائيًا على HOST، ما يؤدي إلى إيقاف التنسيق على الجهاز، وهي الطريقة العادية لتنفيذ الاختبارات.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • يتيح لك إعداد الاعتمادية الجديد androidTestUtil تثبيت حزمة APK أخرى خاصة بأداة الاختبار المساعدة قبل تشغيل اختبارات حالة التطبيق، مثل "منسّق الاختبارات من Android":

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • تمت إضافة testOptions.unitTests.includeAndroidResources لدعم اختبارات الوحدات التي تتطلّب موارد Android، مثل Roboelectric. عند ضبط هذه السمة على true، تنفّذ الإضافة عملية دمج للموارد ومواد العرض والبيان قبل تشغيل اختبارات الوحدات. يمكن أن تفحص اختباراتك بعد ذلك com/android/tools/test_config.properties في مسار الفئة بحثًا عن المفاتيح التالية:

      • android_merged_assets: المسار المطلق إلى مجلد مواد العرض المدمجة.

        ملاحظة: بالنسبة إلى وحدات المكتبة، لا تحتوي مواد العرض المدمجة على مواد عرض التبعيات (راجِع المشكلة رقم 65550419).

      • android_merged_manifest: المسار المطلق إلى ملف البيان المدمج.

      • android_merged_resources: المسار المطلق إلى مجلد الموارد المدمجة الذي يحتوي على جميع الموارد من الوحدة وجميع التبعيات.

      • android_custom_package: اسم حزمة فئة R النهائية في حال تعديل معرّف التطبيق بشكل ديناميكي، قد لا يتطابق اسم الحزمة هذا مع السمة package في ملف بيان التطبيق.

    • إتاحة استخدام الخطوط كموارد (وهي ميزة جديدة تم طرحها في Android 8.0 (المستوى 26 لواجهة برمجة التطبيقات)).
    • إتاحة حِزم APK خاصة بلغات معيّنة باستخدام الإصدار 1.1 من حزمة تطوير البرامج (SDK) للتطبيقات الفورية على Android والإصدارات الأحدث
    • يمكنك الآن تغيير دليل الإخراج لمشروع الإصدار الأصلي الخارجي، كما هو موضّح أدناه:

      Groovy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • يمكنك الآن استخدام الإصدار 3.7 من CMake أو إصدار أحدث عند إنشاء مشاريع أصلية من "استوديو Android".
    • يتيح لك إعداد الاعتمادية الجديد lintChecks إنشاء ملف JAR يحدّد قواعد أداة Lint مخصّصة، وتضمينه في مشاريع AAR وAPK.

      يجب أن تنتمي قواعد Lint المخصّصة إلى مشروع منفصل يعرض ملف JAR واحدًا ويتضمّن فقط compileOnly التبعيات. يمكن أن تعتمد وحدات التطبيق والمكتبة الأخرى على مشروع Lint باستخدام إعدادات lintChecks:

      Groovy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    تغييرات السلوك

    • يزيل الإصدار 3.0.0 من المكوّن الإضافي لنظام Android بعض واجهات برمجة التطبيقات، وسيتعذّر تصميم تطبيقك إذا كنت تستخدمها. على سبيل المثال، لن يعود بإمكانك استخدام Variants API للوصول إلى عناصر outputFile() أو استخدام processManifest.manifestOutputFile() للحصول على ملف البيان لكل صيغة. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في واجهة برمجة التطبيقات.
    • لم يعُد عليك تحديد إصدار لأدوات التصميم (وبالتالي، يمكنك الآن إزالة السمة android.buildToolsVersion). تستخدم المكوّنات الإضافية تلقائيًا الحد الأدنى من إصدار أدوات التصميم المطلوب لإصدار مكوّن Android الإضافي الذي تستخدمه.
    • يمكنك الآن تفعيل/إيقاف تقليل حجم ملفات PNG في كتلة buildTypes كما هو موضّح أدناه. يتم تفعيل ضغط ملفات PNG تلقائيًا لجميع الإصدارات باستثناء إصدارات تصحيح الأخطاء، لأنّ ذلك يزيد من مدّة التصميم للمشاريع التي تتضمّن العديد من ملفات PNG. لتحسين مدّة التصميم لأنواع التصميم الأخرى، عليك إما إيقاف تصغير حجم ملفات PNG أو تحويل صورك إلى WebP.

      Groovy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • تنشئ إضافة Android الآن تلقائيًا أهدافًا قابلة للتنفيذ يمكنك ضبطها في مشاريع CMake الخارجية.
    • يجب الآن إضافة معالِجات التعليقات التوضيحية إلى مسار فئة المعالج باستخدام إعدادات الاعتمادية annotationProcessor.
    • أصبح استخدام ndkCompile المتوقّف نهائيًا أكثر تقييدًا. بدلاً من ذلك، عليك نقل البيانات لاستخدام CMake أو ndk-build لتجميع الرمز البرمجي الأصلي الذي تريد تضمينه في حزمة APK. لمزيد من المعلومات، يمكنك الاطّلاع على مقالة نقل البيانات من ndkcompile.

    ‫2.3.0 (فبراير 2017)

    ‫2.3.3 (يونيو 2017)

    هذا تحديث بسيط يضيف توافقًا مع الإصدار 2.3.3 من &quot;استوديو Android&quot;.

    2.3.2 (مايو 2017)

    هذا تحديث بسيط يضيف توافقًا مع الإصدار 2.3.2 من &quot;استوديو Android&quot;.

    2.3.1 (أبريل 2017)

    هذا تحديث بسيط للإصدار 2.3.0 من مكوّن Android الإضافي يحلّ مشكلة تسبّبت في عدم عمل بعض أجهزة Android الفعلية بشكل سليم مع التشغيل الفوري (راجِع المشكلة رقم 235879).

    الاعتماديات:
    • الإصدار 3.3 من Gradle أو إصدار أحدث
    • الإصدار 25.0.0 أو إصدار أحدث من "أدوات الإنشاء"
    جديد:
    • يستخدم الإصدار 3.3 من Gradle الذي يتضمّن تحسينات في الأداء وميزات جديدة. لمزيد من التفاصيل، يُرجى الاطّلاع على ملاحظات إصدار Gradle.
    • ذاكرة التخزين المؤقت للتصميم: تخزِّن هذه الذاكرة بعض النتائج التي ينشئها المكوّن الإضافي لنظام Android عند إنشاء مشروعك (مثل ملفات AAR غير المعبأة والتبعيات البعيدة التي تم تحويلها مسبقًا إلى رمز Dalvik التنفيذي). تكون عمليات الإنشاء النظيف أسرع بكثير عند استخدام ذاكرة التخزين المؤقت لأنّ نظام الإنشاء يمكنه ببساطة إعادة استخدام الملفات المخزّنة مؤقتًا أثناء عمليات الإنشاء اللاحقة بدلاً من إعادة إنشائها. تستخدم المشاريع التي تستخدم الإصدار 2.3.0 من المكوّن الإضافي لنظام Android والإصدارات الأحدث ذاكرة التخزين المؤقت للإنشاء تلقائيًا. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تحسين سرعة الإنشاء باستخدام ذاكرة التخزين المؤقت للإنشاء.
    التغييرات:

    ‫2.2.0 (سبتمبر 2016)

    الاعتماديات:
    جديد:
    • يستخدم الإصدار 2.14.1 من Gradle، الذي يتضمّن تحسينات في الأداء وميزات جديدة، ويحلّ ثغرة أمنية تسمح بتصعيد الامتيازات المحلية عند استخدام برنامج Gradle الخفي. لمزيد من التفاصيل، يُرجى الاطّلاع على ملاحظات إصدار Gradle.
    • باستخدام externalNativeBuild {} DSL، يتيح لك Gradle الآن الربط بالمصادر الأصلية وتجميع المكتبات الأصلية باستخدام CMake أو ndk-build. بعد إنشاء المكتبات المجمّعة من رموز برمجية أصلية، يجمعها نظام Gradle في حزمة APK. لمزيد من المعلومات حول استخدام CMake وndk-build مع Gradle، يُرجى قراءة مقالة إضافة رمز C وC++ إلى مشروعك.
    • عند تنفيذ عملية إنشاء من سطر الأوامر، يحاول Gradle الآن تنزيل أي مكوّنات أو تحديثات مفقودة لحزمة SDK يعتمد عليها مشروعك تلقائيًا. لمزيد من المعلومات، اطّلِع على التنزيل التلقائي للحِزم الناقصة باستخدام Gradle.
    • تتيح ميزة التخزين المؤقت التجريبية الجديدة في Gradle تسريع أوقات الإنشاء من خلال التحويل المسبق إلى ملفات ‎.dex وتخزين الإصدارات المحوَّلة مسبقًا وإعادة استخدامها. لمزيد من المعلومات حول استخدام هذه الميزة التجريبية، يمكنك الاطّلاع على دليل ذاكرة التخزين المؤقت للبناء.
    • تحسين أداء عملية الإنشاء من خلال استخدام مسار جديد لتجميع الحِزم التلقائي يتولّى عمليات الضغط والتوقيع ومحاذاة zip في مهمة واحدة يمكنك الرجوع إلى استخدام أدوات التغليف القديمة من خلال إضافة android.useOldPackaging=true إلى ملف gradle.properties. أثناء استخدام أداة التغليف الجديدة، لا تتوفّر مهمة zipalignDebug. ومع ذلك، يمكنك إنشاء واحد بنفسك عن طريق استدعاء الطريقة createZipAlignTask(String taskName, File inputFile, File outputFile).
    • يستخدم توقيع حِزمة APK الآن الإصدار 2 من مخطّط توقيع حِزمة APK بالإضافة إلى توقيع JAR التقليدي. تقبل جميع منصات Android حِزم APK الناتجة. ويؤدي أي تعديل على حِزم APK هذه بعد التوقيع إلى إبطال توقيعات الإصدار 2 ويمنع تثبيتها على أي جهاز. لإيقاف هذه الميزة، أضِف ما يلي إلى ملف build.gradle على مستوى الوحدة:

      Groovy

      android {
        ...
        signingConfigs {
          config {
            ...
            v2SigningEnabled false
          }
        }
      }
            

      Kotlin

      android {
        ...
        signingConfigs {
          create("config") {
            ...
            v2SigningEnabled = false
          }
        }
      }
            
    • بالنسبة إلى عمليات إنشاء multidex، يمكنك الآن استخدام قواعد ProGuard لتحديد الفئات التي يجب أن يجمعها Gradle في ملف DEX الرئيسي لتطبيقك. بما أنّ نظام التشغيل Android يحمّل ملف DEX الرئيسي أولاً عند بدء تشغيل تطبيقك، يمكنك تحديد أولوية بعض الفئات عند بدء التشغيل من خلال تجميعها في ملف DEX الرئيسي. بعد إنشاء ملف إعداد ProGuard مخصّص لملف DEX الرئيسي، مرِّر مسار ملف الإعداد إلى Gradle باستخدام buildTypes.multiDexKeepProguard. يختلف استخدام DSL هذا عن استخدام buildTypes.proguardFiles، الذي يوفّر قواعد عامة في ProGuard لتطبيقك ولا يحدّد فئات لملف DEX الرئيسي.
    • تضيف هذه السمة إمكانية استخدام العلامة android:extractNativeLibs، التي يمكن أن تقلّل حجم تطبيقك عند تثبيته على جهاز. عند ضبط هذا العلامة على false في عنصر <application> في بيان التطبيق، يجمّع Gradle إصدارات غير مضغوطة ومتوافقة من المكتبات المجمّعة من رموز برمجية أصلية مع حزمة APK. يمنع ذلك PackageManager من نسخ المكتبات المجمّعة من رموز برمجية أصلية من حِزمة APK إلى نظام ملفات الجهاز أثناء التثبيت، كما يوفّر ميزة إضافية تتمثّل في تصغير حجم التحديثات التفاضلية لتطبيقك.
    • يمكنك الآن تحديد versionNameSuffix و applicationIdSuffix لنكهات المنتجات. (المشكلة 59614)
    التغييرات:
    • تعرض السمة getDefaultProguardFile الآن ملفات ProGuard التلقائية التي يوفّرها المكوّن الإضافي لنظام Android في Gradle، ولم تعُد تستخدم الملفات المتوفّرة في حزمة تطوير البرامج (SDK) لنظام Android.
    • تحسين أداء وميزات برنامج Jack المجمّع:
      • يتوافق Jack الآن مع تغطية اختبار Jacoco عند ضبط testCoverageEnabled على true.
      • تحسين التوافق مع أدوات معالجة التعليقات التوضيحية يتم تلقائيًا تطبيق معالِجات التعليقات التوضيحية في مسار الفئة، مثل أي تبعيات compile، على عملية الإنشاء. يمكنك أيضًا تحديد معالج تعليقات توضيحية في عملية الإنشاء وتمرير الوسيطات باستخدام javaCompileOptions.annotationProcessorOptions {} DSL في ملف build.gradle على مستوى الوحدة:

        Groovy

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className 'com.example.MyProcessor'
                // Arguments are optional.
                arguments = [ foo : 'bar' ]
              }
            }
          }
        }
            

        Kotlin

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className = "com.example.MyProcessor"
                // Arguments are optional.
                arguments(mapOf(foo to "bar"))
              }
            }
          }
        }
            

        إذا أردت تطبيق معالج تعليقات توضيحية في وقت الترجمة البرمجية ولكن بدون تضمينه في حزمة APK، استخدِم نطاق التبعية annotationProcessor:

        Groovy

        dependencies {
            compile 'com.google.dagger:dagger:2.0'
            annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            

        Kotlin

        dependencies {
            implementation("com.google.dagger:dagger:2.0")
            annotationProcessor("com.google.dagger:dagger-compiler:2.0")
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            
      • للحصول على قائمة بالمعلَمات التي يمكنك ضبطها، شغِّل الأمر التالي من سطر الأوامر:

        java -jar /build-tools/jack.jar --help-properties
        
      • تلقائيًا، إذا كان حجم الذاكرة المخصّصة لبرنامج Gradle الخفي يبلغ 1.5 غيغابايت على الأقل، سيتم تشغيل Jack في العملية نفسها التي يتم فيها تشغيل Gradle. لضبط حجم الذاكرة المخصّصة للعملية الخفية، أضِف ما يلي إلى ملف gradle.properties:
        # This sets the daemon heap size to 1.5GB.
        org.gradle.jvmargs=-Xmx1536M
        

    ‫2.1.0 (أبريل 2016)

    2.1.3 (أغسطس 2016)

    يتطلّب هذا التحديث الإصدار 2.14.1 من Gradle والإصدارات الأحدث. يتضمّن الإصدار 2.14.1 من Gradle تحسينات في الأداء وميزات جديدة وإصلاحًا أمنيًا مهمًا. لمزيد من التفاصيل، يُرجى الاطّلاع على ملاحظات إصدار Gradle.

    الاعتماديات:
    جديد:
    • تمت إضافة إمكانية استخدام الإصدار التجريبي من نظام التشغيل N للمطوّرين وJDK 8 وميزات لغة Java 8 باستخدام مجموعة أدوات Jack. لمزيد من المعلومات، يُرجى قراءة دليل معاينة الإصدار N.

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

    • تمت إضافة دعم تلقائي لتجميع Java بشكل تدريجي بهدف تقليل وقت التجميع أثناء التطوير. ويتم ذلك من خلال إعادة تجميع أجزاء المصدر التي تم تغييرها أو التي تحتاج إلى إعادة تجميع فقط. لإيقاف هذه الميزة، أضِف الرمز التالي إلى ملف build.gradle على مستوى الوحدة:

      Groovy

      android {
        ...
        compileOptions {
          incremental false
        }
      }

      Kotlin

      android {
        ...
        compileOptions {
          incremental = false
        }
      }
    • تمت إضافة إمكانية استخدام dexing-in-process التي تنفّذ عملية dexing ضمن عملية الإنشاء بدلاً من تنفيذها في عمليات منفصلة على جهاز افتراضي خارجي. لا يؤدي ذلك إلى تسريع عمليات الإنشاء المتزايدة فحسب، بل يؤدي أيضًا إلى تسريع عمليات الإنشاء الكاملة. يتم تفعيل الميزة تلقائيًا للمشاريع التي تم ضبط الحد الأقصى لحجم الذاكرة المخصّصة لبرنامج Gradle الخفي على 2048 ميغابايت على الأقل. يمكنك إجراء ذلك من خلال تضمين ما يلي في ملف gradle.properties الخاص بمشروعك:

      ```none org.gradle.jvmargs = -Xmx2048m ```

      إذا كنت قد حدّدت قيمة javaMaxHeapSize في ملف build.gradle على مستوى الوحدة، عليك ضبط org.gradle.jvmargs على قيمة javaMaxHeapSize + 1024 ميغابايت. على سبيل المثال، إذا ضبطت قيمة javaMaxHeapSize على "2048m"، عليك إضافة ما يلي إلى ملف gradle.properties الخاص بمشروعك:

      ```none org.gradle.jvmargs = -Xmx3072m ```

      لإيقاف dexing-in-process، أضِف الرمز التالي إلى ملف build.gradle على مستوى الوحدة:

      Groovy

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }

      Kotlin

      android {
        ...
        dexOptions {
            dexInProcess = false
        }
      }

    ‫2.0.0 (أبريل 2016)

    الاعتماديات:
    جديد:
    • تتيح هذه الميزة استخدام التشغيل الفوري من خلال إتاحة إدخال رمز البايت، وإرسال تحديثات الرموز والموارد إلى تطبيق قيد التشغيل على المحاكي أو الجهاز الفعلي.
    • تمت إضافة إمكانية إنشاء إصدارات متزايدة، حتى عندما لا يكون التطبيق قيد التشغيل. تم تحسين مدد التصميم الكاملة من خلال إرسال تغييرات متزايدة عبر Android Debug Bridge إلى الجهاز المتصل.
    • تمت إضافة maxProcessCount للتحكّم في عدد عمليات dex التي يمكن تشغيلها في الوقت نفسه. يضبط الرمز التالي، في ملف build.gradle على مستوى الوحدة، الحد الأقصى لعدد العمليات المتزامنة على 4:

      Groovy

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }

      Kotlin

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
        </li>
      
        <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing
        of dependencies, which are not supported with Proguard. This improves the build
        speed of your debug build variant. Because the experimental shrinker does not
        support optimization and obfuscation, you should enable Proguard for your
        release builds. To enable the experimental shrinker for your debug builds, add
        the following to your module-level <code>build.gradle</code> file:
      

      Groovy

      android {
        ...
        buildTypes {
          debug {
            minifyEnabled true
            useProguard false
          }
          release {
            minifyEnabled true
            useProguard true // this is a default setting
          }
        }
      }

      Kotlin

      android {
        ...
        buildTypes {
          getByName("debug") {
            minifyEnabled = true
            useProguard = false
          }
          getByName("release") {
            minifyEnabled = true
            useProguard = true // this is a default setting
          }
        }
      }
        </li>
      
        <li>Added logging support and improved performance for the resource shrinker.
        The resource shrinker now logs all of its operations into a <code>resources.txt</code>
        file located in the same folder as the Proguard log files.
        </li>
      </ul>
      

    تغيير السلوك:
    • عند ضبط قيمة minSdkVersion على 18 أو أعلى، تستخدم عملية توقيع حِزم APK خوارزمية SHA256.
    •   <li>DSA and ECDSA keys can now sign APK packages.
      
          <p class="note">
            <strong>Note:</strong> The <a href=
            "/training/articles/keystore.html">Android keystore</a> provider no
            longer supports <a href=
            "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore">
            DSA keys on Android 6.0</a> (API level 23) and higher.
          </p>
      
        </li>
      </ul>
      

    المشاكل التي تم إصلاحها:
    • تم إصلاح مشكلة تسبّبت في تكرار اعتماديات AAR في كل من إعدادات الإصدار التجريبي والإصدار الرئيسي.

    الإصدار 1.5.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (نوفمبر 2015)

    الاعتماديات:
    • الإصدار 2.2.1 من Gradle أو إصدار أحدث
    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    ملاحظات عامة:
    • تم دمج المكوّن الإضافي Data Binding في المكوّن الإضافي لنظام Gradle المتوافق مع Android. لتفعيلها، أضِف الرمز التالي إلى كل ملف build.gradle خاص بكل مشروع ويستخدم المكوّن الإضافي:
    • android {
          dataBinding {
              enabled = true
          }
      }
              
      android {
          dataBinding {
              enabled = true
          }
      }
              
    • تمت إضافة Transform API الجديدة للسماح للمكوّنات الإضافية التابعة لجهات خارجية بمعالجة ملفات .class التي تم تجميعها قبل تحويلها إلى ملفات .dex. تسهّل واجهة برمجة التطبيقات Transform API عملية إدخال عمليات معالجة مخصّصة للصفوف، مع توفير المزيد من المرونة بشأن العناصر التي يمكنك معالجتها. لإدراج عملية تحويل في عملية إنشاء، أنشئ فئة جديدة تنفّذ إحدى واجهات Transform، وسجِّلها باستخدام android.registerTransform(theTransform) أو android.registerTransform(theTransform, dependencies). ليست هناك حاجة إلى ربط المهام ببعضها. يُرجى ملاحظة ما يلي بشأن Transform API:
      • يمكن تطبيق عملية تحويل على واحد أو أكثر مما يلي: المشروع الحالي والمشاريع الفرعية والمكتبات الخارجية.
      • يجب تسجيل عملية تحويل على مستوى العالم، ما يؤدي إلى تطبيقها على جميع خيارات المنتج.
      • تتم الآن معالجة الرموز البرمجية الداخلية من خلال مكتبة Java Code Coverage Library (JaCoCo) وProGuard وMultiDex باستخدام Transform API. ومع ذلك، لا تستخدم حزمة Java Android Compiler Kit (Jack) واجهة برمجة التطبيقات هذه، بل يستخدمها مسار الرمز javac/dx فقط.
      • ينفِّذ Gradle عمليات التحويل بهذا الترتيب: JaCoCo، والمكوّنات الإضافية التابعة لجهات خارجية، وProGuard. يتطابق ترتيب التنفيذ للمكوّنات الإضافية التابعة لجهات خارجية مع ترتيب إضافة عمليات التحويل من خلال المكوّنات الإضافية التابعة لجهات خارجية، ولا يمكن لمطوّري المكوّنات الإضافية التابعة لجهات خارجية التحكّم في ترتيب تنفيذ عمليات التحويل من خلال واجهة برمجة تطبيقات.
    • تم إيقاف الدالة get dex نهائيًا من الفئة ApplicationVariant. لم يعُد بإمكانك الوصول إلى مهمة Dex من خلال واجهة برمجة التطبيقات الخاصة بالمتغيرات لأنّها أصبحت تتم من خلال عملية تحويل. ولا يتوفّر حاليًا بديل للتحكّم في عملية dex.
    • تم إصلاح مشكلة عدم توفّر الدعم المتزايد لمواد العرض.
    • تم تحسين إمكانية استخدام MultiDex من خلال إتاحتها لمشاريع الاختبار، وأصبحت الاختبارات تتضمّن تلقائيًا التبعية com.android.support:multidex-instrumentation.
    • تمت إضافة إمكانية إيقاف عملية إنشاء Gradle بشكل صحيح والإبلاغ عن السبب الأساسي للخطأ عندما تستدعي عملية إنشاء Gradle مهام غير متزامنة ويحدث خطأ في عملية العامل.
    • تمّت إضافة إمكانية ضبط واجهة تطبيق ثنائية (ABI) معيّنة في الصيغ التي تحتوي على واجهات ABI متعددة.
    • تمت إضافة إمكانية استخدام قائمة مفصولة بفواصل للأرقام التسلسلية للأجهزة في متغير البيئة ANDROID_SERIAL عند تثبيت الاختبارات أو تنفيذها.
    • تم إصلاح خطأ في التثبيت على الأجهزة التي تعمل بالإصدار 5.0 من نظام التشغيل Android (المستوى 20 لواجهة برمجة التطبيقات) والإصدارات الأحدث عندما يحتوي اسم حزمة APK على مسافة.
    • تم إصلاح مشاكل متعدّدة متعلّقة بإخراج الأخطاء في "أداة تجميع الموارد في Android" (AAPT).
    • تمت إضافة إمكانية استخدام JaCoCo بشكل متزايد لتوفير إصدارات متزايدة أسرع. يستدعي المكوّن الإضافي لنظام Gradle المتوافق مع Android الآن أداة JaCoCo مباشرةً. لفرض استخدام إصدار أحدث من أداة JaCoCo، عليك إضافته كعنصر تابع لنص برمجي للإنشاء.
    • تم إصلاح مشكلة عدم توافق JaCoCo مع تجاهل الملفات التي ليست فئات.
    • تمت إضافة إمكانية استخدام الرسومات المتجهة لإنشاء ملفات PNG في وقت الإنشاء لضمان التوافق مع الإصدارات القديمة. ينشئ المكوّن الإضافي لنظام Android في Gradle ملفات PNG لكل رسم متّجهي يتم العثور عليه في دليل موارد لا يحدّد إصدار واجهة برمجة التطبيقات أو يحدّد السمة android:minSdkVersion بقيمة 20 أو أقل في العنصر <uses-sdk> في بيان التطبيق. يمكنك ضبط كثافات PNG باستخدام السمة generatedDensities في القسمَين defaultConfig أو productFlavor من ملف build.gradle.
    • تمت إضافة مشاركة android.jar القابل للمحاكاة، والذي لا ينشئه المكوّن الإضافي إلا مرة واحدة ويستخدمه لاختبار الوحدات. تتشارك الآن عدة وحدات، مثل app وlib، في هذا الإذن. احذف $rootDir/build لإعادة إنشائه.
    • تم تغيير طريقة معالجة موارد Java لتتم قبل مهام التشويش بدلاً من أن تتم أثناء تجميع حِزمة APK. يتيح هذا التغيير لمهام التشويش فرصة تكييف موارد Java بعد تشويش الحِزم.
    • تم إصلاح مشكلة متعلّقة باستخدام رمز Java Native Interface (JNI) في المكوّن الإضافي للمكتبة التجريبية.
    • تمت إضافة إمكانية ضبط إصدار النظام الأساسي بشكل منفصل عن السمة android:compileSdkVersion في مكوّن مكتبة الميزات التجريبية الإضافي.

    الإصدار 1.3.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (أغسطس 2015)

    التبعيات:
    • الإصدار 2.2.1 من Gradle أو إصدار أحدث
    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    ملاحظات عامة:
    • تم إصلاح مهمة ZipAlign لتستهلك بشكل صحيح ناتج المهمة السابقة عند استخدام اسم ملف مخصّص.
    • تم إصلاح مشكلة حِزم Renderscript في NDK.
    • تم الحفاظ على إمكانية استخدام مهمة الإنشاء createDebugCoverageReport.
    • تم إصلاح مشكلة عدم توفّر الدعم للاستخدام المخصّص للسمة archiveBaseName في ملف الإنشاء build.gradle.
    • تم إصلاح تحذير Invalid ResourceType lint الناتج عن البحث عن تعليق توضيحي لطريقة المَعلمات عند تشغيل lint خارج &quot;استوديو Android&quot;.

    الإصدار 1.3.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (يوليو 2015)

    التبعيات:
    • الإصدار 2.2.1 من Gradle أو إصدار أحدث
    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    ملاحظات عامة:
    • تمت إضافة إمكانية استخدام السمة com.android.build.threadPoolSize للتحكّم في حجم مجموعة سلاسل العمليات المتزامنة الخاصة بمهمة Android من ملف gradle.properties أو سطر الأوامر. يضبط المثال التالي هذه السمة على 4.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • اضبط السلوك التلقائي للإنشاء على استبعاد ملفات LICENSE وLICENSE.txt من حِزم APK. لتضمين هذه الملفات في حزمة APK، عليك إزالتها من السمة packagingOptions.excludes في ملف build.gradle. مثلاً:
      android {
            packagingOptions.excludes = []
          }
            
      android {
            packagingOptions.excludes.clear()
          }
          
    • تمت إضافة المهمة sourceSets لفحص مجموعة جميع مجموعات المصادر المتاحة.
    • توفير إمكانية محسَّنة لاختبار الوحدات من أجل التعرّف على مجلدات المصدر التي تتضمّن نُسخًا متعددة و خيارات إنشاء على سبيل المثال، لاختبار تطبيق يتضمّن نكهات متعدّدة flavor1 وflavorA باستخدام نوع التصميم Debug، تكون مجموعات رموز المصدر للاختبار كما يلي:
      • اختبار
      • testFlavor1
      • testFlavorA
      • testFlavor1FlavorA
      • testFlavor1FlavorADebug

      كانت اختبارات Android تتعرّف من قبل على مجلدات المصدر المتعددة.

    • تحسين دعم اختبارات الوحدات من خلال:
      • نفِّذ javac على المصادر الرئيسية ومصادر الاختبار، حتى إذا تم ضبط السمة useJack على true في ملف الإصدار.
      • التعرّف بشكل صحيح على التبعيات لكل نوع إصدار
    • تمت إضافة إمكانية تحديد وسيطات مشغّل اختبار قياس حالة التطبيق من سطر الأوامر. مثلاً:
      ./gradlew connectedCheck \
         -Pandroid.testInstrumentationRunnerArguments.size=medium \
         -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
              
    • تمت إضافة إمكانية استخدام مَعلمات إضافية عشوائية لأداة Android Asset Packaging Tool (AAPT) في ملف build.gradle. مثلاً:

      android {
          aaptOptions {
            additionalParameters "--custom_option", "value"
          }
      }
            
      android {
          aaptOptions {
            additionalParameters += listOf("--custom_option", "value")
          }
      }
            
    • أضفنا إمكانية استخدام وحدة APK تجريبية كوحدة تجريبية منفصلة، وذلك باستخدام السمتَين targetProjectPath وtargetVariant لضبط مسار حزمة APK والصيغة المستهدَفة.

      ملاحظة: لا تتوافق وحدة حِزمة APK التجريبية مع إصدارات المنتج، ويمكنها استهداف صيغة واحدة فقط. بالإضافة إلى ذلك، لا تتوافق هذه الأداة مع Jacoco بعد.

    • تمت إضافة عملية التحقّق من صحة اسم المورد قبل دمج الموارد.
    • عند إنشاء حزمة AAR (أرشيف Android) لوحدات المكتبة، لا توفِّر عنصر نائب @{applicationId} تلقائيًا في إعدادات دمج ملف البيان. بدلاً من ذلك، استخدِم عنصرًا نائبًا مختلفًا، مثل @{libApplicationId}، وقدِّم قيمة له إذا أردت تضمين أرقام تعريف التطبيقات في مكتبة الأرشيف.

    الإصدار 1.2.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (أبريل 2015)

    الاعتماديات:
    • الإصدار 2.2.1 من Gradle أو إصدار أحدث
    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    ملاحظات عامة:
    • تحسين إمكانية إجراء اختبارات الوحدات باستخدام Gradle
      • تمت إضافة إمكانية تضمين الموارد بنمط Java في مسار الفئة عند تنفيذ اختبارات الوحدات مباشرةً من Gradle.
      • تمت إضافة إمكانية استخدام الاعتماديات في اختبارات الوحدات لعناصر Android Archive (AAR).
      • تمت إضافة إمكانية استخدام السمة unitTestVariants ليتم التلاعب بمتغيرات اختبار الوحدات باستخدام الملف build.gradle.
      • تمت إضافة مجموعة الرموز unitTest.all ضمن testOptions لضبط مهام مخصّصة لاختبار الوحدة. تعرض عينة الرمز البرمجي التالية كيفية إضافة إعدادات ضبط اختبار الوحدة باستخدام هذا الخيار الجديد:
        android {
          testOptions {
            unitTest.all {
              jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option.
            }
          }
        }
        android {
          testOptions {
            unitTest.all {
              jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option.
            }
          }
        }
                    
      • تم إصلاح طريقة التعامل مع التعدادات والحقول العامة للمثيل في حزمة ملف mockable-android.jar.
      • تم إصلاح تبعيات مهام مشروع المكتبة لكي تتم إعادة تجميع فئات الاختبار بعد إجراء تغييرات.
    • تمت إضافة السمة testProguardFile لتطبيق ملفات ProGuard عند تصغير حزمة APK اختبارية.
    • تمت إضافة السمة timeOut إلى كتلة الرمز adbOptions لضبط الحد الأقصى لوقت التسجيل في Android Debug Bridge.
    • تمت إضافة دعم لموارد 280 نقطة لكل بوصة.
    • تحسين الأداء أثناء تقييم المشروع

    الإصدار 1.1.3 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (مارس 2015)

    الاعتماديات:
    • الإصدار 2.2.1 من Gradle أو إصدار أحدث
    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    ملاحظات عامة:
    • تم إصلاح مشكلة تكرار الاعتماديات في تطبيق اختباري أدّى إلى حدوث خطأ في ProGuard.
    • تم إصلاح تنفيذ Comparator الذي لم يتوافق مع عقد JDK Comparator وأدى إلى حدوث خطأ في JDK 7.

    الإصدار 1.1.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (فبراير 2015)

    الاعتماديات:
    • الإصدار 2.2.1 من Gradle أو إصدار أحدث
    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    ملاحظات عامة:
    • المسار العادي عند إنشاء ملف JAR قابل للمحاكاة لاختبار الوحدة
    • تم إصلاح إعداد archivesBaseName في الملف build.gradle.
    • تم إصلاح خطأ العنصر النائب الذي لم يتم حله في عملية دمج ملف البيان عند إنشاء تطبيق اختبار للمكتبة.

    الإصدار 1.1.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (فبراير 2015)

    الاعتماديات:
    • الإصدار 2.2.1 من Gradle أو إصدار أحدث
    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    ملاحظات عامة:
    • تم تعديل صيغ الإصدارات بحيث لا يتم تفعيل مهام الإصدار الخاصة بأجهزة Wear إلا في الصيغ التي تتضمّن مشغّلاً لتطبيق Wear.
    • تم تغيير المشاكل المتعلّقة بالتبعيات لتؤدي إلى حدوث خطأ في وقت الإنشاء بدلاً من وقت تصحيح الأخطاء. يتيح لك هذا السلوك تنفيذ مهام تشخيصية (مثل &quot;التبعيات&quot;) للمساعدة في حل التعارض.
    • تم إصلاح الطريقة android.getBootClasspath() لعرض قيمة.

    الإصدار 1.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (فبراير 2015)

    الاعتماديات:
    • الإصدار 2.2.1 من Gradle أو إصدار أحدث
    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    ملاحظات عامة:
    • إضافة إمكانية إجراء اختبارات جديدة للوحدات
      • تم تفعيل اختبارات الوحدات لتنفيذها على آلة Java الافتراضية (JVM) المحلية باستخدام إصدار خاص من ملف android.jar يتوافق مع أُطر المحاكاة الشائعة، مثل Mockito.
      • تمت إضافة مهام اختبار جديدة testDebug وtestRelease وtestMyFlavorDebug عند استخدام متغيرات المنتج.
      • تمت إضافة مجلدات مصدر جديدة يتم التعرّف عليها كاختبارات للوحدات: src/test/java/ وsrc/testDebug/java/ وsrc/testMyFlavor/java/.
      • تمت إضافة إعدادات جديدة في ملف build.gradle لتحديد التبعيات المخصّصة للاختبار فقط، مثل testCompile 'junit:junit:4.11' و testMyFlavorCompile 'some:library:1.0'.

        ملاحظة: لا تتوافق التبعيات المخصّصة للاختبار فقط حاليًا مع Jack (مجموعة أدوات Java Android Compiler).

      • تمت إضافة الخيار android.testOptions.unitTests.returnDefaultValues للتحكّم في سلوك android.jar القابل للمحاكاة.
    • تم استبدال Test في أسماء مهام الاختبار بـ AndroidTest. على سبيل المثال، أصبحت المهمة assembleDebugTest الآن المهمة assembleDebugAndroidTest. لا تزال مهام اختبار الوحدات تتضمّن UnitTest في اسم المهمة، مثل assembleDebugUnitTest.
    • تم تعديل ملفات إعدادات ProGuard بحيث لا تنطبق على حِزمة APK التجريبية. في حال تفعيل التصغير، تعالج أداة ProGuard حزمة APK للاختبار وتطبّق فقط ملف الربط الذي يتم إنشاؤه عند تصغير حزمة APK الرئيسية.
    • تعديل إدارة التبعية
      • تم إصلاح المشاكل باستخدام النطاقَين provided وpackage.

        ملاحظة: لا تتوافق هذه النطاقات مع حِزم AAR (أرشيف Android)، وسيؤدي استخدامها إلى تعذُّر إنشاء حِزم AAR.

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

    الإصدار 1.0.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (يناير 2015)

    الاعتماديات:
    • الإصدارات من 2.2.1 إلى 2.3.x من Gradle

      ملاحظة: هذا الإصدار من المكوّن الإضافي لنظام Gradle المتوافق مع Android غير متوافق مع الإصدار Gradle 2.4 والإصدارات الأحدث.

    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    ملاحظات عامة:
    • تم إصلاح مشكلة تعذُّر إنشاء Gradle عند الوصول إلى الوحدة extractReleaseAnnotations. (المشكلة 81638)
    • تم إصلاح مشكلة في تمرير إعداد Disable إلى رمز بايت Dalvik Executable (dex) --no-optimize. (المشكلة 82662).
    • تم إصلاح مشاكل دمج ملف البيان عند استيراد مكتبات ذات إصدار targetSdkVersion أقل من 16.
    • تم إصلاح مشكلة ترتيب الكثافة عند استخدام &quot;استوديو Android&quot; مع JDK 8.

    الإصدار 1.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (ديسمبر 2014)

    الاعتماديات:
    • الإصدارات من 2.2.1 إلى 2.3.x من Gradle

      ملاحظة: هذا الإصدار من المكوّن الإضافي لنظام Gradle المتوافق مع Android غير متوافق مع الإصدار Gradle 2.4 والإصدارات الأحدث.

    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    ملاحظات عامة:
    • الإصدار الأوّلي من المكوّن الإضافي