Android Gradle Plugin 2.2.0 (ספטמבר 2016)
- יחסי תלות:
- המינוי החדש:
-
- משתמשת ב-Gradle 2.14.1, שכוללת שיפורים בביצועים ותכונות חדשות, ותיקון של נקודת חולשה באבטחה שמאפשרת הסלמת הרשאות מקומית כשמשתמשים ב-Gradle daemon. לפרטים נוספים, קראו את הערות המוצר של Gradle.
- באמצעות ה-DSL של
externalNativeBuild {}
, עכשיו אפשר לקשר ב-Gradle למקורות המקומיים ולקמפל ספריות מקומיות באמצעות CMake או ndk-build. אחרי היצירה של הספריות המקומיות, Gradle מקפל אותן בתוך קובץ ה-APK. מידע נוסף על השימוש ב-CMake וב-ndk-build עם Gradle זמין במאמר הוספת קוד C ו-C++ לפרויקט. - כשמריצים build משורת הפקודה, Gradle מנסה עכשיו להוריד באופן אוטומטי עדכונים או רכיבי SDK חסרים שהפרויקט שלכם תלוי בהם. מידע נוסף זמין במאמר הורדה אוטומטית של חבילות חסרות באמצעות Gradle.
- תכונה ניסיונית חדשה של שמירת נתונים במטמון מאפשרת ל-Gradle לקצר את זמני ה-build על ידי ביצוע דקס מראש, אחסון של הגרסאות שעבר דקס מראש של הספריות ושימוש חוזר בהן. למידע נוסף על השימוש בתכונה הניסיונית הזו, תוכלו לקרוא את המדריך יצירת מטמון.
- שיפור ביצועי ה-build באמצעות צינור עיבוד נתונים חדש של ברירת המחדל לחבילות, שמטפל בקריפטוגרפיה, בחתימה ובהתאמת zip במשימה אחת. כדי לחזור לשימוש בכלי האריזה הקודמים, צריך להוסיף את
android.useOldPackaging=true
לקובץgradle.properties
. כשמשתמשים בכלי החדש לחבילות, המשימהzipalignDebug
לא זמינה. עם זאת, אפשר ליצור אחד בעצמכם על ידי קריאה לשיטהcreateZipAlignTask(String taskName, File inputFile, File outputFile)
. - חתימת ה-APK מתבצעת עכשיו באמצעות APK Signature Scheme v2 בנוסף לחתימה הרגילה על קובצי JAR. כל פלטפורמות Android מקבלות את חבילת ה-APK שנוצרת. כל שינוי בקובצי ה-APK האלה אחרי החתימה מבטל את החתימות שלהם בגרסה 2 ומונע את ההתקנה במכשיר. כדי להשבית את התכונה הזו, מוסיפים את הקטע הבא לקובץ
build.gradle
ברמת המודול:Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- לגבי גרסאות build עם ספריות DEX מרובות, עכשיו אפשר להשתמש בכללי ProGuard כדי לקבוע אילו שיעורים Gradle צריך לקמפל לקובץ ה-DEX הראשי של האפליקציה. מכיוון שמערכת Android טוענת קודם את קובץ ה-DEX הראשי כשמפעילים את האפליקציה, אפשר לתת עדיפות לכיתות מסוימות בזמן ההפעלה על ידי הידור שלהן בקובץ ה-DEX הראשי. אחרי שיוצרים קובץ תצורה של ProGuard במיוחד לקובץ ה-DEX הראשי, מעבירים את הנתיב של קובץ התצורה ל-Gradle באמצעות
buildTypes.multiDexKeepProguard
. השימוש ב-DSL הזה שונה מהשימוש ב-buildTypes.proguardFiles
, שמספק כללי ProGuard כלליים לאפליקציה ולא מציין כיתות לקובץ ה-DEX הראשי. - נוספה תמיכה בדגל
android:extractNativeLibs
, שיכול לצמצם את גודל האפליקציה בזמן ההתקנה שלה במכשיר. כשמגדירים את הדגל הזה ל-false
באלמנט<application>
במניפסט של האפליקציה, Gradle מקפל גרסאות לא דחוסות וממוזלות של הספריות המקומיות עם קובץ ה-APK. כךPackageManager
לא מעתיק את הספריות המקומיות מה-APK למערכת הקבצים של המכשיר במהלך ההתקנה, וגם היתרון הנוסף הוא שהעדכונים של האפליקציה קטנים יותר. - עכשיו אפשר לציין את הערכים
versionNameSuffix
ו-applicationIdSuffix
לגרסאות של מוצרים. (בעיה 59614)
- השינויים:
-
-
הפונקציה
getDefaultProguardFile
מחזירה עכשיו את קובצי ברירת המחדל של ProGuard שמספק הפלאגין של Android ל-Gradle, ולא משתמשת יותר בקבצים שב-Android SDK. - שיפורים בביצועים ובתכונות של המהדר של Jack:
- Jack תומך עכשיו ב-Jacoco test coverage כשמגדירים את
testCoverageEnabled
ל-true
. - תמיכה משופרת במעבדי הערות. מעבדי הערות ב-classpath, כמו יחסי תלות של
compile
, מוחלים באופן אוטומטי על ה-build. אפשר גם לציין מעבד הערות ב-build ולהעביר ארגומנטים באמצעות ה-DSL שלjavaCompileOptions.annotationProcessorOptions {}
בקובץbuild.gradle
ברמת המודול:Groovy
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
אם רוצים להחיל מעבד הערות בזמן הידור אבל לא לכלול אותו ב-APK, משתמשים בהיקף התלות
annotationProcessor
:Groovy
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
- כברירת מחדל, אם גודל האשפה של הדימון של Gradle הוא לפחות 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 test coverage כשמגדירים את
-
הפונקציה
גרסת מינימום | גרסת ברירת המחדל | הערות | |
---|---|---|---|
Gradle | 2.14.1 | 2.14.1 | מידע נוסף זמין במאמר עדכון Gradle. |
SDK Build Tools | 23.0.2 | 23.0.2 | מתקינים או מגדירים את SDK Build Tools. |