פלאגין 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 מאפשר להחדיר מניפולציות מותאמות אישית של הכיתה בצורה פשוטה יותר, תוך מתן גמישות רבה יותר לגבי הדברים שאפשר לבצע בהם מניפולציה. כדי להוסיף טרנספורמציה ל-build, יוצרים כיתה חדשה שמטמיעה אחת מהממשקים של 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.
  • הוצאנו משימוש את ה-getter של dex מהקלאס ApplicationVariant. אי אפשר יותר לגשת למשימה Dex דרך Variant API כי היא מתבצעת עכשיו באמצעות טרנספורמציה. בשלב הזה אין תחליף לאפשרות לשלוט בתהליך ה-dex.
  • תמיכה מצטברת מתוקנת בנכסים.
  • שיפרנו את התמיכה ב-MultiDex והפכנו אותה לזמינה לפרויקטים לבדיקה. עכשיו, הבדיקות כוללות באופן אוטומטי את התלות ב-com.android.support:multidex-instrumentation.
  • נוספה היכולת לגרום לכשל תקין ב-build של Gradle ולדווח על הסיבה הבסיסית לשגיאה, כש-build של Gradle מפעיל משימות אסינכררוניות ויש כשל בתהליך העבודה.
  • הוספנו תמיכה בהגדרה של ממשק בינארי של אפליקציה (ABI) ספציפי בגרסאות שמכילות כמה ממשקי ABI.
  • הוספנו תמיכה ברשימת מספרים סידוריים של מכשירים שמופרדים בפסיקים למשתנה הסביבה ANDROID_SERIAL בזמן התקנה או הפעלה של בדיקות.
  • תוקנה שגיאת התקנה במכשירים עם Android מגרסה 5.0 (API ברמה 20) ואילך, כששם קובץ ה-APK מכיל רווח.
  • תוקנו בעיות שונות שקשורות לפלט השגיאות של Android Asset Packaging Tool‏ (AAPT).
  • הוספנו תמיכה במדידה מצטברת של JaCoCo ליצירת גרסאות build מצטברות מהר יותר. הפלאגין של Android ל-Gradle מפעיל עכשיו את הכלי של JaCoCo ישירות. כדי לאלץ גרסה חדשה יותר של הכלי לניתוח קוד של JaCoCo, צריך להוסיף אותו כיחסי תלות של סקריפט build.
  • תיקנו את התמיכה ב-JaCoCo כך שהיא תתעלם מקבצים שאינם כיתות.
  • הוספנו תמיכה בתמונות וקטוריות שניתן לצייר כדי ליצור קובצי PNG בזמן ה-build, לצורך תאימות לאחור. הפלאגין של Android ל-Gradle יוצר קובצי PNG לכל קובץ drawable וקטורי שנמצא בספריית משאבים שלא מציין גרסה של 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 בפלאגין של הספרייה הניסיונית.