הפעלת אופטימיזציית האפליקציה

כדי לספק את חוויית המשתמש הכי טובה, מומלץ לבצע אופטימיזציה של האפליקציה כדי שהיא תהיה קטנה ומהירה ככל האפשר. הכלי שלנו לאופטימיזציה של אפליקציות, שנקרא R8, מייעל את האפליקציה על ידי הסרת קוד ומשאבים שלא נמצאים בשימוש, כתיבה מחדש של קוד כדי לבצע אופטימיזציה של ביצועי זמן הריצה ועוד. למשתמשים שלכם, המשמעות היא:

  • זמן הפעלה מהיר יותר
  • שיפורים בביצועי העיבוד והזמן הריצה
  • פחות מקרי ANR

כדי להפעיל אופטימיזציה של האפליקציה, צריך להגדיר את isMinifyEnabled = true (לאופטימיזציה של הקוד) ואת isShrinkResources = true (לאופטימיזציה של המשאבים) בסקריפט הבנייה ברמת האפליקציה של גרסת ההפצה, כמו שמוצג בקוד הבא. מומלץ להפעיל תמיד את שתי ההגדרות. מומלץ גם להפעיל אופטימיזציה של האפליקציה רק בגרסה הסופית של האפליקציה שאתם בודקים לפני הפרסום – בדרך כלל גרסת ה-release – כי האופטימיזציות מאריכות את זמן הבנייה של הפרויקט ויכולות להקשות על ניפוי הבאגים בגלל האופן שבו הן משנות את הקוד.

Kotlin

android {
    buildTypes {
        release {

            // Enables code-related app optimization.
            isMinifyEnabled = true

            // Enables resource shrinking.
            isShrinkResources = true

            proguardFiles(
                // Default file with automatically generated optimization rules.
                getDefaultProguardFile("proguard-android-optimize.txt"),

                ...
            )
            ...
        }
    }
    ...
}

Groovy

android {
    buildTypes {
        release {

            // Enables code-related app optimization.
            minifyEnabled true

            // Enables resource shrinking.
            shrinkResources true

            // Default file with automatically generated optimization rules.
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')

            ...
        }
    }
}

אופטימיזציה של כיווץ מקורות המידע כדי ליצור אפליקציות קטנות עוד יותר

בגרסה 8.12.0 של Android Gradle Plugin ‏ (AGP) הושק תהליך אופטימיזציה של צמצום משאבים, שמטרתו לשלב אופטימיזציה של משאבים וקוד כדי ליצור אפליקציות קטנות ומהירות עוד יותר.

הפעלה של אופטימיזציה של צמצום המשאבים

כדי להפעיל את צינור העיבוד החדש והמשופר לצמצום משאבים בגרסה של AGP לפני 9.0.0, מוסיפים את הקוד הבא לקובץ gradle.properties של הפרויקט:

android.r8.optimizedResourceShrinking=true

אם אתם משתמשים ב-AGP 9.0.0 או בגרסה חדשה יותר, אתם לא צריכים להגדיר את android.r8.optimizedResourceShrinking=true. התכונה 'הקטנת משאבים אופטימלית' מופעלת באופן אוטומטי כשמפעילים את isShrinkResources = true בהגדרות של הקומפילציה.

אימות והגדרה של הגדרות האופטימיזציה של R8

כדי לאפשר ל-R8 להשתמש ביכולות האופטימיזציה המלאות שלו, צריך להסיר את השורה הבאה מקובץ gradle.properties של הפרויקט, אם היא קיימת:

android.enableR8.fullMode=false # Remove this line from your codebase.

שימו לב שהפעלת אופטימיזציה של אפליקציות מקשה על הבנת עקבות מחסנית, במיוחד אם R8 משנה את השמות של מחלקות או שיטות. כדי לקבל עקבות מחסנית שתואמים בצורה נכונה לקוד המקור, אפשר לעיין במאמר בנושא שחזור עקבות המחסנית המקוריים.

אם R8 מופעל, כדאי גם ליצור פרופילים להפעלה כדי לשפר עוד יותר את ביצועי ההפעלה.

אם הפעלתם אופטימיזציה של אפליקציות והיא גורמת לשגיאות, הנה כמה אסטרטגיות לפתרון הבעיות:

אם אתם רוצים לייעל את מהירות ה-build, במאמר הגדרת אופן הפעלת R8 מוסבר איך להגדיר את R8 בהתאם לסביבה שלכם.