This presentation is all about speeding your Android app. Describing the tools to do so, with screenshots and more.
For a full blog post on that same subject - go to http://www.udinic.com
לפני שמציג עצמי: כמה אנדרואיד? וכמה JAVA לפני כן? מעבר מסביבות חזקות לסביבה חלשה (יחסית) אתן כלים למציאת בעיות מי אני? מפתח מעל 10 שנים JAVA וC++ משיכה לטכנולוגיות “מעוטות משאבים” J2ME SYMBIAN וsmartCard Developmnet כיום מפתח אנדרואיד בחברת Any.DO מדבר מהר
להריץ מהקוד בשביל דיוק רב יותר
ככה מריצים דרך הDDMS
סרגל צבעים למעלה אפשר לחפש לפי Exclusive או לעשות Drill-down מהמתודות הגבוהות ב Inclusive
מי קרא לי ולמי אני קורא כמה אחוזי ריצה יחסיים לשלי לקחו הקריאות לבנים שלי
- לא בעיה באלגוריתם של הGC - הרבה אובייקטים שנוצרים - אי שיחרור אובייקטים בגלל רפרנסים או דליפה בערך עד 16 מילישניות ריצה בשביל שהכל ירוץ חלק
מובנה בDDMS מראה אובייקטים לפי סדר ההקצאות שלהם מראה STACK TRACE של מי שיצר את האובייקט
HPROF קובץ סטנדרטי שמכיל דאמפ של הזיכרון מכיל סנאפשוט של הזיכרון עם כל האובייקטים יש להשתמש בכלי (SDK) כדי להמיר לפורמט HPROF סטנדרטי של JAVA יש הרבה כלים לניתוח המידע, אני עבדתי עם Eclipse MAT
דוחות – דליפה או בזבוז זיכרון סטרינגים כפולים או רפרנסים חלשים שלא התנקו
היסטוגרמה של האובייקטים עץ אובייקטים – מי מכיל מה וכמה נוצרו אפשר לראות מה הערכים שבתוך האובייקטים אפשר להריץ שליפות ולחפש אובייקטים זהים String.intern() סיפור GMAIL
- בעיות למשל: לייאאוטים מיותרים או שימוש ביותר מדי VIEWS - זמני טעינה של כל הקומפוננטות (כולל דירוגם ביחד לאחרים) - מיקום כל קומפוננטה במסך - מאפיינים של כל קומפוננטה
- כלי בדיקה בזמן פיתוח - מגדיר נהלים במקרה של ארועים מסויימים - פעולות רשת - כתיבה לדיסק - זיהוי אובייקטי DB שדלפו (CURSOR לא סגור) מודיע במגוון דרעים אם הUI נתקע – אולי יש פעולה כבדה שרצה ברקע. ככה נוכל לברר אם יש פעולה שלא אמורה להיות בUI