פלאגין Android Gradle 2.2.0 (ספטמבר 2016)

יחסי תלות:
גרסת המינימום גרסת ברירת המחדל הערות
גרדל 2.14.1 2.14.1 מידע נוסף על עדכון Gradle
כלים לבניית SDK 23.0.2 23.0.2 התקנה או הגדרה של כלים לבניית SDK.
המינוי החדש:
  • נעשה שימוש ב-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
      

    • כברירת מחדל, אם גודל הערימה של הדימון ב-Gradle הוא 1.5 לפחות GB, ג'ק פועל עכשיו באותו תהליך כמו Gradle. כדי לכוונן גודל ערימה של דימון (daemon), צריך להוסיף את הערכים הבאים ל קובץ gradle.properties:

      # This sets the daemon heap size to 1.5GB.
      org.gradle.jvmargs=-Xmx1536M