כדי לספק את חוויית המשתמש הכי טובה, כדאי לבצע אופטימיזציה של האפליקציה כדי שהיא תהיה קטנה ומהירה ככל האפשר. כלי האופטימיזציה של האפליקציות שלנו, שנקרא 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
בהגדרות של הקובץ build.
אימות והגדרה של הגדרות האופטימיזציה של R8
כדי לאפשר ל-R8 להשתמש ביכולות האופטימיזציה המלאות שלו, צריך להסיר את השורה הבאה מקובץ gradle.properties
של הפרויקט, אם היא קיימת:
android.enableR8.fullMode=false # Remove this line from your codebase.
שימו לב שאם מפעילים את האופטימיזציה של האפליקציה, קשה להבין את עקבות המחסנית, במיוחד אם R8 משנה את השמות של המחלקות או השיטות. כדי לקבל עקבות מחסנית שתואמות לקוד המקור, אפשר לעיין במאמר בנושא שחזור עקבות המחסנית המקוריות.
אם R8 מופעל, כדאי גם ליצור פרופילים להפעלה כדי לשפר עוד יותר את ביצועי ההפעלה.
אם הפעלתם אופטימיזציה של אפליקציות והיא גורמת לשגיאות, הנה כמה אסטרטגיות לפתרון הבעיות:
- הוספת כללי שמירה כדי להשאיר חלק מהקוד ללא שינוי.
- יישום הדרגתי של אופטימיזציות.
- צריך לעדכן את הקוד כדי להשתמש בספריות שמתאימות יותר לאופטימיזציה.