פלאגין Android Gradle 8.1.0 (יולי 2023)

הפלאגין Android Gradle 8.1.0 הוא גרסה ראשית שכוללת מגוון של ותכונות ושיפורים.

תאימות

גרסת המינימום גרסת ברירת המחדל הערות
גרדל 8.0 8.0 מידע נוסף על עדכון Gradle
כלים לבניית SDK 33.0.1 33.0.1 התקנה או הגדרה של כלים לבניית SDK.
NDK לא רלוונטי 25.1.8937393 מתקינים או מגדירים גרסה אחרת של ה-NDK.
JDK 17 17 למידע נוסף, אפשר לעיין בהגדרה של גרסת ה-JDK.

Kotlin DSL הוא ברירת המחדל להגדרת build

בפרויקטים חדשים נעשה עכשיו שימוש ב-Kotlin DSL (build.gradle.kts) כברירת מחדל ל-build הגדרה אישית. התכונה הזו מציעה חוויית עריכה טובה יותר מאשר ה-DSL של גרובי (build.gradle) עם הדגשת תחביר, השלמת קוד וניווט אל וההצהרות שלו. הערה: אם משתמשים ב-AGP 8.1 וב-Kotlin DSL ל-build ולכן כדאי להשתמש ב-Gradle 8.1 כדי ליהנות מהחוויה הכי טובה. למידע נוסף, כדאי לעיין במדריך להעברת נתונים (מיגרציה) של Kootlin DSL.

תמיכה אוטומטית בשפה לפי אפליקציה

החל מגרסת Android Studio Giraffe Canary 7 ו-AGP 8.1.0-alpha07, ניתן להגדיר את האפליקציה שלך לתמיכה בשפה לכל אפליקציה העדפות באופן אוטומטי. על סמך משאבי הפרויקט, הפלאגין Android Gradle יוצר את הקובץ LocaleConfig ומוסיפה הפניה אליו בקובץ המניפסט הסופי, כך שכבר לא צריך ידנית. AGP משתמשת במשאבים שנמצאים ב-res התיקיות במודולים של האפליקציה וכל יחסי תלות של מודולי ספרייה כדי לקבוע את הלוקאלים שיש לכלול קובץ LocaleConfig.

לתשומת ליבכם: התכונה 'שפה אוטומטית לכל אפליקציה' תומכת באפליקציות שפועלת בהן מערכת Android 13 (רמת API 33) ואילך. כדי להשתמש בתכונה, צריך להגדיר compileSdkVersion ל-33 ואילך. כדי להגדיר העדפות שפה לכל אפליקציה בגרסאות קודמות של Android, עדיין צריך להשתמש בממשקי ה-API ובבוחרי השפה בתוך האפליקציות.

כדי להפעיל את התמיכה האוטומטית בשפה לכל אפליקציה, צריך לציין לוקאל ברירת מחדל:

  1. בתיקייה res של מודול האפליקציה, יוצרים קובץ חדש בשם resources.properties.
  2. בקובץ resources.properties, מגדירים את הלוקאל שמוגדר כברירת מחדל עם התווית unqualifiedResLocale. כדי ליצור את השמות של הלוקאלים, צריך לשלב את את קוד השפה עם הסקריפט האופציונלי וקודי האזור, שמפרידים כל עם מקף:

    • שפה: יש להזין שתיים או שלוש אותיות ISO 639-1
    • סקריפט (אופציונלי): משתמשים ב קוד ISO 15924.
    • אזור (אופציונלי): יש להשתמש באחת משתי האותיות ISO 3166-1-alpha-2 או UN_M.49 בן שלוש ספרות

    לדוגמה, אם אזור ברירת המחדל שלכם הוא אנגלית אמריקאית:

        unqualifiedResLocale=en-US
        

AGP מוסיפה את הלוקאל שמוגדר כברירת המחדל לוקאלים חלופיים שציינת, באמצעות ספריות values-* בתיקייה res, קובץ LocaleConfig שנוצר באופן אוטומטי.

תמיכה אוטומטית בשפה לכל אפליקציה מושבתת כברירת מחדל. כדי להפעיל את התכונה, להשתמש בהגדרה generateLocaleConfig שבבלוק androidResources {} של קובץ build.gradle.kts ברמת המודול (קובץ build.gradle אם משתמשים ב- מגניב):

