אם אפליקציה מגיבה לאט, מציגה אנימציות קטועות, קופאת או צורכת יותר מדי חשמל. כדי לפתור בעיות בביצועים, צריך לבצע ניתוח פרופיל של האפליקציה או לזהות אזורים שבהם האפליקציה משתמשת במשאבים כמו המעבד, הזיכרון, הגרפיקה או הסוללה של המכשיר באופן לא יעיל. בנושא הזה מתוארים הכלים והשיטות של Android Studio לפתרון בעיות נפוצות בביצועים.
במאמר הפעלת הכלי לניתוחי פרופיל בנפרד מוסבר איך מפעילים את הכלי לניתוחי פרופיל בנפרד בלי להריץ את כל סביבת הפיתוח המשולבת של Android Studio (ב-Windows או ב-Linux בלבד).
הדרישות
כדי ליצור פרופיל של האפליקציה, מומלץ להשתמש בנתונים הבאים:
אפליקציה עם גרסה של build למהדורה שפעילה בה הגדרת המניפסט
profileable
, שנקראת גם אפליקציה שניתן ליצור לה פרופיל. כברירת מחדל, ההגדרה הזו מוגדרת לאפליקציות כ-true. כדי לבדוק או לשנות את ההגדרה הזו, פותחים את המניפסט או את הקובץAndroidManifest.xml
של האפליקציה ומחפשים בקטע<application>
את הגדרת המניפסטprofileable
:<profileable android:shell="true" />
מכשיר בדיקה וירטואלי או פיזי עם API ברמת 29 ומעלה ועם Google Play.
Android Gradle Plugin מגרסה 7.3 ואילך.
אפליקציות שניתנות ליצירת פרופיל לעומת אפליקציות שניתנות לניפוי באגים
אפליקציה שניתן ליצור לה פרופיל מאפשרת לבצע את רוב המשימות הנפוצות של יצירת פרופיל, אבל אם אתם צריכים לתעד הקצאות ב-Java או ב-Kotlin או לצלם גרסת dump של אשכול, כדאי להשתמש במקום זאת באפליקציה ניתנת לניפוי באגים. תהליך אפליקציה שניתן לניפוי באגים ומכשיר שפועל עם API ברמה 26 ואילך מאפשרים גם לראות את ציר הזמן אינטראקציה, שבו מוצגים אינטראקציות של משתמשים ואירועים במחזור החיים של האפליקציה, בתצוגות המשימות שמציגות אותו.
אפליקציה שניתנת לניפוי באגים מבוססת על גרסת ה-build של debug
של האפליקציה ומאפשרת להשתמש בכלים לפיתוח כמו הכלי לניפוי באגים. עם זאת, היא כרוכה בעלויות ביצועים מסוימות. אפליקציה שאפשר לבצע לה פרופיל מבוססת על גרסת build מסוג release
של האפליקציה, ומאפשרת לבצע קבוצת משנה של משימות נפוצות ליצירת פרופיל ללא העלויות הנוספות על הביצועים של build לניפוי באגים.
פיתוח והרצה של אפליקציה שניתן ליצור לה פרופיל
כדי ליצור ולהפעיל אפליקציה שניתנת לפרופיל ב-Android Studio, פועלים לפי השלבים הבאים:
- יוצרים הגדרת run/debug, אם עדיין אין לכם הגדרה כזו.
- בוחרים את גרסת build של הגרסה היציבה (Build > Select Build Variant).
- לוחצים על פעולות נוספות > יצירת פרופיל של 'app' עם תקורה נמוכה או על יצירת פרופיל של 'app' עם נתונים מלאים ('app' הוא שם הגדרת ההרצה, כך שהוא עשוי להיות שונה אצלכם). כדי לבחור בין שתי האפשרויות, אפשר לעיין בקטע דרישות. האפליקציה נפתחת במכשיר הבדיקה והחלונית Profiler נפתחת ב-Android Studio.
אם ההוראות האלה לא מתאימות לכם, תוכלו להיעזר במאמר יצירה והפעלה של אפליקציה שניתן ליצור באמצעות פרופיל באופן ידני.
התחלת יצירת הפרופילים
כדי להתחיל משימה של יצירת פרופיל:
בוחרים תהליך מהרשימה בכרטיסייה Home (דף הבית) שבחלונית Profiler. ברוב המקרים, כדאי לבחור את התהליך העליון שמייצג את האפליקציה.
בוחרים משימה ליצירת פרופיל בקטע Tasks. מידע נוסף על המשימות זמין בדפים האחרים בקטע הזה. לא כל משימות הפרופיל זמינות לכל תהליך. לא יודעים מאיפה להתחיל? בודקים את האפליקציה בזמן אמת כדי לקבל סקירה כללית של פעילות הביצועים.
בתפריט הנפתח Start profiler task from בוחרים אם להפעיל את המשימה של הכלי לניתוחי פרופיל בזמן ההפעלה או לצרף אותה לתהליך בזמן שהוא פועל. אם אתם מנסים לשפר את זמן ההפעלה של האפליקציה או לתעד תהליך שמתרחש במהלך ההפעלה של האפליקציה, צריך לכלול את ההפעלה. אחרת, אפשר להתחיל את יצירת הפרופיילינג במצב הנוכחי של האפליקציה.
לוחצים על התחלת משימת פרופיל העסק. המשימה תתחיל בכרטיסייה משלה.
מבצעים אינטראקציה עם האפליקציה כדי להפעיל פעילויות.
מפסיקים את ההקלטה (אם רלוונטי), ממתינים לניתוח שלה ומעיינים בתוצאות.
השוואה, ייצוא וייבוא של מעקבים
כשמפסיקים משימה של יצירת פרופיל, היא נשמרת באופן אוטומטי בכרטיסייה Past Recordings בחלונית Profiler. אפשר להשתמש בהקלטות השמורות האלה כדי להשוות בין השימוש במשאבים בתרחישים שונים. ההקלטות נשמרות למשך הסשן הנוכחי ב-Android Studio. אם רוצים לשמור אותן למשך זמן ארוך יותר, לוחצים על ייצוא ההקלטה . אי אפשר לייצא את כל סוגי המעקב.
כדי לייבא מעקב, למשל מפעולה קודמת של Android Studio, לוחצים על ייבוא הקלטה בכרטיסייה הקלטות קודמות ובוחרים את קובץ המעקב. אפשר גם לייבא קובץ על ידי גרירה שלו לחלון העריכה של Android Studio.
עריכה של הגדרת ההקלטה
כדי לערוך את ההגדרות של הקלטת המשימות של הכלי לניתוחי ביצועים, לוחצים על הגדרות הכלי לניתוחי ביצועים . יש שתי הגדרות עיקריות שאפשר להחליף:
- במשימות שכוללות דגימה, מרווח הדגימה מייצג את הזמן שחולף בין כל דגימה. ככל שהמרווח שצוין קצר יותר, כך תגיעו מהר יותר למגבלת גודל הקובץ של הנתונים שתתועדו.
- מגבלת גודל הקובץ מייצגת את כמות הנתונים שניתן לכתוב במכשיר המחובר. כשמפסיק את ההקלטה, Android Studio מנתח את הנתונים האלה ומציג אותם בחלון הניתוח. אם מגדילים את המגבלה ומקליטים כמות גדולה של נתונים, ניתוח הקובץ ב-Android Studio לוקח הרבה יותר זמן, ויכול להיות שלא תתקבל תגובה.