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

في ما يلي ملاحظات إصدار "استوديو 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()، فإنّ ربط عرض البيانات يزيل خطر حدوث استثناءات مؤشر فارغ ناتجة عن معرّف عرض غير صالح.

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

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

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

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

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

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

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

  1. افتح لوحة المشروع (Project) من خلال اختيار عرض (View) > نوافذ الأدوات (Tool Windows) > المشروع (Project) من شريط القوائم.
  2. انقر بزر الماوس الأيمن على الوحدة الأساسية، والتي يُطلق عليها عادةً اسم "التطبيق"، ثم اختَر إعادة تصميم > تفعيل دعم التطبيقات الفورية.
  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". لعرض الأجزاء والأنشطة التي قد تؤدي إلى تسرُّب الذاكرة، ضَع علامة في مربّع الاختيار تسرُّبات النشاط/الجزء في لوحة تفريغ الذاكرة المجمّعة ضمن "أداة فحص الذاكرة".

أداة التحليل: رصد تسرُّب الذاكرة

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

المحاكيات

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

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

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

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

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

لن يتلقّى إصدار Windows ذو 32 بت من Android Studio أي تحديثات بعد كانون الأول (ديسمبر) 2019، ولن يتلقّى أي دعم بعد كانون الأول (ديسمبر) 2020. يمكنك مواصلة استخدام Android Studio. ومع ذلك، لتلقّي تحديثات إضافية، عليك ترقية محطة العمل إلى إصدار 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

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

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

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

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

  • ألبرت لو
  • أليكسي روت
  • أندريا ليغانزا
  • بنديكت كولب
  • سيزار بويرتا
  • كورتيس كروتش
  • داميان فيتشوريك
  • دان ليو
  • ديفيد بورستروم
  • Deepanshu
  • إيغور أندرييفيتشي
  • إيلي غرابير
  • إمين كوكالاري
  • إيفان تاتاركا
  • فرانتيسيك ناجي
  • غريغ موينز
  • هانس أشلايتنر
  • هانس بيتر إيدي
  • Henning Bunk
  • Hugo Visser
  • إيغور إسكودرو
  • إيناكي فيلار
  • جافينتيرا لييناتا
  • جو روجرز
  • كريستوفر دانييلسون
  • ليران بارسيسا
  • Louis CAD
  • لورانت بينتر
  • لوكاس واسيلكوفسكي
  • لوك فيلك
  • مالفين سوتانتو
  • ماساتوشي كوبودي
  • ماثيو وينترز
  • مايكل بيلي
  • Michał Górny
  • ميهائي نياكسو
  • مايك سكاميل
  • Monte Creasor
  • نيلسون أوساكي
  • نيلسون أوساكي
  • نيك فيرماني
  • نيكلاس أنسمان غيرتز
  • نيكلاس كرون
  • نيكولاس ليشتماير
  • Niek Haarman
  • نيلز فان هوف
  • نيكلاس باودي
  • Renato Goncalves
  • Roar Grønmo
  • روسلان باراتوف
  • سينان كوزاك
  • سلافومير تشيرفينسكي
  • ستيفان وولف
  • ستيفن داميكو
  • تاو وانغ
  • Tomas Chladek
  • Tomáš Procházka
  • توني روباليك
  • Torbjørn Sørli
  • وارن هي
  • ينتشي لين
  • زك سوييرز
  • ‫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" الآن إذا رصد إمكانية تحسين الأداء من خلال زيادة الحد الأقصى لمقدار ذاكرة الوصول العشوائي (RAM) التي يجب أن يخصّصها نظام التشغيل لعمليات "استوديو Android"، مثل حزمة تطوير البرامج (IDE) الأساسية وخدمة Gradle وخدمة Kotlin. يمكنك إما قبول الإعدادات المقترَحة من خلال النقر على رابط الإجراء في الإشعار، أو تعديل هذه الإعدادات يدويًا من خلال اختيار ملف > الإعدادات (أو Android Studio > الإعدادات المفضّلة على نظام التشغيل macOS)، ثم العثور على قسم إعدادات الذاكرة ضمن المظهر والسلوك > إعدادات النظام. لمزيد من المعلومات، اطّلِع على الحد الأقصى لحجم الذاكرة المؤقتة.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    تحسين مزامنة 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

    إنشاء قيد لمكوّن متداخل في Android Studio 3.5

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

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

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

    لمزيد من المعلومات، اطّلِع على مقالة تثبيت 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، افتح اللوحة التبعيات التي تم حلّها، كما هو موضّح أدناه.

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

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

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

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

    اقتراحات

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

    New Resource Manager

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

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

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

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

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

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

    تفعيل 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)

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

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

    في ما يلي قائمة بالأدلة التي يضعها "استوديو 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، يصبح أسرع بكثير، إذ يمكن للمشاريع الأكبر حجمًا أن تتوقّع تشغيل Lint أسرع بأربع مرات.

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

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

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

    تحديثات المحلّل

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

    تحسين الأداء

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    في السابق، كان "أداة تحليل الشبكة" تعرض النص الأولي فقط من حمولات الاتصال. يعمل Android Studio 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. عند اختيار عملية الفحص هذه في مربّع الحوار الإعدادات (Settings) أو الإعدادات المفضّلة (Preferences)، يمكنك أيضًا الاطّلاع على قائمة عمليات فحص Clang-Tidy المفعَّلة وغير المفعَّلة ضمن قسم الخيار (Option) في اللوحة اليمنى. لتفعيل عمليات التحقّق الإضافية، أضِفها إلى القائمة وانقر على تطبيق.

    لضبط 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 Studio بعد ذلك مشروع تطبيق جديدًا كما يفعل عادةً، ولكنّه يتضمّن السمات التالية في البيان لإتاحة استخدام التطبيق الفوري في الوحدة الأساسية لتطبيقك:

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

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

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

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

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

    يجب استخدام الإصدار 3.3 من Android Studio أو إصدار أحدث مع الإصدار 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)

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

    • أصبح إصدار 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 خطأ يمكن أن يؤدي إلى تعليق Android Studio، ولكن الإصدار 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;المساعد&quot; من خلال اختيار مساعدة > الميزات الجديدة في &quot;استوديو Android&quot;.

    Android Jetpack

    يساعد Android Jetpack في تسريع عملية تطوير تطبيقات Android من خلال توفير مكونات وأدوات وإرشادات تتيح لك التخلص من المهام المتكررة وإنشاء تطبيقات عالية الجودة وقابلة للاختبار بشكل أسرع وأسهل. يتضمّن Android Studio التحديثات التالية التي تتيح استخدام 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.

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

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

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

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

    للبدء، انقر بزر الماوس الأيمن على مجلد مشروع واختَر جديد > غير ذلك > موفّر 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 Profiler ضمن &quot;استوديو Android&quot; 3.2.

    الجلسات

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

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

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

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

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

    فحص مراجع JNI في "أداة فحص الذاكرة"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    يمكنك الآن بدء تسجيل نشاط وحدة المعالجة المركزية وإيقافه في أداة CPU Profiler من خلال تزويد تطبيقك بـ 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 الحالية

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

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

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

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

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

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

    إزالة التجميل اللغوي في الإصدار 8 من Android

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

    أداة جديدة لتخفيض حجم الرموز

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

          android.enableR8 = true
        

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

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

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

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

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

    ميزات محسَّنة في المحرِّر لملفات إنشاء 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; تتيح استخدام multidex الأصلي عند نشر إصدار تصحيح الأخطاء من تطبيق على جهاز يعمل بالإصدار 21 من واجهة برمجة التطبيقات Android أو الإصدارات الأحدث. الآن، سواء كنت تنشر تطبيقًا على جهاز أو تنشئ حزمة APK لإصدار التطبيق، يتيح المكوّن الإضافي لنظام Android في Gradle استخدام ميزة multidex الأصلية لجميع الوحدات التي تم ضبطها على minSdkVersion=21 أو إصدار أحدث.

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

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

    لاستخدام 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 Studio.

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

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

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

    لبدء استخدام "مساعد الاتصال"، اختَر الأدوات > مساعد الاتصال.

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

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

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

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

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

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

    ‫3.1 (مارس 2018)

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

    3.1.4 (أغسطس 2018)

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

    • أصبح إصدار 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 من واجهة برمجة التطبيقات).
    • في بعض الأحيان، كان يتعذّر بدء تشغيل Android Studio، مع ظهور 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; إصلاحات للأخطاء التالية:

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

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

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

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

    ‫IntelliJ 2017.3.3

    تم تعديل بيئة التطوير المتكاملة الأساسية في "استوديو Android" من خلال تحسينات من 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.

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

    • 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; الإصدار 1.2.30 من Kotlin.

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

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

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

    أدوات الأداء

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    تتوفّر أداة Device Monitor من سطر الأوامر

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

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

    ‫3.0 (أكتوبر 2017)

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

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

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

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

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

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

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

    ملاحظة: تطلّبت هذه التحسينات إجراء تغييرات كبيرة تؤدي إلى إيقاف بعض سلوكيات المكوّن الإضافي ولغة 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.

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

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

    التوافق مع Kotlin

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

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

    للبدء، اطّلِع على كيفية إضافة 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" الذي تمت إزالته).

    من المخطط الزمني العام في 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.

    لفتحها، انقر على عرض > نوافذ الأدوات > مستكشف ملفات الأجهزة.

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

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

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

    يتضمّن &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

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

    لتعريف عنوان 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، بما في ذلك ما يلي:
      • إضافة دعم جديد لإنشاء حواجز
      • إتاحة إنشاء مجموعات جديدة: في شريط الأدوات، انقر على الإرشادات > إضافة مجموعة (يتطلّب ذلك الإصدار ConstraintLayout 1.1.0 الإصدار التجريبي 2 أو إصدارًا أحدث)
      • واجهة مستخدم جديدة لإنشاء سلاسل: اختَر طرق عرض متعددة، ثم انقر بزر الماوس الأيمن واختَر سلسلة.

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

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

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

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

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

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

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

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

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

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

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

    android.enableD8=true
        

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

    مستودع Maven من Google

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

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

          allprojects {
              repositories {
                  google()
              }
          }
        
        

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

    تغييرات أخرى

    • لم يعُد تصحيح الأخطاء البرمجية الأصلي باستخدام "استوديو Android" متوافقًا مع إصدارات 32 بت من نظام التشغيل Windows. وقد اخترنا التركيز على منصات أخرى لأنّ عددًا قليلاً جدًا من المطوّرين يستخدمون هذه المنصة. إذا كنت تستخدم نظام التشغيل 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 لفئة Serializable. (خطأ: ‎#209006)
      • لا تنعكس تغييرات الأنماط مع ميزة "التشغيل الفوري". (الخطأ: ‎#210851)
      • جلسة Instant Run غير موثوق بها وتتسبّب في حدوث FileNotFoundException. (الخطأ: ‎#213083)
      • لا تظهر التغييرات على العناصر القابلة للرسم إلا بعد إجراء إعادة بناء كاملة لنظام التشغيل KitKat. (الخطأ: ‎#21530)
      • لا تنعكس تغييرات الموارد مع ميزة Instant Run عندما تحتوي sourceSets المخصّصة على مسارات متداخلة. (الخطأ: ‎#219145)
      • لا يعمل التبديل السريع والتبديل الدافئ إذا كان الصف الذي تم تغييره يحتوي على تعليق توضيحي مع قيمة تعداد. (خطأ: ‎#209047)
      • لا تظهر التغييرات التي يتم إجراؤها على بيانات التعليقات التوضيحية عند استخدام "التشغيل الفوري". (خطأ: ‎#210089)
      • لا يرصد ميزة &quot;التشغيل الفوري&quot; تغييرات الرمز إذا أجريت تغييرات خارج بيئة التطوير المتكاملة. (الخطأ: ‎#213205)
      • جلسة "التشغيل الفوري" غير موثوق بها بسبب عدم تطابق رمز الأمان. (خطأ: ‎#211989
      • يتعذّر إجراء التبديل البارد على الأجهزة التي لا تتوافق بشكل صحيح مع ميزة "التشغيل كغيرك". (الخطأ: ‎#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 والمكوّن الإضافي لنظام Android المتوافق مع Gradle 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، عليك استخدام الإصدار التجريبي من Android Studio 2.1. لا يتوافق الإصدار 2.0 من Android Studio مع جميع الميزات المطلوبة لاستهداف الإصدار التجريبي من نظام التشغيل N.

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

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

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

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

    • فحص عبارات switch باستخدام أعداد صحيحة مشروحة @IntDef للتأكّد من معالجة جميع الثوابت. لإضافة أي عبارات ناقصة بسرعة، استخدِم القائمة المنسدلة الخاصة بإجراء النية واختَر إضافة ثوابت @IntDef الناقصة.
    • علامات لمحاولات غير صحيحة لاستخدام ميزة "إدخال السلسلة" من أجل إدراج أرقام الإصدارات في الملف 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 مع &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 API في نشاط باستخدام شاشة logcat في Android Monitor. تتضمّن أداة lint على Android الآن تحذيرات بشأن بعض المشاكل المتعلقة بالروابط لصفحات معيّنة وواجهة برمجة التطبيقات App Indexing API.
    • تمت إضافة إمكانية استخدام أسماء قصيرة عند إكمال الرمز تلقائيًا لطرق العرض المخصّصة في "محرّر الرموز".
    • تمت إضافة دعم المزيد من عناصر VectorDrawable إلى استوديو مواد العرض الخاصة بالمتّجهات لضمان التوافق مع الإصدارات القديمة. يمكن أن تستخدم أداة Vector Asset Studio هذه العناصر لتحويل الرسومات المتجهة إلى صور نقطية بتنسيق PNG لاستخدامها مع الإصدار 4.4 من نظام التشغيل Android (المستوى 20 من واجهة برمجة التطبيقات) والإصدارات الأقدم.
    • أضفنا عمليات فحص جديدة lint لتطبيقات Android TV وAndroid Auto بهدف تقديم ملاحظات فورية قابلة للتنفيذ في Android Studio، بالإضافة إلى العديد من الحلول السريعة. على سبيل المثال، يمكن لأداة 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 Design وملفات SVG. لاستخدام هذه الأداة، انقر بزر الماوس الأيمن على المجلد res في عرض Android ضمن نافذة Project (المشروع)، ثم اختَر New (جديد) > Vector Asset (أصل متّجه).
    • تمت إضافة وظائف جديدة إلى "أداة مراقبة 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 في "استوديو Android" لتسهيل الوصول إلى الحِزم والأدوات وتقديم إشعارات التحديثات.

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

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

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

    • تمت إضافة إمكانية ربط البيانات لإنشاء تنسيقات تعريفية تربط منطق تطبيقك بعناصر التنسيق.
    • تمت إضافة إمكانية استخدام وحدة حزمة اختبار APK منفصلة لإنشاء حِزم اختبار APK في &quot;استوديو Android&quot;.
    • تم تعديل 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" لتضمين أداة مراقبة الذاكرة، كما تمت إضافة علامة تبويب لمراقبة أداء وحدة المعالجة المركزية.
    • تمت إضافة علامة التبويب عمليات الالتقاط في الهامش الأيمن لعرض ملفات بيانات أداء الذاكرة ووحدة المعالجة المركزية التي تم التقاطها، مثل تتبُّع طريقة وحدة المعالجة المركزية ولقطات مكدس الذاكرة.
    • توسيع نطاق دعم التعليقات التوضيحية من خلال تعليقات توضيحية إضافية للبيانات الوصفية وإمكانية استنتاج القيم الفارغة.
    • تم تحسين &quot;محرّر الترجمات&quot; من خلال توفير دعم إضافي لمعيار 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 وتحسينها لمجموعات المناطق واللغات ورموز مشغّل التطبيقات وأسماء الموارد وغيرها من المشاكل الشائعة في الرموز البرمجية.
    • تمت إضافة دعم لعلامة اللغة Best Current Practice (BCP) 47.

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

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

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

    الإصدار 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" (يناير 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; رسالة خطأ تفيد بأنّه تعذّر إعادة تحميل مشروع Gradle <project_name>.

      يتضمّن مكوّن 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 الخاص بالموارد والتنقّل في أدوات تعديل المصدر.
      • رصد الدورات في مراجع الموارد
      • يمكن الآن عرض جميع تراكبات الموارد من مختلف إصدارات Gradle وأنواع الإصدارات، بالإضافة إلى المكتبات، في ميزة Quick Documentation (F1) التي يمكنها عرض جميع ترجمات السلسلة ضمن علامة الإقحام. يتم إدراجها بترتيب عكسي لتراكب الموارد، مع وضع خط يتوسط النص على نُسخ السلسلة التي تم إخفاؤها.
      • إصلاحات للتعامل مع تعديل الموارد المدمجة عند تغيير مجموعة تبعيات الوحدات.
      • إصلاحات لعرض XML من أجل التعامل بشكل صحيح مع تعريفات كيانات الأحرف وعمليات الإفلات في XML وUnicode
    • إتاحة حفظ لقطة شاشة لمعاينة التنسيق ونوافذ محرر التنسيق
    • إصلاح أخطاء النماذج
    • إصلاح الأخطاء في أداة Lint
    • إصلاحات متنوّعة لتقارير الأعطال نشكرك على تعاونك، وننصحك بمواصلة إرسال تقارير الأعطال.

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

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

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

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

    يتطلّب هذا الإصدار من المكوّن الإضافي لنظام التشغيل Android ما يلي:

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

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

    ربط طرق العرض

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

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

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

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

    يتضمّن المكوّن الإضافي لنظام Gradle المتوافق مع Android إمكانية استخدام المكوّن الإضافي لنظام Gradle الخاص بالنشر في Maven، ما يتيح لك نشر عناصر الإصدار في مستودع Apache Maven. ينشئ مكوّن Android Gradle الإضافي مكوّنًا لكل عنصر من عناصر إصدارات الإنشاء في تطبيقك أو وحدة المكتبة، ويمكنك استخدام هذا المكوّن لتخصيص منشور في مستودع 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 المثبَّتة، بدون إنشاء نسخة من المكتبات.
    • حجم تنزيل أصغر لأنّ الضغط في "متجر Play" يكون عادةً أفضل عند تضمين مكتبات مجمّعة من رموز برمجية أصلية غير مضغوطة في حزمة APK أو حزمة تطبيق Android

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    يتطلّب هذا الإصدار من المكوّن الإضافي لنظام التشغيل Android ما يلي:

    ‫3.5.4 (يوليو 2020)

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

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

    ‫3.5.3 (ديسمبر 2019)

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

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

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

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

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

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

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

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

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

    عند تفعيل اختبارات الوحدات لاستخدام موارد 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)

    يتطلّب هذا الإصدار من المكوّن الإضافي لنظام التشغيل Android ما يلي:

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

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

    • إعدادات جديدة لعمليات التحقّق من أداة 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)

    يتطلّب هذا الإصدار من المكوّن الإضافي لنظام التشغيل Android ما يلي:

    ‫3.3.3 (تموز/يوليو 2020)

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

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

    3.3.2 (مارس 2019)

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

    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 وسيطة أولاً. قد يؤدي هذا التحسين إلى تحسين أداء عملية الإنشاء بشكل كبير للمشاريع التي تتضمّن العديد من المشاريع الفرعية والمكتبات والتبعيات، كما يؤدي إلى تحسين سرعة الفهرسة في "استوديو Android".

    • عند إنشاء مجموعة حزمات تطبيق Android، تتضمّن حِزم APK التي يتم إنشاؤها من مجموعة حزمات التطبيق هذه والتي تستهدف الإصدار 6.0 من نظام التشغيل Android (المستوى 23 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث تلقائيًا إصدارات غير مضغوطة من المكتبات المجمّعة من رموز برمجية أصلية. يؤدي هذا التحسين إلى تجنُّب حاجة الجهاز إلى إنشاء نسخة من المكتبة، وبالتالي تقليل حجم تطبيقك على القرص. وإذا كنت تفضّل إيقاف هذا التحسين، أضِف ما يلي إلى ملف gradle.properties:

      android.bundle.enableUncompressedNativeLibs = false
              
    • تفرض الإضافة الحد الأدنى من إصدارات بعض الإضافات التابعة لجهات خارجية.

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

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

      لتفعيل هذا التحسين يدويًا، انقر على ملف > الإعدادات > تجريبي > Gradle (Android Studio > الإعدادات المفضّلة > تجريبي > Gradle على جهاز Mac) وضَع علامة في مربّع الاختيار مزامنة المتغير النشط فقط.

      ملاحظة: تتوافق عملية التحسين هذه بشكل كامل مع المشاريع التي تتضمّن لغتَي 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، لن تحتاج بعد الآن إلى ضبط إصدار Build Tools يدويًا في ملفات build.gradle

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

    يتطلّب هذا الإصدار من المكوّن الإضافي لنظام التشغيل Android ما يلي:

    • Gradle 4.6 أو إصدار أحدث لمزيد من المعلومات، اطّلِع على القسم حول تحديث Gradle.
    • الإصدار 28.0.3 أو إصدار أحدث من أدوات إنشاء حزمة تطوير البرامج (SDK).

    3.2.1 (أكتوبر 2018)

    بعد هذا التحديث، لن تحتاج إلى تحديد إصدار لأدوات SDK Build. يستخدم المكوّن الإضافي لنظام 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; تتيح استخدام multidex الأصلي عند نشر إصدار تصحيح الأخطاء من تطبيق على جهاز يعمل بالإصدار 21 من واجهة برمجة التطبيقات Android أو إصدار أحدث. الآن، سواء كنت تنشر التطبيق على جهاز أو تنشئ حزمة APK لإصدار التطبيق، تتيح إضافة Android Gradle ميزة multidex الأصلية لجميع الوحدات التي تم ضبطها على 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)

    يتطلّب هذا الإصدار من المكوّن الإضافي لنظام التشغيل Android ما يلي:

    • 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 متعددة يستهدف كل منها واجهة تطبيق ثنائية (ABI) مختلفة، لن ينشئ تلقائيًا حِزم APK لواجهات التطبيق الثنائية التالية: mips وmips64 وarmeabi.

      إذا أردت إنشاء حِزم APK تستهدف واجهات التطبيق الثنائية هذه، عليك استخدام الإصدار 16b أو إصدار أقدم من حزمة تطوير البرامج الأصلية (NDK) وتحديد واجهات التطبيق الثنائية في ملف 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)

    يتضمّن الإصدار 3.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android مجموعة متنوّعة من التغييرات التي تهدف إلى معالجة مشاكل الأداء في المشاريع الكبيرة.

    على سبيل المثال، في مشروع هيكلي تجريبي يتضمّن حوالي 130 وحدة وعددًا كبيرًا من التبعيات الخارجية (ولكن بدون رموز أو موارد)، يمكنك ملاحظة تحسينات في الأداء مشابهة لما يلي:

    إصدار المكوّن الإضافي لنظام Android + إصدار Gradle المكوّن الإضافي لنظام Android الإصدار 2.2.0 + الإصدار 2.14.1 من Gradle الإصدار 2.3.0 من المكوّن الإضافي المتوافق مع Android + الإصدار 3.3 من Gradle الإصدار 3.0.0 من المكوّن الإضافي لنظام Android + الإصدار 4.1 من نظام Gradle
    الإعداد (مثل تنفيذ ./gradlew --help) دقيقتان تقريبًا ‫9 ثوانٍ تقريبًا ‫~2.5 ثانية
    تغيير سطر واحد في Java (تغيير في التنفيذ) ‫2 دقيقة و15 ثانية تقريبًا ‫~29 ثانية ‫~6.4 ثانية

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

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

    يتطلّب هذا الإصدار من المكوّن الإضافي لنظام التشغيل Android ما يلي:

    • Gradle 4.1 أو إصدار أحدث لمزيد من المعلومات، اطّلِع على القسم حول تحديث 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 من سطر الأوامر.

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

    • إدارة التبعيات التي تتضمّن خيارات منتج: عند إنشاء صيغة معيّنة من وحدة، تتطابق الإضافة الآن تلقائيًا مع صيغ تبعيات وحدة المكتبة المحلية مع صيغة الوحدة التي يتم إنشاؤها.
    • تتضمّن هذه الحزمة إضافة Feature module جديدة تتيح استخدام التطبيقات الفورية على Android و حزمة تطوير البرامج (SDK) الخاصة بالتطبيقات الفورية على Android (يمكنك تنزيلها باستخدام &quot;مدير حزمة تطوير البرامج&quot;). لمزيد من المعلومات حول إنشاء وحدات الميزات باستخدام المكوّن الإضافي الجديد، يمكنك الاطّلاع على بنية تطبيق فوري يتضمّن ميزات متعددة.
    • إتاحة استخدام ميزات لغة Java 8 ومكتبات Java 8 بشكل مدمج تم إيقاف Jack نهائيًا ولم يعُد مطلوبًا، ويجب أولاً إيقاف Jack لاستخدام ميزة التوافق المحسّنة مع Java 8 المضمّنة في سلسلة الأدوات التلقائية. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة استخدام ميزات لغة Java 8.
    • تمت إضافة إمكانية إجراء الاختبارات باستخدام Android Test Orchestrator، ما يتيح لك إجراء كل اختبار من اختبارات تطبيقك في استدعاء خاص به لـ Instrumentation. وبما أنّ كل اختبار يتم تنفيذه في مثيل Instrumentation خاص به، فإنّ أي حالة مشترَكة بين الاختبارات لا تتراكم على وحدة المعالجة المركزية أو الذاكرة في جهازك. وحتى إذا تعذّر إجراء أحد الاختبارات، سيؤدي ذلك إلى إيقاف مثيل Instrumentation الخاص به فقط، وبالتالي ستظل الاختبارات الأخرى تعمل.

      • تمت إضافة testOptions.execution لتحديد ما إذا كان سيتم استخدام تنسيق الاختبار على الجهاز. إذا أردت استخدام Android Test Orchestrator، عليك تحديد ANDROID_TEST_ORCHESTRATOR، كما هو موضّح أدناه. يتم ضبط هذه السمة تلقائيًا على HOST، ما يؤدي إلى إيقاف التنسيق على الجهاز، وهي الطريقة العادية لتنفيذ الاختبارات.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • يتيح لك إعداد التبعية الجديد androidTestUtil تثبيت حزمة APK أخرى خاصة بأداة الاختبار المساعدة قبل تشغيل اختبارات الأجهزة، مثل Android Test Orchestrator:

      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 خاصة بلغات معيّنة باستخدام حزمة تطوير البرامج (SDK) للإصدار 1.1 من "تطبيقات 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 أو إصدار أحدث عند إنشاء مشاريع بلغة C/C++ من Android Studio.
    • يتيح لك إعداد التبعية الجديد 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)

    يتضمّن الإصدار 3.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android مجموعة متنوّعة من التغييرات التي تهدف إلى معالجة مشاكل الأداء في المشاريع الكبيرة.

    على سبيل المثال، في مشروع هيكلي تجريبي يتضمّن حوالي 130 وحدة وعددًا كبيرًا من التبعيات الخارجية (ولكن بدون رموز أو موارد)، يمكنك ملاحظة تحسينات في الأداء مشابهة لما يلي:

    إصدار المكوّن الإضافي لنظام Android + إصدار Gradle المكوّن الإضافي لنظام Android الإصدار 2.2.0 + الإصدار 2.14.1 من Gradle الإصدار 2.3.0 من المكوّن الإضافي المتوافق مع Android + الإصدار 3.3 من Gradle الإصدار 3.0.0 من المكوّن الإضافي لنظام Android + الإصدار 4.1 من نظام Gradle
    الإعداد (مثل تنفيذ ./gradlew --help) دقيقتان تقريبًا ‫9 ثوانٍ تقريبًا ‫~2.5 ثانية
    تغيير سطر واحد في Java (تغيير في التنفيذ) ‫2 دقيقة و15 ثانية تقريبًا ‫~29 ثانية ‫~6.4 ثانية

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

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

    يتطلّب هذا الإصدار من المكوّن الإضافي لنظام التشغيل Android ما يلي:

    • Gradle 4.1 أو إصدار أحدث لمزيد من المعلومات، اطّلِع على القسم حول تحديث 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 من سطر الأوامر.

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

    • إدارة التبعيات التي تتضمّن خيارات منتج: عند إنشاء صيغة معيّنة من وحدة، تتطابق الإضافة الآن تلقائيًا مع صيغ تبعيات وحدة المكتبة المحلية مع صيغة الوحدة التي يتم إنشاؤها.
    • تتضمّن هذه الحزمة إضافة Feature module جديدة تتيح استخدام التطبيقات الفورية على Android و حزمة تطوير البرامج (SDK) الخاصة بالتطبيقات الفورية على Android (يمكنك تنزيلها باستخدام &quot;مدير حزمة تطوير البرامج&quot;). لمزيد من المعلومات حول إنشاء وحدات الميزات باستخدام المكوّن الإضافي الجديد، يمكنك الاطّلاع على بنية تطبيق فوري يتضمّن ميزات متعددة.
    • إتاحة استخدام ميزات لغة Java 8 ومكتبات Java 8 بشكل مدمج تم إيقاف Jack نهائيًا ولم يعُد مطلوبًا، ويجب أولاً إيقاف Jack لاستخدام ميزة التوافق المحسّنة مع Java 8 المضمّنة في سلسلة الأدوات التلقائية. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة استخدام ميزات لغة Java 8.
    • تمت إضافة إمكانية إجراء الاختبارات باستخدام Android Test Orchestrator، ما يتيح لك إجراء كل اختبار من اختبارات تطبيقك في استدعاء خاص به لـ Instrumentation. وبما أنّ كل اختبار يتم تنفيذه في مثيل Instrumentation خاص به، فإنّ أي حالة مشترَكة بين الاختبارات لا تتراكم على وحدة المعالجة المركزية أو الذاكرة في جهازك. وحتى إذا تعذّر إجراء أحد الاختبارات، سيؤدي ذلك إلى إيقاف مثيل Instrumentation الخاص به فقط، وبالتالي ستظل الاختبارات الأخرى تعمل.

      • تمت إضافة testOptions.execution لتحديد ما إذا كان سيتم استخدام تنسيق الاختبار على الجهاز. إذا أردت استخدام Android Test Orchestrator، عليك تحديد ANDROID_TEST_ORCHESTRATOR، كما هو موضّح أدناه. يتم ضبط هذه السمة تلقائيًا على HOST، ما يؤدي إلى إيقاف التنسيق على الجهاز، وهي الطريقة العادية لتنفيذ الاختبارات.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • يتيح لك إعداد التبعية الجديد androidTestUtil تثبيت حزمة APK أخرى خاصة بأداة الاختبار المساعدة قبل تشغيل اختبارات الأجهزة، مثل Android Test Orchestrator:

      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 خاصة بلغات معيّنة باستخدام حزمة تطوير البرامج (SDK) للإصدار 1.1 من "تطبيقات 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 أو إصدار أحدث عند إنشاء مشاريع بلغة C/C++ من Android Studio.
    • يتيح لك إعداد التبعية الجديد 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).

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

    ‫2.2.0 (سبتمبر 2016)

    التبعيات:
    جديد:
    • يستخدم الإصدار Gradle 2.14.1 الذي يتضمّن تحسينات في الأداء وميزات جديدة، كما أنّه يعالج ثغرة أمنية تسمح بتصعيد الامتيازات المحلية عند استخدام Gradle daemon. لمزيد من التفاصيل، راجِع ملاحظات إصدار Gradle.
    • باستخدام externalNativeBuild {} DSL، يتيح لك Gradle الآن الربط بالمصادر الأصلية وتجميع المكتبات الأصلية باستخدام CMake أو ndk-build. بعد إنشاء المكتبات المجمّعة من رموز برمجية أصلية، يجمعها Gradle في حزمة APK. لمزيد من المعلومات حول استخدام CMake وndk-build مع Gradle، يُرجى قراءة مقالة إضافة رمز C وC++ إلى مشروعك.
    • عند تشغيل إصدار من سطر الأوامر، يحاول Gradle الآن تنزيل أي مكوّنات أو تحديثات مفقودة في حزمة SDK يعتمد عليها مشروعك تلقائيًا. لمزيد من المعلومات، يُرجى قراءة مقالة التنزيل التلقائي للحِزم المفقودة باستخدام Gradle.
    • تتيح ميزة التخزين المؤقت التجريبية الجديدة في Gradle تسريع أوقات الإنشاء من خلال تنفيذ عملية dex مسبقًا وتخزين إصدارات المكتبات التي تم تنفيذ عملية 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)

    التبعيات:
    • الإصدار 2.10 من Gradle أو إصدار أحدث
    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    جديد:
    • تتيح هذه الميزة استخدام التشغيل الفوري من خلال إتاحة إدخال الرمز الثانوي، وإرسال تحديثات الرموز والموارد إلى تطبيق قيد التشغيل على المحاكي أو الجهاز الفعلي.
    • تمت إضافة إمكانية إنشاء إصدارات تدريجية، حتى عندما لا يكون التطبيق قيد التشغيل. تم تحسين أوقات الإنشاء الكاملة من خلال إرسال تغييرات تدريجية عبر 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 incremental instrumentation لإجراء عمليات إنشاء تزايدية أسرع. يستدعي المكوّن الإضافي لنظام 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 من المكوّن الإضافي المتوافق مع Android لنظام Gradle (أغسطس 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)

    التبعيات:
    • ‫Gradle 2.2.1 إلى 2.3.x

      ملاحظة: هذا الإصدار من المكوّن الإضافي لنظام Gradle المتوافق مع Android غير متوافق مع الإصدار 2.4 من Gradle والإصدارات الأحدث.

    • الإصدار 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)

    التبعيات:
    • ‫Gradle 2.2.1 إلى 2.3.x

      ملاحظة: هذا الإصدار من المكوّن الإضافي لنظام Gradle المتوافق مع Android غير متوافق مع الإصدار 2.4 من Gradle والإصدارات الأحدث.

    • الإصدار 21.1.1 أو إصدار أحدث من "أدوات الإنشاء"
    ملاحظات عامة:
    • الإصدار الأوّلي من المكوّن الإضافي