Kotlin

android {
  androidResources {
    generateLocaleConfig = true
  }
}

מגניב

android {
  androidResources {
    generateLocaleConfig true
  }
}

איתור שגיאות בקוד של Android מכיל בייטקוד שמטרגט ל-JVM 17

החל מ-AGP 8.1.0-alpha04, מערכת Android Linet מכילה בייטקוד שמטרגט ל-JVM 17. אם כותבים בדיקות לאיתור שגיאות בקוד בהתאמה אישית, צריך לבצע הידור (compile) ל-JDK מגרסה 17 ואילך ולציין את jvmTarget = '17' באפשרויות המהדר של Kotlin.

מידע נוסף על הכלי לאיתור שגיאות בקוד זמין כאן שיפור הקוד באמצעות בדיקות לאיתור שגיאות בקוד.

הגדרת הדחיסה של ספריות נייטיב הועברה ל-DSL

החל מ-AGP 8.1.0-alpha10, תוצג אזהרה אם לא תתבצע הגדרה באמצעות ה-DSL במקום המניפסט. בהנחיה הבאה מוסבר איך לעדכן את ההגדרות כדי להשתמש ב-DSL. שפת תרגום קבלת עזרה בביצוע העדכונים האלה, אפשר להשתמש ב-AGP Upgrade Assistant (כלים > כלי השדרוג ל-AGP).

כדי להשתמש בספריות מקוריות לא דחוסות, צריך להסיר את android::extractNativeLibs מהמניפסט ולהוסיף את הקוד הבא לרמת המודול קובץ build.gradle.kts (קובץ build.gradle אם משתמשים ב-Groovy):

Kotlin

android {
  packagingOptions {
    jniLibs {
      useLegacyPackaging = false
    }
  }
}

מגניב

android {
  packagingOptions {
    jniLibs {
      useLegacyPackaging false
    }
  }
}

דגלים ב-build ניסיוני

אלה דגלים ניסיוניים להגדרת ה-build שזמין ב-AGP 8.1.

סימון נוסף ב- ערך ברירת מחדל הערות
android.experimental.useDefaultDebugSigningConfigForProfileableBuildtypes AGP 8.0 false הפעלת האפשרות הזו ללא תצורות של חתימה תגרום ל-AGP להשתמש ב- הגדרת ברירת מחדל לחתימה על ניפוי באגים בזמן הרצת פרופיל שניתן לפרופיל או לניפוי באגים build. הסימון הזה מושבת כברירת מחדל כדי לעודד את מחברי ה-build להצהיר על הגדרות חתימה ספציפיות של הפרופיילינג.
android.experimental.library.desugarAndroidTest AGP 8.0 false הסימון הזה מאפשר לבוני ספריות להפעיל הסרה של ספריות ליבה לצורך לבדוק חבילות APK בלי להשפיע על ה-AAR שנוצר, למשל על ידי איתור שגיאות בקוד (linting). אנחנו מתכננים לתמוך בסופו של דבר בהתנהגות הזו ב-וריאנט API.
android.experimental.testOptions.managedDevices.customDevice AGP 8.0 false אם ההגדרה הזו מופעלת, Gradle Managed Accounts מאפשרת מכשיר מותאם אישית בהגדרת המשתמש שאפשר לספק באמצעות פלאגין. הסימון הזה חייב להיות מופעל אם שרוצים להשתמש בפלאגין של Firebase Test Lab.
android.lint.printStackTrace AGP 8.0 false אם האפשרות הזו מופעלת, מערכת Android lint מדפיסה דוח קריסות אם הוא קורס. הדגל הזה יש את אותן יכולות כמו של LINT_PRINT_STACKTRACE במשתנה הסביבה.
android.experimental.testOptions.managedDevices.maxConcurrentDevices AGP 8.0 ללא מציינת את המספר המקסימלי של מכשירים מנוהלים ב-Gradle בו-זמנית (AVD) יהיו פעילים בנקודת זמן כלשהי. אם הערך הוא 0 או שלילי, אין מספר מקסימלי של מכשירים.
android.experimental.testOptions.installApkTimeout AGP 8.0 ללא משך הזמן הקצוב לתפוגה בשניות להתקנת APK. אם הערך הוא 0 או שלילי, הוא יוגדר לערך ברירת מחדל על ידי UTP.