פלאגין Android Gradle 2.2.0 (ספטמבר 2016)
- יחסי תלות:
- המינוי החדש:
-
- נעשה שימוש ב-Gradle גרסה 2.14.1, שכוללת שיפורי ביצועים ותכונות חדשות, ותיקון פרצת אבטחה שמאפשרת הסלמת הרשאות מקומית (privilege escalation) כשמשתמשים בדימון (daemon) של Gradle. לקבלת מידע נוסף פרטים נוספים, עיינו במאמר נתוני הגרסה של Gradle
- באמצעות
externalNativeBuild {}
DSL, Gradle מאפשר עכשיו לקשר למקורות המקוריים שלכם וליצור ספריות מקוריות באמצעות CMake או ndk-build. אחרי שיצרתם את הספריות המקוריות, Gradle חבילות אותן ל-APK. למידע נוסף על השימוש ב-CMake ndk-build with Gradle, לקרוא את המאמר הוספת קוד C ו-C++ פרויקט. - כאשר מפעילים build משורת הפקודה, Gradle מנסה להוריד אוטומטית רכיבים או עדכונים חסרים ב-SDK שהפרויקט תלוי בהם. מידע נוסף זמין במאמר הורדה אוטומטית חסרות חבילות עם Gradle.
- תכונה ניסיונית חדשה לשמירה במטמון מאפשרת ל-Gradle לזרז את גרסת ה-build על ידי עיבוד מראש, אחסון ושימוש חוזר בגרסאות ששולמו מראש של הספריות. כדי לקבל מידע נוסף על השימוש בתכונה הניסיונית הזו, לקרוא את גרסת ה-Build מדריך לשמירה במטמון.
- שיפור ביצועי ה-build על ידי שימוש במארז חדש שמוגדר כברירת מחדל
צינור עיבוד נתונים שמטפל בדחיסת קבצים, חתימה ויצירת ZIP במשימה אחת. שלך
יכולים לחזור להשתמש בכלי האריזה הישנים על ידי הוספת
android.useOldPackaging=true
אל קובץgradle.properties
. בזמן השימוש באריזה החדשה כלי, המשימהzipalignDebug
לא זמינה. אבל, לפעמים תוכלו ליצור חשבון בעצמכם אמצעי תשלום אחד (createZipAlignTask(String taskName, File inputFile, File outputFile)
). - חתימת ה-APK משתמשת עכשיו בסכמת חתימת APK
גרסה 2 בנוסף לחתימת JAR המסורתית. כל פלטפורמות Android מקבלות את
חבילות ה-APK שהתקבלו. כל שינוי בחבילות ה-APK האלה לאחר החתימה מבטל את התוקף שלהן
חתימות V2 ומונעות התקנה במכשיר. כדי להשבית את התכונה הזו,
מוסיפים את הפרטים הבאים לקובץ
build.gradle
ברמת המודול:מגניב
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- עכשיו אפשר להשתמש בכללי ProGuard עבור גרסאות build מרובות כדי לקבוע אילו
הכיתות ש-Gradle צריך להדר בקובץ ה-DEX הראשי של האפליקציה. כי
מערכת Android טוענת קודם את קובץ ה-DEX הראשי כשמפעילים את האפליקציה,
יכול לתת עדיפות לכיתות מסוימות בסטארט-אפ על ידי הידור שלהן בקובץ ה-DEX הראשי
חדש. לאחר שתיצרו קובץ תצורה של ProGuard במיוחד עבור
מעבירים את הנתיב של קובץ התצורה אל 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 תומך עכשיו בכיסוי הבדיקה של Jacoco בזמן ההגדרה
testCoverageEnabled
עדtrue
. - תמיכה משופרת במעבדי הערות. הערה
מעבדים בנתיב הכיתה, כמו כל
compile
של יחסי התלות מוחלים באופן אוטומטי על ה-build. אפשר לציין גם מעבד הערות ב-build וב ארגומנטים באמצעות הפונקציה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 לפחות
GB, ג'ק פועל עכשיו באותו תהליך כמו Gradle. כדי לכוונן
גודל ערימה של דימון (daemon), צריך להוסיף את הערכים הבאים ל
קובץ
gradle.properties
:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
-
השירות
גרסת המינימום | גרסת ברירת המחדל | הערות | |
---|---|---|---|
גרדל | 2.14.1 | 2.14.1 | מידע נוסף על עדכון Gradle |
כלים לבניית SDK | 23.0.2 | 23.0.2 | התקנה או הגדרה של כלים לבניית SDK. |