Android Gradle Plugin 2.2.0 (ספטמבר 2016)
- תלויות:
- המינוי החדש:
- 
    - משתמש ב-Gradle 2.14.1, שכולל שיפורים בביצועים ותכונות חדשות, ומתקן פגיעות באבטחה שמאפשרת הרחבת הרשאות מקומיות כשמשתמשים ב-Gradle daemon. פרטים נוספים זמינים ב הערות המוצר של Gradle.
- באמצעות 
      externalNativeBuild {}DSL,  Gradle מאפשר עכשיו לקשר למקורות המקוריים ולבצע קומפילציה של ספריות מקוריות באמצעות CMake או ndk-build. אחרי שיוצרים את ספריות ה-Native, מערכת Gradle אורזת אותן ב-APK. מידע נוסף על שימוש ב-CMake וב-ndk-build עם Gradle זמין במאמר הוספת קוד C ו-C++ לפרויקט.
- כשמריצים build משורת הפקודה, Gradle מנסה עכשיו להוריד באופן אוטומטי רכיבי SDK חסרים או עדכונים שהפרויקט תלוי בהם. מידע נוסף זמין במאמר בנושא הורדה אוטומטית של חבילות חסרות באמצעות Gradle.
- תכונה חדשה של שמירת נתונים במטמון מאפשרת ל-Gradle להאיץ את זמני הבנייה באמצעות dexing מראש, אחסון ושימוש חוזר בגרסאות של הספריות שעברו dexing מראש. במדריך Build Cache מפורט מידע נוסף על השימוש בתכונה הניסיונית הזו.
- שיפור הביצועים של הבנייה באמצעות אימוץ צינור אריזה חדש שמוגדר כברירת מחדל, שמטפל בדחיסה, בחתימה וביישור זיפ במשימה אחת. אפשר לחזור לשימוש בכלי האריזה הישנים יותר על ידי הוספת android.useOldPackaging=trueלקובץgradle.properties. כשמשתמשים בכלי האריזה החדש, המשימהzipalignDebugלא זמינה. אבל אתם יכולים ליצור אחד בעצמכם על ידי הפעלת השיטהcreateZipAlignTask(String taskName, File inputFile, File outputFile).
- החתימה על APK מתבצעת עכשיו באמצעות APK Signature Scheme
      v2 בנוסף לחתימה המסורתית על JAR. כל הפלטפורמות של Android מקבלות את קובצי ה-APK שנוצרים. כל שינוי בקובצי ה-APK האלה אחרי החתימה מבטל את תוקף החתימות מסוג v2 ומונע את ההתקנה במכשיר. כדי להשבית את התכונה הזו, מוסיפים את השורות הבאות לקובץ build.gradleברמת המודול:Groovyandroid { ... signingConfigs { config { ... v2SigningEnabled false } } } Kotlinandroid { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } } 
- ב-build של multidex, אפשר עכשיו להשתמש בכללי ProGuard כדי לקבוע אילו מחלקות Gradle צריך לקמפל לקובץ ה-DEX הראשי של האפליקציה. מערכת Android טוענת קודם את קובץ ה-DEX הראשי כשמפעילים את האפליקציה, ולכן אפשר לתת עדיפות למחלקות מסוימות בהפעלה על ידי קומפילציה שלהן לקובץ ה-DEX הראשי. אחרי שיוצרים קובץ הגדרות של ProGuard במיוחד בשביל קובץ ה-DEX הראשי, מעבירים את הנתיב של קובץ ההגדרות ל-Gradle באמצעות buildTypes.multiDexKeepProguard. השימוש ב-DSL הזה שונה מהשימוש ב-buildTypes.proguardFiles, שכולל כללי ProGuard כלליים לאפליקציה ולא מציין מחלקות לקובץ ה-DEX הראשי.
- נוסף תמיכה בדגל android:extractNativeLibs, שיכול לצמצם את גודל האפליקציה כשמתקינים אותה במכשיר. כשמגדירים את הדגל הזה לערךfalseבאלמנט<application>במניפסט האפליקציה, Gradle אורז גרסאות לא דחוסות ומיושרות של ספריות ה-Native עם ה-APK. כךPackageManagerלא מעתיק את הספריות המקוריות מקובץ ה-APK למערכת הקבצים של המכשיר במהלך ההתקנה, וגם גודל העדכונים של האפליקציה קטן יותר.
- עכשיו אפשר לציין 
      versionNameSuffixו-applicationIdSuffixלטעמים של מוצרים. (בעיה מספר 59614)
 
- השינויים:
- 
  - 
    getDefaultProguardFileמחזירה עכשיו את קובצי ברירת המחדל של ProGuard שפלאגין Android ל-Gradle מספק, ולא משתמשת יותר בקבצים ב-Android SDK.
- שיפורים בביצועים ובתכונות של מהדר Jack:
    - Jack תומך עכשיו בכיסוי בדיקות של Jacoco כשמגדירים את
    testCoverageEnabledל-true.
- תמיכה משופרת במעבדי הערות. מעבדי הערות (Annotation) בנתיב המחלקות (classpath), כמו תלויות compile, מוחלים אוטומטית על הבנייה. אתם יכולים גם לציין מעבד הערות ב-build ולהעביר ארגומנטים באמצעות ה-DSLjavaCompileOptions.annotationProcessorOptions {}בקובץbuild.gradleברמת המודול:Groovyandroid { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } } Kotlinandroid { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } } אם רוצים להחיל מעבד הערות בזמן ההידור, אבל לא לכלול אותו בחבילת ה-APK, צריך להשתמש ב annotationProcessorהיקף התלות:Groovydependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant } Kotlindependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant } 
- כברירת מחדל, אם גודל ה-heap של Gradle daemon הוא לפחות 1.5GB,  Jack פועל עכשיו באותו תהליך כמו Gradle. כדי לשנות את גודל הערימה של הדמון, מוסיפים את השורה הבאה לקובץ gradle.properties:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M 
 כדי לראות רשימה של הפרמטרים שאפשר להגדיר, מריצים את הפקודה הבאה משורת הפקודה: java -jar /build-tools/jack.jar --help-properties 
- Jack תומך עכשיו בכיסוי בדיקות של Jacoco כשמגדירים את
    
 
- 
    
| גרסת המינימום | גרסת ברירת המחדל | פתקים | |
|---|---|---|---|
| Gradle | 2.14.1 | 2.14.1 | יש מידע נוסף במאמר בנושא עדכון Gradle. | 
| SDK Build Tools | 23.0.2 | 23.0.2 | התקנה או הגדרה של SDK Build Tools. | 
