الإصدار 2.2.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (أيلول (سبتمبر) 2016)
- التبعيات:
- جديد:
-
- تستخدم الإصدار 2.14.1 من Gradle، والذي يتضمن تحسينات في الأداء بالإضافة إلى ميزات جديدة وإصلاح الثغرة الأمنية التي تتيح تصعيد الامتيازات المحلية عند استخدام البرنامج الخفي Gradle. لمزيد من المعلومات، التفاصيل، راجع ملاحظات إصدار Gradle:
- استخدام
externalNativeBuild {}
DSL، تتيح لك Gradle الآن والربط بالمصادر الأصلية وتجميع المكتبات الأصلية باستخدام CMake أو ndk-build. بعد إنشاء مكتباتك الأصلية، ستنشئ وحزمها في ملف APK. ولمعرفة المزيد حول استخدام CMake ndk-build باستخدام Gradle، اقرأ إضافة رمز C وC++ إلى المشروع: - عند تشغيل من سطر الأوامر، تحاول Gradle الآن إجراء تنزيل تلقائي وأي مكونات مفقودة أو تحديثات لحزمة SDK يعتمد عليها مشروعك لمزيد من المعلومات، اطّلِع على مقالة التنزيل التلقائي. الحزم المفقودة في Gradle.
- تتيح ميزة التخزين المؤقت التجريبية الجديدة لنظام Gradle تسريع عملية الإنشاء من خلال البحث المسبق عن إصدارات سابقة وتخزينها وإعادة استخدامها مكتباتك. لمعرفة المزيد حول استخدام هذه الميزة التجريبية، اقرأ إنشاء دليل ذاكرة التخزين المؤقت.
- تحسين الأداء من خلال استخدام حزمة تلقائية جديدة
الذي يعالج الضغط والتوقيع ومحاذاة الانزلاق في مهمة واحدة. إِنْتَ
يمكنك العودة إلى استخدام أدوات التغليف القديمة عن طريق إضافة
في
android.useOldPackaging=true
ملفgradle.properties
. أثناء استخدام العبوة الجديدة الأداة، فإن مهمةzipalignDebug
غير متاحة. ومع ذلك، يمكنك إنشاء واحد بنفسك عن طريق استدعاء طريقةcreateZipAlignTask(String taskName, File inputFile, File outputFile)
. - يستخدم توقيع حزمة APK الآن مخطّط توقيع حِزم APK
الإصدار 2 بالإضافة إلى توقيع JAR التقليدي. تقبل جميع أنظمة Android الأساسية
الناتجة عن حِزم APK. يؤدي أي تعديل على حِزم APK هذه بعد توقيعها إلى إلغاء صلاحية
توقيعات الإصدار 2 ويمنع التثبيت على الجهاز. لإيقاف هذه الميزة،
أضِف ما يلي إلى ملف
build.gradle
على مستوى الوحدة:رائع
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- بالنسبة إلى إصدارات Multidex، يمكنك الآن استخدام قواعد ProGuard لتحديد
الفئات التي يجب أن يتم تجميعها في ملف DEX الرئيسي لتطبيقك. لأنّ
يحمّل نظام Android ملف DEX الرئيسي أولاً عند بدء تشغيل التطبيق،
يمكننا إعطاء الأولوية لفئات معينة عند الشركات الناشئة من خلال تجميعها في دالة DEX الرئيسية
الملف. بعد إنشاء ملف إعداد ProGuard خصيصًا
DEX الرئيسية، قم بتمرير مسار ملف التهيئة إلى Gradle باستخدام
buildTypes.multiDexKeepProguard
استخدام DSL هذا يختلف عن من استخدامbuildTypes.proguardFiles
الذي يوفّر ProGuard العام قواعد لتطبيقك ولا تحدِّد فئات ملف DEX الرئيسي. - يدعم العلامة
android:extractNativeLibs
، ما يمكن أن يقلّل من حجم تطبيقك عند تثبيته على الخاص بك. عند ضبط هذه العلامة علىfalse
في<application>
أحد عناصر بيان التطبيق، غير مضغوطة حزم Gradle نُسخ متوافقة من المكتبات الأصلية مع حزمة APK. هذا النمط تمنعPackageManager
بدءًا من نسخ المكتبات المجمّعة من رموز برمجية أصلية من حزمة APK إلى ملف نظام الملفات أثناء التثبيت، وله فائدة إضافية تتمثل في دلتا لتحديث تطبيقك بحجم أصغر. - يمكنك الآن تحديد
versionNameSuffix
وapplicationIdSuffix
لنكهات المنتجات. (المشكلة 59614)
- التغييرات:
-
-
تعرض ميزة "
getDefaultProguardFile
" الآن إعدادات ProGuard التلقائية التي يوفرها مكون Android الإضافي لنظام Gradle ولم تعد الأدوات المتاحة في حزمة تطوير البرامج (SDK) لنظام التشغيل Android. - تحسين أداء المحول البرمجي لـ Jack وميزاته:
- يتيح Jack الآن تغطية اختبار Jacoco عند ضبط إعدادات
testCoverageEnabled
إلىtrue
- تم تحسين التوافق مع معالجات التعليقات التوضيحية. التعليق التوضيحي
المعالجات في مسار الفئة، مثل أي
compile
والتبعيات على التصميم الخاص بك. يمكنك تحديد معالج التعليقات التوضيحية في الإصدار والإصدار باستخدامjavaCompileOptions.annotationProcessorOptions {}
DSL في حسابك ملفbuild.gradle
على مستوى الوحدة:رائع
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
إذا أردت تطبيق معالج تعليقات توضيحية عند التجميع الوقت ولكن لا تُدرجه في ملف APK، يمكنك استخدام نطاق تبعية
annotationProcessor
:رائع
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
- يتيح Jack الآن تغطية اختبار Jacoco عند ضبط إعدادات
- بشكل تلقائي، إذا كان حجم ذاكرة التخزين المؤقت في برنامج Gradle الخفي 1.5 على الأقل
غيغابايت، يعمل جاك الآن بنفس العملية مثل Gradle. لضبط
حجم البرامج الخفيّة، أضِف ما يلي إلى
ملف
gradle.properties
:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
-
تعرض ميزة "
الحد الأدنى للإصدار | الإصدار التلقائي | ملاحظات | |
---|---|---|---|
قاعدة مخروطية | 14.14 | 14.14 | لمعرفة المزيد من المعلومات، يمكنك الاطّلاع على تحديث Gradle. |
أدوات إنشاء حِزم تطوير البرامج (SDK) | 23.0.2 | 23.0.2 | تثبيت أدوات إنشاء حزمة تطوير البرامج (SDK) أو ضبطها |