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

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

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

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

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

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

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

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

3.6.2 (آذار/مارس 2020)

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

3.6.1 (شباط/فبراير 2020)

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

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

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

عرض مُقسّم والتكبير/التصغير في محرّري التصميم

يعرض "العرض المُقسَّم" عرضَي التصميم والنص في الوقت نفسه.

في هذا الإصدار، تم تضمين التعديلات التالية على محرّري التصميم المرئي:

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

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

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

علامة تبويب مرجع علبة الألوان

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

أداة اختيار الألوان التي تحتوي على قيم ألوان مملوءة

مدير الموارد

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

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

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

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

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

عرض الربط

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

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

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

رائع

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

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

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

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

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

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

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

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

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

إزالة تشويش رمز الفئة والطريقة الثنائي في أداة تحليل APK

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

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

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

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

توافق مع لغة Kotlin

إنّ ميزات NDK التالية في Android Studio، التي كانت متاحة سابقًا في 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 وتصحيح أخطاء حِزم APK المُنشأة مسبقًا. لمزيد من المعلومات، يُرجى الاطّلاع على إرفاق مصادر Kotlin/Java.

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

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

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

  • نُسخ Activity التي تم إتلافها ولكن لا يزال يتم الإشارة إليها
  • Fragment مثيلات ليس لها قيمة FragmentManager صالحة ولكن يتمّ الإشارة إليها

إرفاق مصادر حِزم APK المكتوبة بلغة Kotlin فقط

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

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

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

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

  • نُسخ Activity التي تم إتلافها ولكن لا يزال يتم الإشارة إليها
  • Fragment التي لا تحتوي على قيمة FragmentManager صالحة ولكن لا يزال يتمّ الرجوع إليها

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

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

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

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

فلترة نَسخة ذاكرة لرصد تسرب الذاكرة

برامج المحاكاة

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

تحسينات على ميزة "تحديد الموقع الجغرافي"

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

النقاط الفردية

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

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

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

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

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

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

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

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

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

إتاحة استخدام شاشات متعددة

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

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

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

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

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

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

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

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

إضافة شاشات متعددة في علامة التبويب "عرض عناصر التحكّم الموسّعة في المحاكي"

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

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

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

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

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

اختيار جهاز افتراضي يعمل بنظام التشغيل Android Automotive.

عمليات تنزيل حِزم تطوير البرامج (SDK) القابلة للاستئناف

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

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

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

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

Win32 متوقّفة نهائيًا

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

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

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

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

لتحسين أداء Gradle Sync، انتقِل إلى ملف > الإعدادات > ميزات تجريبية واختَر "عدم إنشاء قائمة مهام Gradle أثناء مزامنة Gradle".

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

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

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

IntelliJ IDEA 2019.2

