פלאגין Android ל-Gradle, גרסה 1.5.0 (נובמבר 2015)

תלויות:
גרסת מינימום גרסת ברירת המחדל הערות
Gradle 2.2.1 2.2.1 יש מידע נוסף במאמר בנושא עדכון Gradle.
SDK Build Tools ‫21.1.1 ‫21.1.1 התקנה או הגדרה של SDK Build Tools.
הערות כלליות:
  • שילבנו את הפלאגין Data Binding בפלאגין 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) לא משתמשת ב-API הזה: רק בנתיב הקוד javac/dx.
    • ‫Gradle מבצע את ההמרות בסדר הזה: JaCoCo, פלאגינים של צד שלישי, ProGuard. סדר ההפעלה של תוספים של צד שלישי תואם לסדר שבו התוספים של הצד השלישי מוסיפים את הטרנספורמציות. מפתחים של תוספים של צד שלישי לא יכולים לשלוט בסדר ההפעלה של הטרנספורמציות באמצעות API.
  • הוצא משימוש מאחזר dex מהמחלקה ApplicationVariant. אי אפשר יותר לגשת למשימה Dex דרך Variant API כי עכשיו היא מתבצעת באמצעות טרנספורמציה. אין כרגע תחליף לשליטה בתהליך dex.
  • תוקנה תמיכה מצטברת בנכסים.
  • שיפרנו את התמיכה ב-MultiDex והפכנו אותה לזמינה לפרויקטים של בדיקות. בנוסף, הבדיקות כוללות עכשיו באופן אוטומטי את התלות com.android.support:multidex-instrumentation.
  • נוספה האפשרות לגרום לתקלה ב-Gradle build ולדווח על הסיבה הבסיסית לשגיאה כש-Gradle build מפעיל משימות אסינכרוניות ויש תקלה בתהליך של worker.
  • נוספה תמיכה בהגדרת Application Binary Interface ‏ (ABI) ספציפי בווריאציות שמכילות כמה ממשקי ABI.
  • הוספנו תמיכה ברשימה של מספרים סידוריים של מכשירים שמופרדים בפסיקים עבור משתנה הסביבה ANDROID_SERIAL כשמתקינים או מריצים בדיקות.
  • תוקנה בעיה שגרמה לכשל בהתקנה במכשירים עם Android 5.0 (API ברמה 20) ומעלה כשהשם של קובץ ה-APK כולל רווח.
  • תוקנו בעיות שונות שקשורות לפלט השגיאות של Android Asset Packaging Tool‏ (AAPT).
  • הוספנו תמיכה ב-JaCoCo incremental instrumentation כדי להאיץ את הבנייה המצטברת. הפלאגין של Android ל-Gradle מפעיל עכשיו ישירות את הכלי JaCoCo instrumenter. כדי לכפות שימוש בגרסה חדשה יותר של הכלי JaCoCo instrumenter, צריך להוסיף אותה כתלות בסקריפט build.
  • תוקנה התמיכה ב-JaCoCo כך שהיא מתעלמת מקבצים שהם לא מחלקות.
  • הוספנו תמיכה ב-vector drawable כדי ליצור קובצי PNG בזמן הבנייה לצורך תאימות לאחור. התוסף Android ל-Gradle יוצר קובצי PNG לכל ציור וקטורי שנמצא בספריית משאבים שלא צוינה בה גרסת API, או שצוין בה מאפיין android:minSdkVersion בערך 20 ומטה באלמנט <uses-sdk> במניפסט של האפליקציה. אפשר להגדיר את הצפיפות של קובצי PNG באמצעות המאפיין generatedDensities בקטעים defaultConfig או productFlavor של קובץ build.gradle.
  • נוסף שיתוף של android.jar שניתן ליצור ממנו mock, שהתוסף יוצר רק פעם אחת ומשתמש בו לבדיקות יחידה. כמה מודולים, כמו app ו-lib, משתפים עכשיו את הנתונים. כדי ליצור אותו מחדש, מוחקים את $rootDir/build.
  • השתנה העיבוד של משאבי Java, והוא מתבצע לפני משימות ההסתרה במקום במהלך האריזה של ה-APK. השינוי הזה מאפשר למשימות ההסתרה להתאים את משאבי Java אחרי הסתרת החבילות.
  • תוקנה בעיה בשימוש בקוד Java Native Interface ‏ (JNI) בפלאגין של ספריית הניסויים.
  • נוספה האפשרות להגדיר את גרסת הפלטפורמה בנפרד מהמאפיין android:compileSdkVersion בתוסף של ספריית הניסויים.