تم تحديث بيئة تطوير Android Studio الأساسية من خلال تحسينات من IntelliJ IDE في الإصدار 2019.2.

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

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

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

  • Albert Lo
  • أليكسي روث
  • أندريا ليغانزا
  • Benedikt Kolb
  • سيزار بويرتا
  • كيرتس كروتش
  • داميان فيسكورك
  • دان ليو
  • ديفيد بورستروم
  • ديبانشو
  • إيغور أندريفيتش
  • إلي غرابر
  • إيمن كوكالاري
  • إيفان تاتاركا
  • Frantisek Nagy
  • غريغ موينز
  • Hannes Achleitner
  • Hans Petter Eide
  • Henning Bunk
  • Hugo Visser
  • Igor Escodro
  • Iñaki Villar
  • Javentira Lienata
  • Joe Rogers
  • Kristoffer Danielsson
  • ليليان بارسيسا
  • Louis CAD
  • Lóránt Pintér
  • لوكاس فاسيلكوفسكي
  • لوك فيلكي
  • مالفين سوتانتو
  • ماساتوشي كوبود
  • ماثيو وينتر
  • مايكل بايلي
  • مايكال غورني
  • مihai Neacsu
  • مايك سكاميل
  • Monte Creasor
  • نيلسون أوساكى
  • نيلسون أوساكى
  • نيك فيرماني
  • نيكلاس أنسمان جيرتز
  • نيكلاس كرون
  • Nicolás Lichtmaier
  • Niek Haarman
  • نيلز فان هوف
  • نيكلاس بودي
  • Renato Goncalves
  • Roar Grønmo
  • روسلان باراتوڤ
  • سينان كوزاك
  • Slawomir Czerwinski
  • Stefan Wolf
  • Stephen D'Amico
  • تاو وانغ
  • Tomas Chladek
  • Tomáš Procházka
  • Tony Robalik
  • Torbjørn Sørli
  • وارين هي
  • Yenchi Lin
  • زاك سفيرز
  • 3.5 (آب/أغسطس 2019)

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

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

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

    3.5.3 (كانون الأول/ديسمبر 2019)

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

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

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

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

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

    Project Marble: System health

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    أزرار شريط الأدوات لتطبيق التغييرات

    أزرار شريط الأدوات لتطبيق التغييرات

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

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

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

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

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

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

    تحسينات على مخرجات أخطاء الإصدار

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

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

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

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

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

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

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

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

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

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

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

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

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

    استخدام التطبيق المصغّر للقيود لإنشاء قيود

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

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

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

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

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

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

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

    لمزيد من المعلومات عن هذه التغييرات، يُرجى الاطّلاع على مقالة مشروع Marble في "استوديو Android": "محرر التنسيق".

    ربط البيانات

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

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

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

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

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

    دعم محسّن لمشاريع C/C++

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

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

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

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

    لوحة "خيارات الإصدار" تعرِض اختيار خيار واحد حسب معرّف حزمة البرامج الأساسية

    لوحة "نُسخ التطبيق المُعدّة للإصدار" مع اختيار نسخة واحدة حسب ABI

    إصدارات NDK جنبًا إلى جنب

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

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

    IntelliJ IDEA 2019.1

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

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

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

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

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

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

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

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

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

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

    3.4.1 (أيار/مايو 2019)

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

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

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

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

    IntelliJ IDEA 2018.3.4

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

    المتغيّرات

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

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

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

    الوحدات

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

    التبعيات

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

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

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

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

    خيارات التصميم

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

    اقتراحات

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

    مدير الموارد الجديد

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

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

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

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

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

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

    R8 مفعَّل تلقائيًا

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

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

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

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

    باستخدام R8، تتم إزالة الترميز السكري والتصغير والتشويه والتحسين وإزالة ترميز Dex
            في خطوة تجميع واحدة.

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

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

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

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

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

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

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

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

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

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

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

    3.3 (كانون الثاني/يناير 2019)

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

    3.3.2 (آذار/مارس 2019)

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

    3.3.1 (شباط/فبراير 2019)

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

    IntelliJ IDEA 2018.2.2

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

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

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

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

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

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

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

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

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

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

    تحديثات "مسجِّل اللقطات"

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

    تحسين الأداء

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

    خيارات تتبُّع تخصيص الذاكرة في أداة تحليل الأداء

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

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

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

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

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

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

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

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

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

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

    الأجزاء في المخطط الزمني للحدث

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

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

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

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

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

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

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

    توفُّر أداة Clang-Tidy

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

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

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

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

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

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

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

    الإصدار 3.10.2 من CMake

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

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

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

    لمزيد من المعلومات حول ضبط CMake في build.gradle، يُرجى الاطّلاع على ضبط Gradle يدويًا.

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

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

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

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

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

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

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

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

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

    مزامنة مشروع يتضمّن صيغة واحدة

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

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

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

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

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

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

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

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

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

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

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

    3.2.1 (تشرين الأول/أكتوبر 2018)

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

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

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

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

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

      يعالج الإصدار 1.2.61 من Kotlin خطأً يمكن أن يؤدي إلى تعليق Android Studio، ولكن لا يتضمّن الإصدار 1.2.70 من Kotlin هذا الإصلاح.

      في المقابل، يتضمّن الإصدار 1.2.71 من Kotlin والإصدارات الأحدث هذا الإصلاح.

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

      android.buildToolsVersion "28.0.3"

    الميزات الجديدة في "مساعد Google"

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

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

    Android Jetpack

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

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

    في الإصدار 3.2 من "استوديو Android"، يُعدّ "محرر التنقّل" ميزة تجريبية. ل تفعيل "أداة تعديل التنقّل"، انقر على ملف > الإعدادات (استوديو Android > الإعدادات المفضّلة على نظام التشغيل Mac)، واختَر الفئة تجريبي في اللوحة اليمنى، ثم ضَع علامة في المربّع بجانب تفعيل "أداة تعديل التنقّل"، و أعِد تشغيل "استوديو Android".

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

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

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

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

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

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

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

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

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

    تنسيق Android App Bundle

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

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

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

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

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

    نموذج بيانات في "أداة تعديل التنسيق"

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

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

    الشرائح

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

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

    للبدء، انقر بزر الماوس الأيمن على مجلد مشروع واختَر جديد > غير ذلك > مقدّم الشرائح.

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

    ‫Kotlin 1.2.61

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

    IntelliJ IDEA 2018.1.6

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

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

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

    الجلسات

    يمكنك الآن حفظ بيانات "أداة تحليل الأداء من Google" على شكل جلسات لإعادة الاطّلاع عليها وفحصها لاحقًا. يحتفظ أداة تحليل الأداء ببيانات جلستك إلى أن تعيد تشغيل IDE.

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

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

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

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

    فحص إشارات JNI في أداة تحليل الذاكرة

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    محلّل الطاقة

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

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

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

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

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

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

    يتضمّن الإصدار 3.2 من "استوديو Android" العديد من الميزات الجديدة والمحسّنة لميزة فحص الأخطاء النحوية.

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

    عمليات تحقّق Lint من إمكانية التشغيل التفاعلي بين Java وKotlin

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

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

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

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

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

    هدف Gradle جديد

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

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

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

    تحذير في حال تشغيل أداة التدقيق على سعر متغير جديد

    تسجِّل أداة Lint الآن الصيغة والإصدار اللذَين تم تسجيل مرجع بهما، ويحذر dich

    تحسينات على عمليات التحقّق الحالية من الأخطاء

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

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

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

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

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

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

    إزالة التجميل اللغوي في D8

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

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

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

          android.enableR8 = true
        

    تم تغيير واجهات ABI التلقائية لحِزم APK المتعددة

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

    إذا كنت تريد إنشاء حِزم APK تستهدف مجموعات ABI هذه، عليك استخدام NDK r16b أو إصدار أقدم وتحديد مجموعات ABI في ملف build.gradle، كما هو موضّح أدناه:

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

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

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

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

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

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

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

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

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

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

    اعتبارًا من الإصدار 3.2 من "استوديو Android"، أصبح مستودع 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.

    مساعِد اتصال أداة Android Debug Bridge

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

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

    يوفّر "مساعِد الاتصال عبر بروتوكول بيانات Android" تعليمات وعناصر تحكّم في السياق وقائمة بالأجهزة المتصلة في سلسلة من الصفحات في لوحة مساعِد Google.

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

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

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

    لمعرفة التفاصيل، يُرجى الاطّلاع على النُسخ الاحتياطية.

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

    3.1 (آذار/مارس 2018)

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

    3.1.4 (آب/أغسطس 2018)

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

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

    3.1.3 (حزيران/يونيو 2018)

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

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

    3.1.2 (نيسان/أبريل 2018)

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

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

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

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

      "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

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

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

    3.1.1 (نيسان/أبريل 2018)

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

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

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

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

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

    IntelliJ 2017.3.3

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

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

    تحسينات على تحرير لغة الاستعلامات البنيوية (SQL) باستخدام Room

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

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

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

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

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

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

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

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

      تشمل مزايا المُجمِّع الجديد ما يلي:

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

    المُجمِّع وGradle

    ‫D8 هو المُجمِّع التلقائي لـ DEX

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

    يقدّم هذا المُجمِّع الجديد لـ DEX العديد من المزايا، بما في ذلك ما يلي:

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

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

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

            android.enableD8=true
          

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

    إزالة رمز برمجي برمجي بشكل تدريجي

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

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

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

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

    تم استبدال Gradle Console بـ Build window، التي تتضمّن علامتَي التبويب Sync وBuild.

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

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

    أصبحت عمليات مزامنة Gradle والفهرسة في IDE أكثر كفاءةً الآن، ما يقلل من الوقت الذي يتم إهداره في العديد من عمليات الفهرسة المتكررة.

    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 من "استوديو Android" الإصدار 1.2.30 من لغة Kotlin.

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

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

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

    أدوات الأداء

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    المحاكي

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

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

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

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

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

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

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

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

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

    • تم نقل العديد من الأوامر مباشرةً أسفل قائمة الأدوات.
    • تم نقل الأمر مزامنة المشروع مع ملفات Gradle إلى قائمة ملف.
    • تمّت إزالة الأمر Device Monitor (مراقبة الجهاز) كما هو описан أدناه.

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

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

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

    3.0 (تشرين الأول/أكتوبر 2017)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    محلّل الذاكرة

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

    لمزيد من المعلومات، يمكنك الاطّلاع على دليل أداة تحليل الذاكرة.

    محلّل الشبكة

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

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

    تحليل أداء حِزم APK وتصحيح الأخطاء فيها

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

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

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

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

    يتيح لك تطبيق "مستكشف ملفات الجهاز" الجديد فحص نظام الملفات في جهازك المتصل ونقْل الملفات بين الجهاز والكمبيوتر. وهذه الأداة تحلّ محلّ أداة نظام الملفات المتوفّرة في DDMS.

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

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

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

    تتيح لك ميزة "تطبيقات Android الفورية" الجديدة إنشاء تطبيقات فورية في مشروعك باستخدام نوعَين جديدَين من الوحدات: وحدات التطبيقات الفورية ووحدات الميزات (تتطلّب هذه الوحدات تثبيت حزمة تطوير البرامج (SDK) لتطبيقات Android الفورية).

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

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

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

    وحدات Android Things

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

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

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

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

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

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

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

    إتاحة مصادر الخطوط

    لاستخدام موارد الخطوط الجديدة في Android 8.0، يتضمّن Android Studio أداة اختيار موارد الخطوط للمساعدة في تجميع الخطوط في تطبيقك أو ضبط مشروعك لتنزيل الخطوط على الجهاز (عند توفّرها). يمكن أيضًا لمحرِّر التنسيق معاينة الخطوط في التنسيق.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    معاينة لأداة تحويل DEX من الإصدار D8

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

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

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

    android.enableD8=true
        

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

    مستودع Maven من Google

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

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

          allprojects {
              repositories {
                  google()
              }
          }
        
        

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

    تغييرات أخرى

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

    2.3 (آذار/مارس 2017)

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

    2.3.3 (حزيران/يونيو 2017)

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

    2.3.2 (نيسان/أبريل 2017)

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

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

    اطّلِع أيضًا على التحديثات المقابلة لمحاكي Android 26.0.3.

    2.3.1 (نيسان/أبريل 2017)

    هذا تحديث بسيط لإصدار Android Studio 2.3 يحلّ مشكلة عدم عمل بعض أجهزة 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 project’s
          <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>
      

    التغييرات

    • تم تعديل قاعدة بيانات IDE من IntelliJ 15 إلى IntelliJ 2016.1
    • تتطلّب ميزة "التشغيل الفوري" الآن تثبيت حزمة تطوير البرامج (SDK) لمنصّة التشغيل المتوافقة مع مستوى واجهة برمجة التطبيقات المستهدَف لجهازك.
    • سيتم إيقاف ميزة "التشغيل الفوري" تلقائيًا إذا كان المستخدم يشغّل التطبيق باستخدام ملف عمل أو كمستخدم ثانوي.
    • تم إصلاح العديد من مشاكل الموثوقية في ميزة التشغيل الفوري التي كانت تؤدي إلى عدم نشر التغيُّرات أو تعطُّل التطبيق:
      • لم يتم نشر بعض مواد عرض التطبيق في تطبيقك الذي يعمل. ( الخطأ: ‎#213454)
      • يتعطل التطبيق عند انتقال المستخدم بين جلسات "التشغيل الفوري" وجلسات التشغيل التي لا تتضمّن serialVersionUID في فئة Serializable. (الخطأ: ‎#209006)
      • لا تظهر تغييرات الأنماط عند استخدام ميزة "التشغيل الفوري". (الخطأ: ‎#210851)
      • جلسة "التشغيل الفوري" غير موثوقة وتؤدي إلى حدوث FileNotFoundException. (الخطأ: ‎#213083)
      • لا تظهر التغييرات التي يتم إجراؤها على ملفات drawable إلا بعد إجراء عملية إعادة إنشاء كاملة في نظام التشغيل KitKat. (الخطأ: ‎#21530)
      • لا تظهر تغييرات الموارد باستخدام ميزة "التشغيل الفوري" عندما تحتوي مجموعة sourceSets المخصّصة على مسارات متداخلة. (الخطأ: ‏#219145)
      • لا تعمل عملية التبديل السريع أو البديل إذا كانت الفئة التي تم تغييرها تحتوي على تعليق توضيحي مع قيمة مصنّف. (الخطأ: ‎#209047)
      • لا تظهر التغييرات التي تطرأ على بيانات التعليقات التوضيحية عند استخدام ميزة "التشغيل الفوري". (الخطأ: ‎#210089)
      • لا ترصد ميزة "التشغيل الفوري" تغييرات الرموز البرمجية إذا أجريت تغييرات خارج IDE. (الخطأ: ‎#213205)
      • جلسة "التشغيل الفوري" غير موثوق بها بسبب عدم تطابق الرمز المميّز للأمان. (الخطأ: ‎#211989
      • لا تنجح عملية التبديل البارد للأجهزة التي لا تتوافق مع run-as بشكل صحيح. (الخطأ: ‎#210875)
      • تعطُّل التطبيق بعد إعادة تشغيل ميزة "التشغيل الفوري" (الخطأ: ‏#219744)
      • تم رصد ClassNotFoundException عند التبديل من "التشغيل الفوري" إلى "تصحيح الأخطاء الفوري". (الخطأ: ‏#215805)
    • <li>Improved performance for <strong>Gradle sync</strong> within the IDE,
      especially for large projects.
      </li>
      
      <li>Improved build times for both full and incremental builds with new app
      packaging code.
      </li>
      
      <li>Improved <strong>Jack compiler performance and features</strong>,
      including support for annotation processors and dexing in process. To learn
      more, read the <a href=
      "/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
      2.2.0 release notes</a>.
      </li>
      
      <li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
      </li>
      
      <li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
      command-line options now report which ports and serial number the emulator
      instance is using, and warn if there are any issues with the values you
      provided.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/create-java-class.html">Create New Class dialog</a></strong>
      and the corresponding file templates. <strong>Note:</strong> If you've
      previously customized the <strong>AnnotationType</strong>,
      <strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
      <strong>Singleton</strong> file templates, you need to modify your templates
      to comply with the new templates or you won’t 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)

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

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

    2.1.2 (حزيران/يونيو 2016)

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

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

    2.1.1 (أيار/مايو 2016)

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

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

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

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

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

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

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

    2.0 (نيسان/أبريل 2016)

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

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

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

      ملاحظة: لا يتم توفير ميزة التشغيل الفوري إلا عند نشر نسخة تصحيح الأخطاء، واستخدام مكوّن Android الإضافي للإصدار 2.0.0 من نظام التشغيل Android أو الإصدارات الأحدث، وضبط ملف 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
    • ابحث عن أيّ موارد غير مستخدَمة وأزِلها من خلال اختيار إعادة التشكيل > إزالة الموارد غير المستخدَمة من شريط القوائم. تتيح ميزة رصد الموارد غير المستخدَمة الآن استخدام الموارد التي تتم الإشارة إليها فقط من خلال موارد غير مستخدَمة، والمراجع فيملفّات الأوّلية، مثل مراجع الصور .html، وسمات tools:keep و tools:discard التي يستخدمها أداة تصغير الموارد في Gradle، مع مراعاة مجموعات المصادر غير النشطة (مثل الموارد المستخدَمة في نكهات ملف الإنشاء الأخرى) والتعامل بشكل صحيح مع عمليات استيراد الحقول الثابتة.
    • التحقّق من توفّر مراجع واجهة برمجة التطبيقات الضمنية على جميع المنصات التي تستهدفها minSdkVersion
    • الإبلاغ عن استخدام غير ملائم لرمزَي RecyclerView وParcelable
    • يتم الآن أيضًا التحقّق من عمليات فحص @IntDef و@IntRange و@Size بحثًا عن int الصفائف والمتغيّرات العشوائية.

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

    • تم تحسينه ليعمل على الإصدار 2.0 من "محاكي Android"، وهو أسرع من أي وقت مضى، ويتوافق مع مجموعة أكبر من الأجهزة الافتراضية، ويتميز بواجهة مستخدم محسّنة بشكل كبير. لمزيد من المعلومات عن المحاكي الجديد، يُرجى الاطّلاع على ملاحظات إصدار "أدوات حِزم تطوير البرامج (SDK)".
    • تحسينات على مدير الأجهزة الافتراضية لنظام التشغيل Android:
      • تم تصنيف صور النظام الآن ضمن علامات التبويب التالية: مُقترَحة وx86 وغير ذلك.
      • ضمن الإعدادات المتقدّمة، يمكنك تفعيل ميزة التوافق مع المعالجات المتعددة وتحديد عدد النوى التي يمكن للمحاكي استخدامها.
      • ضمن الإعدادات المتقدّمة، يمكنك تحديد كيفية عرض الرسومات على المحاكي من خلال اختيار أحد الخيارَين التاليَين:
        • الأجهزة: استخدِم بطاقة الرسومات في جهاز الكمبيوتر لمعالجة المهام بشكل أسرع.
        • البرامج: استخدِم العرض المستنِد إلى البرامج.
        • تلقائي: يختار المحاكي الخيار الأفضل. وهذا هو الإعداد التلقائي.
    • تم تحسين أوقات حزم AAPT من خلال تحديد هدف النشر قبل برمجة التطبيق. يتيح ذلك لخدمة Android Studio تجميع الموارد المطلوبة فقط للجهاز المحدّد بفعالية.
    • تمت إضافة عملية دمج "مركز الاختبار الافتراضي في السحابة الإلكترونية" لتوفير اختبار التطبيقات عند الطلب مع الاستفادة من سهولة استخدام خدمة السحابة الإلكترونية وقابليتها للتوسع. مزيد من المعلومات حول كيفية استخدام "مختبر اختبارات الأداء في السحابة الإلكترونية" مع "استوديو Android"
    • تمت إضافة معاينة لأداة تصحيح أخطاء وحدة معالجة الرسومات الجديدة. بالنسبة إلى التطبيقات التي تستخدم الرسومات بشكل مكثّف، يمكنك الآن الاطّلاع على رمز OpenGL ES visually لتحسين تطبيقك أو لعبتك.
    • تمت إضافة اختبار "فهرسة التطبيقات من Google". يمكنك إضافة عناوين URL وميزة فهرسة التطبيقات ووظائف البحث إلى تطبيقاتك للمساعدة في جذب المزيد من الزيارات إلى تطبيقك ومعرفة محتوى التطبيق الأكثر استخدامًا وجذب مستخدمين جُدد. يمكنك اختبار عناوين URL في تطبيقك والتحقّق منها من خلال "استوديو Android Studio". اطّلِع على إتاحة عناوين URL وفهرسة التطبيقات في "استوديو Android".
    • ترقيات من أحدث إصدار من 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 في أسفل النافذة الرئيسية. في "مراقبة Android"، انقر على علامة التبويب الذاكرة. أثناء تشغيل أداة المراقبة، انقر على رمز تجميد ذاكرة Java، ثم انقر على عمليات الالتقاط في النافذة الرئيسية وانقر مرّتين على الملف لعرضه. انقر على تحليل التسجيل على يسار الصفحة. (لا يمكن تشغيل "أداة مراقبة أجهزة Android" في الوقت نفسه الذي يتم فيه تشغيل "أداة مراقبة Android").
    • تمت إضافة ميزة جديدة تتيح استخدام الروابط لصفحات في التطبيق والروابط المؤدية إلى التطبيقات. يمكن لأداة "محرر الرموز" إنشاء فلتر أهداف تلقائيًا لإنشاء روابط لصفحات في التطبيق في ملف AndroidManifest.xml. ويمكنه أيضًا إنشاء رمز برمجي لمساعدتك في الدمج مع App Indexing API في نشاط في ملف Java. تساعدك ميزة اختبار الروابط لصفحات في التطبيق في التأكّد من أنّ رابطًا لصفحة في التطبيق محدّدًا يمكنه تشغيل تطبيق. في علامة التبويب عام ضمن مربّع الحوار إعدادات التشغيل/التصحيح، يمكنك تحديد خيارات تشغيل الرابط لصفحة في التطبيق. يمكنك أيضًا اختبار طلبات البيانات من واجهة برمجة التطبيقات App Indexing API في نشاط باستخدام شاشة logcat في "مراقبة Android". تتضمّن أداة 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 بشكل مفرط عند إعادة تشغيل IDE.
    • تم إصلاح مشكلة تتعلّق بتوقُّف تصحيح الأخطاء الأصلي.
    • تم إصلاح مشكلة حظر مستخدمي نظام التحكّم في الإصدارات Subversion 1.9.
    • تم إصلاح مشكلة في مربّع حوار أداة اختيار الأجهزة، حيث لم يعُد بإمكانك اختيار المحاكي بعد ربط جهاز غير مصرّح به. المشكلة: 189658
    • تم إصلاح الإبلاغ عن أخطاء الترجمة غير الصحيحة للغات التي تحتوي على مؤهّل منطقة و translation في المنطقة (ولكن ليس في اللغة الأساسية). المشكلة: 188577
    • تم إصلاح مشكلة في أداة تعديل التصميم تتعلّق بتفاعلها مع أداة تعديل التصميم. المشكلة: 188070
    • تم إصلاح تعارض بين إعادة تحميل "أداة إنشاء المظاهر" وتعديلها، ما يؤدي إلى عدم تعديل السمات بشكلٍ صحيح. المشكلة: 187726
    • تحسين أداء "محرر المظاهر"
    • تم إصلاح مشكلة تجاهل سمة android:required في البيان. المشكلة: 187665

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

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

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

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

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

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

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

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

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

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

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

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

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

    • تم إصلاح مشاكل الإنشاء التي كانت تمنع اكتمال عمليات الإنشاء.

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

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

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

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

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

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

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

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

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

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

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

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

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

    • تم إصلاح مشكلة قفل ملف device.xml ومدير AVD.
    • تم إصلاح سجلّ المحاكي على أنظمة التشغيل Windows.
    • تم حلّ مشكلة إنشاء أجهزة افتراضية Android (AVD) باستخدام Android Studio وحزمة تطوير البرامج (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 Studio‏ (أغسطس 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.

      تحذير: لا يتوافق هذا الإصدار الجديد مع الإصدارات القديمة. عند فتح مشروع يستخدم إصدارًا قديمًا من المكوّن الإضافي، سيعرض "استوديو YouTube" رسالة خطأ مفادها تعذّر إعادة تحميل مشروع Gradle‏ <project_name>.

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

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

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

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

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

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

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

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

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

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

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

    عرض الربط

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

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

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

    إتاحة المكوّن الإضافي Maven Publish

    يتضمّن المكوّن الإضافي لنظام Gradle المتوافق مع Android مكوّن Maven Publish Gradle الإضافي الذي يتيح لك نشر عناصر الإنشاء في مستودع 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.

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

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

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

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

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

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

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

    • بما أنّ المُجمِّع يشارك فئات R مع تبعيات الوحدات في المصدر، من المهم أن تستخدم كل وحدة في مشروعك اسم حزمة فريدًا.
    • يتم تحديد مستوى وصول فئة R في المكتبة إلى العناصر الاعتمادية الأخرى للمشروع من خلال الإعدادات المستخدَمة لتضمين المكتبة كأحد عناصر الاعتماد. على سبيل المثال، إذا كانت المكتبة "أ" تتضمّن المكتبة "ب" كتبعية لـ "واجهة برمجة التطبيقات"، يمكن للمكتبة "أ" والمكتبات الأخرى التي تعتمد على المكتبة "أ" الوصول إلى فئة R في المكتبة "ب". ومع ذلك، قد لا تملك المكتبات الأخرى إذن الوصول إلى فئة R في المكتبة "ب". إذا كانت المكتبة "أ" تستخدم إعدادات التبعية 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 مفعّلاً.

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

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

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

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

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

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

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

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

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

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

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

    3.5.0 (آب/أغسطس 2019)

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

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

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

    3.5.4 (تموز/يوليو 2020)

    يتيح هذا التعديل البسيط التوافق مع الإعدادات التلقائية الجديدة والميزات الجديدة لأجل مستوى رؤية الحزمة في Android 11.

    اطّلِع على ملاحظات إصدار 4.0.1 لمعرفة التفاصيل.

    3.5.3 (كانون الأول/ديسمبر 2019)

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

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

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

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

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

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

    تتيح وحدة معالجة التعليقات التوضيحية في ربط البيانات معالجة التعليقات التوضيحية المتزايدة إذا تم ضبط 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 أو إصدار أقدم من المكوّن الإضافي Kotlin Gradle، قد يظهر التحذير التالي عند إنشاء مشروعك أو مزامنته:

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

    3.4.1 (أيار/مايو 2019)

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

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

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

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

      يستخدم نموذج الرمز البرمجي التالي كلّ من إعدادات التبعيات في مشروع مكتبة 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 واحدة.

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

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

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

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

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

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

    3.3.1 (شباط/فبراير 2019)

    يتوافق هذا التعديل البسيط مع الإصدار 3.3.1 من "استوديو Android"، ويتضمّن إصلاحات مختلفة للأخطاء وتحسينات في الأداء.

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

    • مزامنة مسار البحث عن الرمز البرمجي المحسَّنة: عند حلّ التبعيات في مسارات البحث عن الرمز البرمجي في وقت التشغيل ووقت الترجمة، يحاول المكوّن الإضافي Gradle لنظام التشغيل Android حلّ بعض تعارضات الإصدارات في ما يتعلّق بالتبعيات التي تظهر في مسارات بحث عن الرمز البرمجي متعددة.

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

      ومع ذلك، إذا كان مسار تجميع وقت التشغيل يتضمّن الإصدار 1.0 من "المكتبة أ" وملف compiling يتضمّن الإصدار 2.0 من "المكتبة أ"، لن يُنزِّل المكوّن الإضافي الإصدار المُستخدَم من ملف compiling classpath إلى الإصدار 1.0 من "المكتبة أ"، وسيظهر لك خطأ. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إصلاح التعارضات بين مسارات الفئات.

    • تحسين عملية تجميع Java المتزايدة عند استخدام معالجات التعليقات التوضيحية: يقلل هذا التعديل من وقت الإنشاء من خلال تحسين التوافق مع عملية تجميع Java المتزايدة عند استخدام معالجات التعليقات التوضيحية.

      ملاحظة: تتوافق هذه الميزة مع الإصدار 4.10.1 من Gradle والإصدارات الأحدث، باستثناء الإصدار 5.1 من Gradle بسبب مشكلة Gradle 8194.

      • بالنسبة إلى المشاريع التي تستخدم Kapt (معظم المشاريع التي تستخدم Kotlin فقط والمشاريع الهجينة التي تستخدم Kotlin وJava): يكون ميزة التجميع المتزايد لـ Java مفعَّلة، حتى عند استخدام ربط البيانات أو المكوّن الإضافي retro-lambda. لا تتم معالجة التعليقات التوضيحية من خلال مهمة Kapt بشكل متزايد بعد.

      • بالنسبة إلى المشاريع التي لا تستخدم Kapt (المشاريع المستندة إلى Java فقط): إذا كانت جميع معالجات التعليقات التوضيحية التي تستخدمها توفّر معالجة التعليقات التوضيحية المتزايدة، يتم تفعيل المعالجة المتزايدة لـ Java تلقائيًا. لمراقبة استخدام معالج التعليقات التوضيحية بشكل متزايد، راقِب مشكلة Gradle 5277.

        ومع ذلك، إذا كان هناك معالج واحد أو أكثر للتعليقات التوضيحية لا يتيح عمليات الإنشاء المتزايدة، لن يتم تفعيل عملية الترجمة المبرمَجة المتزايدة لـ Java. بدلاً من ذلك، يمكنك تضمين العلامة التالية في ملف gradle.properties:

        android.enableSeparateAnnotationProcessing=true
                    

        عند تضمين هذا الإعداد، ينفِّذ المكوِّن الإضافي لـ Android Gradle معالجات التعليقات التوضيحية في مهمة منفصلة ويسمح بتنفيذ مهمة ترجمة 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 Studio.

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

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

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

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

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

      ملاحظة: يتوافق هذا التحسين تمامًا مع المشاريع التي تشمل لغتَي Java وC++، ويتوافق جزئيًا مع Kotlin. عند تفعيل التحسين للمشاريع التي تحتوي على محتوى Kotlin، يعود Gradle sync إلى استخدام الصيغ الكاملة داخليًا.

    • التنزيل التلقائي لحِزم SDK غير المتوفّرة: تم توسيع نطاق هذه الوظيفة لتتوافق مع حزمة NDK. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تنزيل الحِزم المفقودة تلقائيًا باستخدام Gradle.

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

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

      • عملية الإنشاء تستدعي android.support.v8.renderscript.RenderScript بدلاً من إصدار AndroidX، على الرغم من تفعيل Jetifier
      • تعارضات بسبب androidx-rs.jar، بما في ذلك الحِزم المجمّعة بشكل ثابت annotation.AnyRes
      • عند استخدام RenderScript، لم يعُد عليك ضبط إصدار "أدوات الإنشاء" يدويًا في ملفات build.gradle.

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

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

    3.2.1 (تشرين الأول/أكتوبر 2018)

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

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

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

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

    • أداة نقل البيانات إلى 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، تأكَّد من أنّ ملف build.gradle يحتوي على التبعية google()، كما هو موضّح أدناه:

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

    • يفرض المكوّن الإضافي الآن الحد الأدنى لإصدار المكوّن الإضافي protobuf (0.8.6) والكوكاتل (1.2.50) ومكوّن Crashlytics الإضافي (1.25.4).

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

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

    3.1.0 (آذار/مارس 2018)

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

    • Gradle 4.4 أو إصدار أحدث

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

    • أدوات الإنشاء 27.0.3 أو إصدار أحدث

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

    أداة تحويل DEX جديدة، D8

    يستخدم "استوديو Android" الآن بشكل تلقائي مُجمِّع DEX جديدًا يُسمى D8. تجميع ملف DEX هو عملية تحويل رمز برمجي .class إلى رمز برمجي .dex لاستخدامه في "وقت تشغيل Android" (أو Dalvik للإصدارات القديمة من Android). مقارنةً بالمجمِّع السابق المُسمى DX، يُجمِّع D8 العملية بشكل أسرع ويُخرج ملفات DEX أصغر حجمًا، مع الحفاظ على الأداء نفسه أو أفضل في وقت تشغيل التطبيق.

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

          android.enableD8=false
        

    بالنسبة إلى المشاريع التي تستخدم ميزات لغة Java 8، يتم تفعيل ميزة إزالة الترميز بشكل تدريجي تلقائيًا. يمكنك إيقافه من خلال تحديد ما يلي في ملف gradle.properties الخاص بمشروعك:

          android.enableIncrementalDesugaring=false.
        

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

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

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

      إذا كنت تريد إنشاء حِزم APK تستهدف معرّفات ABI هذه، عليك استخدام NDK r16b أو إصدار أقدم و تحديد معرّفات ABI في ملف 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'
              

    الإصلاحات

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

    3.0.0 (تشرين الأول/أكتوبر 2017)

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

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

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

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

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

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

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

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

    هذا تحديث بسيط يتيح استخدام الإصدار 3.0.1 من "استوديو Android"، ويشمل إصلاحات عامة للأخطاء وتحسينات على الأداء.

    التحسينات

    • توفُّر توازٍ أفضل للمشاريع المتعدّدة الوحدات من خلال رسم بياني مفصّل للمهام
    • عند إجراء تغييرات على التبعية، يُجري Gradle عمليات إنشاء أسرع من خلال عدم إعادة تجميع الوحدات التي لا يمكنها الوصول إلى واجهة برمجة التطبيقات الخاصة بهذه التبعية. يجب حظر التبعيات التي تسرِّب واجهات برمجة التطبيقات إلى الوحدات الأخرى من خلال استخدام إعدادات التبعيات الجديدة في Gradle: implementation وapi وcompileOnly وruntimeOnly.
    • سرعة إنشاء متزايدة بشكل أسرع بسبب الفهرسة لكل فئة يتم الآن compiling كل فئة في ملفات DEX منفصلة، ولا تتم إعادة إنشاء فهرس للفئات التي تم تعديلها فقط. من المفترض أيضًا أن تلاحظ سرعات إنشاء محسّنة ل التطبيقات التي تضبط minSdkVersion على 20 أو أقل، وتستخدم حِزم dex المتعددة القديمة.
    • سرعات إنشاء محسّنة من خلال تحسين مهام معيّنة لاستخدام النتائج المخزّنة للاستفادة من هذا التحسين، عليك أولاً تفعيل ذاكرة التخزين المؤقت لإنشاء Gradle.
    • معالجة أفضل للموارد المتزايدة باستخدام AAPT2، وهو الآن فعال تلقائيًا إذا كنت تواجه مشاكل أثناء استخدام AAPT2، يُرجى الإبلاغ عن خطأ. يمكنك أيضًا إيقاف AAPT2 من خلال ضبط android.enableAapt2=false فيملف gradle.properties وإعادة تشغيل برنامج Gradle الخفي من خلال تشغيل ./gradlew --stop من سطر الأوامر.

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

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

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

      رائع

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

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

      رائع

              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 فيملف com/android/tools/test_config.properties classpath للمفاتيح التالية:

      • android_merged_assets: المسار المطلق إلى دليل مواد العرض المدمجة

        ملاحظة: بالنسبة إلى وحدات المكتبة، لا تحتوي مواد العرض المدمجة على مواد عرض الملحقات (راجِع المشكلة رقم 65550419).

      • android_merged_manifest: المسار المطلق إلىملف البيان المدمج

      • android_merged_resources: المسار المطلق إلى دليل الموارد المدمجة، الذي يحتوي على جميع الموارد من الوحدة وجميع العناصر التي تعتمد عليها.

      • android_custom_package: اسم حزمة فئة R النهائية في حال تعديل رقم تعريف التطبيق ديناميكيًا، قد لا يتطابق اسم الحزمة package مع سمة package في ملف بيان تطبيقك.

    • إتاحة استخدام الخطوط كموارد (وهي ميزة جديدة تم تقديمها في Android 8.0 (المستوى 26 لواجهة برمجة التطبيقات))
    • إتاحة ملفات APK المخصّصة للغة مع حزمة تطوير البرامج (SDK) 1.1 لتطبيقات Android الفورية والإصدارات الأحدث
    • يمكنك الآن تغيير دليل الإخراج لمشروع الإصدار المتوافق مع الأجهزة المتوفّرة خارج المتجر الخارجي، كما هو موضّح أدناه:

      رائع

              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"
                      }
                  }
              }
              
    • يمكنك الآن استخدام CMake 3.7 أو إصدار أحدث عند إنشاء مشاريع أصلية من Android Studio.
    • تتيح لك إعدادات التبعيات الجديدة في lintChecks إنشاء حزمة JAR تحدّد قواعد lint مخصّصة، وتُحزِّمها في مشاريع AAR وAPK.

      يجب أن تنتمي قواعد lint المخصّصة إلى مشروع منفصل يُنشئملف JAR واحدًا ويتضمّن فقط تبعيات compileOnly. يمكن بعد ذلك أن تعتمد وحدات التطبيقات والمكتبات الأخرى على مشروع lint باستخدام إعدادات lintChecks:

      رائع

              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"))
              }
              

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

    • يزيل المكوّن الإضافي لنظام Android 3.0.0 واجهات برمجة تطبيقات معيّنة، وسيتم إيقاف عملية التصميم إذا كنت تستخدمها. على سبيل المثال، لم يعُد بإمكانك استخدام Variants API لمحاولة الوصول إلى عناصر outputFile() أو استخدام processManifest.manifestOutputFile() للحصول على ملف البيان لكلّ صيغة. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في واجهة برمجة التطبيقات.
    • لم تعُد بحاجة إلى تحديد إصدار لأدوات الإنشاء (وبذلك، يمكنك الآن إزالة سمة android.buildToolsVersion). بشكلٍ تلقائي، يستخدم المكوّن الإضافي الحد الأدنى من إصدار أدوات الإنشاء المطلوب لإصدار المكوّن الإضافي لنظام التشغيل Android الذي تستخدمه.
    • يمكنك الآن تفعيل ميزة "ضغط ملفات PNG" أو إيقافها في القسم buildTypes كما هو موضّح أدناه. يتم تفعيل ميزة تقليل حجم ملفات PNG تلقائيًا لجميع عمليات الإنشاء باستثناء عمليات إنشاء تصحيح الأخطاء لأنّها تزيد من أوقات إنشاء المشاريع التي تتضمّن العديد من ملفات PNG. لذلك، لتحسين أوقات إنشاء أنواع الإصدارات الأخرى، عليك إيقاف ميزة تقليل حجم ملفات PNG أو تحويل صورك إلى WebP.

      رائع

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

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

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

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

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

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

    هذا تحديث بسيط يتيح استخدام الإصدار 3.0.1 من "استوديو Android"، ويشمل إصلاحات عامة للأخطاء وتحسينات على الأداء.

    التحسينات

    • توفُّر توازٍ أفضل للمشاريع المتعدّدة الوحدات من خلال رسم بياني مفصّل للمهام
    • عند إجراء تغييرات على التبعية، يُجري Gradle عمليات إنشاء أسرع من خلال عدم إعادة تجميع الوحدات التي لا يمكنها الوصول إلى واجهة برمجة التطبيقات الخاصة بهذه التبعية. يجب حظر التبعيات التي تسرِّب واجهات برمجة التطبيقات إلى الوحدات الأخرى من خلال استخدام إعدادات التبعيات الجديدة في Gradle: implementation وapi وcompileOnly وruntimeOnly.
    • سرعة إنشاء متزايدة بشكل أسرع بسبب الفهرسة لكل فئة يتم الآن compiling كل فئة في ملفات DEX منفصلة، ولا تتم إعادة إنشاء ملف DEX إلا للفئات التي تم تعديلها. من المفترض أيضًا أن تلاحظ سرعات إنشاء محسّنة ل التطبيقات التي تضبط minSdkVersion على 20 أو أقل، وتستخدم حِزم dex متعددة لإصدارات Android القديمة.
    • سرعات إنشاء محسّنة من خلال تحسين مهام معيّنة لاستخدام النتائج المخزّنة للاستفادة من هذا التحسين، عليك أولاً تفعيل ذاكرة التخزين المؤقت لإنشاء Gradle.
    • معالجة أفضل للموارد المتزايدة باستخدام AAPT2، وهو الآن فعال تلقائيًا إذا كنت تواجه مشاكل أثناء استخدام AAPT2، يُرجى الإبلاغ عن خطأ. يمكنك أيضًا إيقاف AAPT2 من خلال ضبط android.enableAapt2=false فيملف gradle.properties وإعادة تشغيل برنامج Gradle الخفي من خلال تشغيل ./gradlew --stop من سطر الأوامر.

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

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

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

      رائع

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

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

      رائع

              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 فيملف com/android/tools/test_config.properties classpath للمفاتيح التالية:

      • android_merged_assets: المسار المطلق إلى دليل مواد العرض المدمجة

        ملاحظة: بالنسبة إلى وحدات المكتبة، لا تحتوي مواد العرض المدمجة على مواد عرض الملحقات (راجِع المشكلة رقم 65550419).

      • android_merged_manifest: المسار المطلق إلىملف البيان المدمج

      • android_merged_resources: المسار المطلق إلى دليل الموارد المدمجة، الذي يحتوي على جميع الموارد من الوحدة وجميع العناصر التي تعتمد عليها.

      • android_custom_package: اسم حزمة فئة R النهائية في حال تعديل رقم تعريف التطبيق ديناميكيًا، قد لا يتطابق اسم الحزمة package مع سمة package في ملف بيان تطبيقك.

    • إتاحة استخدام الخطوط كموارد (وهي ميزة جديدة تم تقديمها في Android 8.0 (المستوى 26 لواجهة برمجة التطبيقات))
    • إتاحة ملفات APK المخصّصة للغة مع حزمة تطوير البرامج (SDK) 1.1 لتطبيقات Android الفورية والإصدارات الأحدث
    • يمكنك الآن تغيير دليل الإخراج لمشروع الإصدار المتوافق مع الأجهزة التلقائية الخارجي، كما هو موضّح أدناه:

      رائع

              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"
                      }
                  }
              }
              
    • يمكنك الآن استخدام CMake 3.7 أو إصدار أحدث عند إنشاء مشاريع أصلية من Android Studio.
    • تتيح لك إعدادات التبعيات الجديدة في lintChecks إنشاء حزمة JAR تحدّد قواعد lint مخصّصة، وتُحزِّمها في مشاريع AAR وAPK.

      يجب أن تنتمي قواعد lint المخصّصة إلى مشروع منفصل يُنشئملف JAR واحدًا ويتضمّن فقط تبعيات compileOnly. يمكن بعد ذلك أن تعتمد وحدات التطبيقات والمكتبات الأخرى على مشروع lint باستخدام إعدادات lintChecks:

      رائع

              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"))
              }
              

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

    • يزيل المكوّن الإضافي لنظام Android 3.0.0 واجهات برمجة تطبيقات معيّنة، وسيتم إيقاف عملية التصميم إذا كنت تستخدمها. على سبيل المثال، لم يعُد بإمكانك استخدام Variants API لمحاولة الوصول إلى عناصر outputFile() أو استخدام processManifest.manifestOutputFile() للحصول على ملف البيان لكلّ صيغة. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في واجهة برمجة التطبيقات.
    • لم تعُد بحاجة إلى تحديد إصدار لأدوات الإنشاء (وبالتالي، يمكنك الآن إزالة سمة android.buildToolsVersion). بشكلٍ تلقائي، يستخدم المكوّن الإضافي الحد الأدنى من إصدار أدوات الإنشاء المطلوب لإصدار المكوّن الإضافي لنظام التشغيل Android الذي تستخدمه.
    • يمكنك الآن تفعيل ميزة "ضغط ملفات PNG" أو إيقافها في القسم buildTypes كما هو موضّح أدناه. يتم تفعيل ميزة تقليل حجم ملفات PNG تلقائيًا لجميع عمليات الإنشاء باستثناء عمليات إنشاء تصحيح الأخطاء لأنّها تزيد من أوقات إنشاء المشاريع التي تتضمّن العديد من ملفات PNG. لذلك، لتحسين أوقات إنشاء أنواع الإصدارات الأخرى، عليك إيقاف ميزة تقليل حجم ملفات PNG أو تحويل صورك إلى WebP.

      رائع

            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 من "استوديو Android".

    2.3.2 (أيار/مايو 2017)

    هذا تحديث بسيط يضيف التوافق مع الإصدار 2.3.2 من "استوديو Android".

    2.3.1 (نيسان/أبريل 2017)

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

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

    2.2.0 (أيلول/سبتمبر 2016)

    التبعيات:
    جديد:
    • يستخدم Gradle 2.14.1 الذي يتضمّن تحسينات في الأداء وميزات جديدة، ويصلح ثغرة أمنية تسمح بتصعيد الأذونات المحلية عند استخدام برنامج Gradle الخفي. لمزيد من التفاصيل، يُرجى الاطّلاع على ملاحظات إصدار Gradle.
    • باستخدام لغة برمجة externalNativeBuild {}، يتيح لك Gradle الآن الربط بمصادرك الأصلية وتجميع المكتبات الأصلية باستخدام CMake أو ndk-build. بعد إنشاء المكتبات المجمّعة من رموز برمجية أصلية، يُجمّعها Gradle في حزمة APK. للاطّلاع على مزيد من المعلومات عن استخدام CMake و ndk-build مع Gradle، يُرجى قراءة مقالة إضافة رمز C وC++ إلى مشروعك.
    • عند تشغيل عملية إنشاء من سطر الأوامر، يحاول Gradle الآن تنزيل أيّ مكوّنات أو تحديثات غير متوفّرة من حزمة SDK يعتمد عليها مشروعك تلقائيًا. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة التنزيل التلقائي للحِزم غير المتوفّرة باستخدام Gradle.
    • تتيح ميزة التخزين المؤقت التجريبية الجديدة لـ Gradle تسريع مدّة الإنشاء من خلال تحويل ملف APK إلى ملف DEX مسبقًا وتخزينه وإعادة استخدامه في مكتباتك. لمزيد من المعلومات عن استخدام هذه الميزة التجريبية، يمكنك الاطّلاع على دليل إنشاء ذاكرة التخزين المؤقت.
    • تحسين أداء عملية الإنشاء من خلال استخدام مسار جديد تلقائي لتعبئة التطبيقات يمكنه التعامل مع ضغط الملفات وتوقيعها ومواءمتها في مهمة واحدة يمكنك الرجوع إلى استخدام أدوات الحزمة القديمة من خلال إضافة android.useOldPackaging=true إلى ملف gradle.properties. أثناء استخدام أداة الحزمة الجديدة ، لا تتوفّر مهمة zipalignDebug. ومع ذلك، يمكنك إنشاء نموذج بنفسك من خلال استدعاء الأسلوب createZipAlignTask(String taskName, File inputFile, File outputFile).
    • يستخدم توقيع حِزم APK الآن الإصدار 2 من مخطّط توقيع حِزم APK بالإضافة إلى توقيع JAR التقليدي. تقبل جميع أنظمة Android حِزم APK الناتجة. ويؤدي أي تعديل على حِزم APK هذه بعد التوقيع إلى إبطال توقيعات الإصدار 2 ومنع تثبيتها على الجهاز. لإيقاف هذه الميزة، أضِف ما يلي إلى ملف build.gradle على مستوى الوحدة:

      رائع

      android {
        ...
        signingConfigs {
          config {
            ...
            v2SigningEnabled false
          }
        }
      }
            

      Kotlin

      android {
        ...
        signingConfigs {
          create("config") {
            ...
            v2SigningEnabled = false
          }
        }
      }
            
    • بالنسبة إلى عمليات إنشاء حِزم متعددة بتنسيق DEX، يمكنك الآن استخدام قواعد ProGuard لتحديد الفئات التي يجب أن يجمعها Gradle في ملف DEX الرئيسي لتطبيقك. بما أنّه يحمِّل نظام Android ملف DEX الرئيسي أولاً عند بدء تشغيل تطبيقك، يمكنك منح الأولوية لفئات معيّنة عند بدء التشغيل من خلال تجميعها في ملف DEX الرئيسي. بعد إنشاء ملف إعدادات ProGuard خصيصًا لملف ملف ‎DEXE الرئيسي، يمكنك تمرير مسار ملف الإعدادات إلى Gradle باستخدام buildTypes.multiDexKeepProguard. يختلف استخدام لغة الترميز هذه عن استخدام 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 {} فيملف build.gradle على مستوى الوحدة:

        رائع

        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"))
              }
            }
          }
        }
            

        إذا كنت تريد تطبيق معالج تعليقات توضيحية أثناء compiling ولكن لا تريد تضمينه في حزمة APK، استخدِم annotationProcessor نطاق الاعتماد:

        رائع

        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
        
      • بشكلٍ تلقائي، إذا كان حجم ذاكرة heap لخادم Gradle غير القابل للتشغيل في الخلفية هو 1.5 غيغابايت على الأقل، سيتم تشغيل Jack الآن في العملية نفسها التي يتم فيها تشغيل Gradle. لضبط حجم ملف heap الخاص بالديمون، أضِف ما يلي إلى ملف 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 أو إصدار أحدث. يتضمّن Gradle 2.14.1 تحسينات على الأداء وميزات جديدة وإصلاحًا مهمًا للأمان. لمزيد من التفاصيل، يُرجى الاطّلاع على ملاحظات إصدار Gradle.

    التبعيات:
    جديد:
    • تمت إضافة إمكانية استخدام "إصدار N Developer Preview" وJDK 8 وميزات لغة Java 8 باستخدام سلسلة أدوات ‏Jack. لمزيد من المعلومات، يُرجى الاطّلاع على دليل معاينة الإصدار N.

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

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

      رائع

      android {
        ...
        compileOptions {
          incremental false
        }
      }
      

      Kotlin

      android {
        ...
        compileOptions {
          incremental = false
        }
      }
      
    • تمت إضافة ميزة فك ترميز أثناء التشغيل التي تُجري عملية فك الترميز ضمن عملية الإنشاء بدلاً من عمليات الأجهزة الافتراضية الخارجية المنفصلة. لا يؤدي ذلك إلى تسريع عملية إنشاء الإصدارات المتزايدة فحسب، بل يؤدي أيضًا إلى تسريع عملية إنشاء الإصدارات الكاملة. يتم تفعيل الميزة تلقائيًا للمشاريع التي ضبطت الحد الأقصى لحجم heap في برنامج 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 ```

      لإيقاف ميزة "الترميز أثناء التشغيل"، أضِف الرمز البرمجي التالي إلى ملف build.gradle على مستوى الوحدة:

      رائع

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
            dexInProcess = false
        }
      }
      

    2.0.0 (نيسان/أبريل 2016)

    التبعيات:
    جديد:
    • تفعيل ميزة التشغيل الفوري من خلال السماح بحقن رمز الآلة ودفع تعديلات الرموز البرمجية والموارد إلى تطبيق قيد التشغيل على المحاكي أو على جهاز فعلي
    • تمّت إضافة إمكانية استخدام الإصدارات المتزايدة، حتى في حال عدم تشغيل التطبيق. تم تحسين أوقات الإنشاء الكاملة من خلال دفع التغييرات المتزايدة من خلال Android Debug Bridge إلى الجهاز المتصل.
    • تمت إضافة maxProcessCount للتحكّم في عدد عمليات dex العاملة التي يمكن إنشاؤها بشكل متزامن. يحدِّد الرمز البرمجي التالي، في ملف build.gradle على مستوى الوحدة، الحد الأقصى لعدد العمليات المتزامنة إلى 4:

      رائع

      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:
      

      رائع

      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 في كل من إعدادات الإصدار التجريبي والإصدار الرئيسي.

    المكوّن الإضافي المتوافق مع Android لنظام Gradle، المراجعة 1.5.0 (تشرين الثاني (نوفمبر) 2015)

    التبعيات:
    • ‫Gradle 2.2.1 أو إصدار أحدث
    • الإصدار 21.1.1 من "أدوات الإنشاء" أو إصدار أحدث
    ملاحظات عامة:
    • تم دمج المكوّن الإضافي لربط البيانات في المكوّن الإضافي لنظام Android المتوافق مع Gradle. لتفعيل هذه الميزة، أضِف الرمز التالي إلى كل ملف 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. يتطابق ترتيب تنفيذ المكوّنات الإضافية التابعة لجهات خارجية مع الترتيب الذي تتم فيه إضافة عمليات التحويل من خلال المكوّنات الإضافية التابعة لجهات خارجية، ولا يمكن لمطوّري المكوّنات الإضافية التابعة لجهات خارجية التحكّم في ترتيب تنفيذ عمليات التحويل من خلال واجهة برمجة التطبيقات.
    • تم إيقاف دالة الحصول على dex نهائيًا من فئة ApplicationVariant. لا يمكنك الوصول إلى مهمة Dex من خلال واجهة برمجة التطبيقات لأنواع الأسعار بعد الآن لأنّه يتم الآن إكمالها من خلال عملية تحويل. ليس هناك حاليًا بديل للتحكّم في عملية dex.
    • تمّت معالجة مشكلة عدم توفّر مواد عرض إضافية.
    • تحسين دعم MultiDex من خلال إتاحة استخدامه في المشاريع الاختبارية، وأصبح الآن لدى الاختبار تلقائيًا التبعية com.android.support:multidex-instrumentation.
    • تمت إضافة إمكانية إيقاف عملية إنشاء Gradle بشكل صحيح والإبلاغ عن سبب الخطأ الأساسي عندما يستدعي إنشاء Gradle مهامًا غير متزامنة ويحدث تعذّر في عملية العامل.
    • تمّت إضافة إمكانية ضبط واجهة تطبيق ثنائية (ABI) معيّنة في الصيغ التي تحتوي على واجهات ABI متعددة.
    • تمت إضافة إمكانية استخدام قائمة مفصولة بفواصل لأرقام الأجهزة التسلسلية لمتغيّر البيئة ANDROID_SERIAL عند تثبيت الاختبارات أو تشغيلها.
    • تم إصلاح مشكلة تعذُّر التثبيت على الأجهزة التي تعمل بالإصدار 5.0 من نظام التشغيل Android (المستوى 20 من واجهة برمجة التطبيقات) والإصدارات الأحدث عندما يحتوي اسم حزمة APK على مسافة.
    • تم إصلاح مشاكل مختلفة متعلقة بإخراج أخطاء أداة تجميع الموارد في Android (AAPT).
    • تمت إضافة دعم لأدوات القياس التزايدي في JaCoCo من أجل عمليات الإنشاء المتزايدة بشكل أسرع. يُستخدَم الآن المكوّن الإضافي لنظام Gradle المتوافق مع Android لتشغيل أداة فحص JaCoCo مباشرةً. لفرض استخدام إصدار أحدث من أداة فحص JaCoCo، عليك إضافته كعنصر تابع لنص إنشاء البرنامج.
    • تم إصلاح مشكلة توفُّر JaCoCo بحيث يتجاهل الملفات التي ليست فئات.
    • تمت إضافة إمكانية استخدام الرسومات المتجهّة لإنشاء ملفات بتنسيق PNG في وقت التصميم من أجل التوافق مع الإصدارات القديمة. ينشئ المكوّن الإضافي لنظام Android المتوافق مع Gradle ملفات بتنسيق PNG لكل عنصر قابل للرسم بتنسيق ملفات رسومات متجهة تم العثور عليه في دليل موارد لا يحدّد إصدار واجهة برمجة التطبيقات أو يحدّد سمة android:minSdkVersion بقيمة 20 أو أقل في عنصر <uses-sdk> في بيان التطبيق. يمكنك ضبط كثافة ملفات PNG من خلال استخدام السمة generatedDensities في قسمَي defaultConfig أو productFlavor من ملف build.gradle.
    • تمت إضافة ميزة مشاركة android.jar القابلة للمحاكاة، والتي ينشئها المكوّن الإضافي مرة واحدة فقط ويستخدمها لاختبار الوحدات. تتشارك الآن وحدات متعدّدة هذه البيانات، مثل app و lib. احذف $rootDir/build لإعادة إنشائه.
    • تم تغيير معالجة موارد Java لتتم قبل مهام التشويش بدلاً من أثناء تجميع حزمة APK. يسمح هذا التغيير لمهام التشويش بتعديل موارد Java بعد تشويش الحِزم.
    • تم إصلاح مشكلة في استخدام رمز Java Native Interface (JNI) في المكوّن الإضافي لـ المكتبة التجريبية.
    • تمت إضافة إمكانية ضبط إصدار النظام الأساسي بشكل منفصل عن سمة android:compileSdkVersion في المكوّن الإضافي للمكتبة التجريبية.

    المكوّن الإضافي لنظام Gradle المتوافق مع Android، المراجعة 1.3.1 (آب/أغسطس 2015)

    التبعيات:
    • ‫Gradle 2.2.1 أو إصدار أحدث
    • الإصدار 21.1.1 من "أدوات الإنشاء" أو إصدار أحدث
    ملاحظات عامة:
    • تم إصلاح مهمة ZipAlign لكي تستخدم بشكلٍ سليم نتيجة المهمة السابقة عند استخدام اسم ملف مخصّص.
    • تم إصلاح مشكلة تتعلق بتعبئة Renderscript باستخدام NDK.
    • تم الاحتفاظ بإمكانية استخدام مهمة إنشاء createDebugCoverageReport.
    • تم إصلاح مشكلة عدم توفّر الدعم لاستخدام السمة archiveBaseName المخصّصة في ملف الإنشاء build.gradle.
    • تم إصلاح تحذير Invalid ResourceType lint الناتج عن طريقة المَعلمة lookup للتعليق التوضيحي عند تشغيل lint خارج "استوديو Android".

    المكوّن الإضافي لنظام Gradle المتوافق مع Android، المراجعة 1.3.0 (تموز/يوليو 2015)

    التبعيات:
    • ‫Gradle 2.2.1 أو إصدار أحدث
    • الإصدار 21.1.1 من "أدوات الإنشاء" أو إصدار أحدث
    ملاحظات عامة:
    • تمت إضافة دعم للسمة com.android.build.threadPoolSize للتحكّم في حجم مجموعة مؤشرات الترابط المخصّصة لمهام Android من الملف gradle.properties أو سطر الأوامر. يضبط المثال التالي هذه السمة على 4.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • اضبط السلوك التلقائي للإنشاء لاستبعاد ملفات LICENSE وLICENSE.txt من حِزم APK. لتضمين هذه الملفات في حزمة APK، عليك إزالة هذه الملفات من ملف build.gradle في ملف packagingOptions.excludes. مثلاً:
      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 (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} و قدِّم قيمة له إذا أردت تضمين أرقام تعريف التطبيقات في مكتبة الأرشيف.

    المكوّن الإضافي لنظام Android المتوافق مع Gradle، المراجعة 1.2.0 (نيسان (أبريل) 2015)

    التبعيات:
    • ‫Gradle 2.2.1 أو إصدار أحدث
    • الإصدار 21.1.1 من "أدوات الإنشاء" أو إصدار أحدث
    ملاحظات عامة:
    • تحسين التوافق مع اختبارات الوحدة باستخدام Gradle
      • تم توفير إمكانية تضمين المراجع بأسلوب Java في مسار الطباعة عند تشغيل اختبارات الوحدة مباشرةً من Gradle.
      • تمت إضافة إمكانية استخدام اختبار الوحدة مع عناصر أرشيف Android (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 نقطة لكل بوصة.
    • تحسين الأداء أثناء تقييم المشروع

    المكوّن الإضافي لنظام Android المتوافق مع Gradle، المراجعة 1.1.3 (آذار (مارس) 2015)

    التبعيات:
    • ‫Gradle 2.2.1 أو إصدار أحدث
    • الإصدار 21.1.1 من "أدوات الإنشاء" أو إصدار أحدث
    ملاحظات عامة:
    • تم إصلاح مشكلة تتعلق بالتبعيات المكرّرة في تطبيق اختباري أدّت إلى تعذُّر استخدام ProGuard.
    • تم إصلاح تنفيذ Comparator الذي لم يكن متوافقًا مع اتّفاقية Comparator في JDK و أدّى إلى حدوث خطأ في JDK 7.

    المكوّن الإضافي المتوافق مع Android لنظام Gradle، المراجعة 1.1.2 (شباط/فبراير 2015)

    التبعيات:
    • ‫Gradle 2.2.1 أو إصدار أحدث
    • الإصدار 21.1.1 من "أدوات الإنشاء" أو إصدار أحدث
    ملاحظات عامة:
    • المسار المنسَّق عند إنشاء حزمة JAR قابلة للمحاكاة لاختبار الوحدات
    • تم إصلاح إعداد archivesBaseName فيملف build.gradle.
    • تم إصلاح مشكلة تعذُّر حلّ مشكلة العنصر النائب في دمج البيان عند إنشاء تطبيق اختبار مكتبة.

    المكوّن الإضافي المتوافق مع Android لنظام Gradle، المراجعة 1.1.1 (شباط/فبراير 2015)

    التبعيات:
    • ‫Gradle 2.2.1 أو إصدار أحدث
    • الإصدار 21.1.1 من "أدوات الإنشاء" أو إصدار أحدث
    ملاحظات عامة:
    • تم تعديل صِيغ الإصدارات لكي لا تُنفِّذ سوى الصِيغ التي تحزِّم عامل تشغيل تطبيق Wear مهام الإنشاء الخاصة بنظام التشغيل Wear.
    • تم تغيير المشاكل المتعلقة بالتبعية لتؤدي إلى تعذُّر الإنشاء في وقت الإنشاء بدلاً من وقت تصحيح الأخطاء. يتيح لك هذا السلوك تنفيذ مهام تشخيص (مثل "التبعيات") للمساعدة في حلّ التعارض.
    • تم إصلاح الطريقة android.getBootClasspath() لمحاولة عرض قيمة.

    المكوّن الإضافي المتوافق مع Android لنظام Gradle، المراجعة 1.1.0 (شباط/فبراير 2015)

    التبعيات:
    • ‫Gradle 2.2.1 أو إصدار أحدث
    • الإصدار 21.1.1 من "أدوات الإنشاء" أو إصدار أحدث
    ملاحظات عامة:
    • إتاحة اختبار الوحدة الجديد
      • تم تفعيل اختبارات الوحدة لتشغيلها على آلة Java الافتراضية المحلية مع إصدار خاص من ملف 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 ‏).

      • تمت إضافة خيار android.testOptions.unitTests.returnDefaultValues للتحكّم في سلوك android.jar القابل للمحاكاة.
    • تم استبدال Test في أسماء مهام الاختبار بحرف AndroidTest. على سبيل المثال، أصبحت مهمة assembleDebugTest مهمة assembleDebugAndroidTest. لا تزال مهام اختبار الوحدات تحتوي على UnitTest في اسم المهمة، على سبيل المثال assembleDebugUnitTest.
    • تعديل ملفات إعدادات ProGuard كي لا تعود سارية على حزمة APK الاختبارية في حال تفعيل التصغير، يعالج ProGuard حزمة APK الاختبارية ويطبّق فقط ملف الربط الذي يتم إنشاؤه عند تصغير حزمة APK الرئيسية.
    • إدارة التبعية المعدَّلة
      • تم إصلاح المشاكل المتعلقة باستخدام نطاقَي provided و package.

        ملاحظة: هذه النطاقات غير متوافقة مع حِزم AAR (أرشيف Android) وستؤدي إلى تعذُّر إنشاء حِزم تتضمّن حِزم AAR.

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

    المكوّن الإضافي المتوافق مع Android لنظام Gradle، المراجعة 1.0.1 (كانون الثاني/يناير 2015)

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

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

    • الإصدار 21.1.1 من "أدوات الإنشاء" أو إصدار أحدث
    ملاحظات عامة:
    • تم إصلاح مشكلة تعذُّر إنشاء Gradle عند الوصول إلى وحدة extractReleaseAnnotations. (المشكلة 81638).
    • تم إصلاح مشكلة Disable في تمرير الإعداد --no-optimize إلى رمز دالوايك التنفيذي (dex) الثنائي. (المشكلة 82662).
    • تم حلّ مشاكل دمج البيان عند استيراد مكتبات تتضمن targetSdkVersion أقل من 16.
    • تم إصلاح مشكلة ترتيب الكثافة عند استخدام "استوديو Android" معJDK 8.

    المكوّن الإضافي المتوافق مع Android لنظام Gradle، المراجعة 1.0.0 (كانون الأول/ديسمبر 2014)

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

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

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