9. Анализ лога
D/dalvikvm( 3215): GC_CONCURRENT freed 2049K, 65%
free 3571K/9991K, external 4703K/5261K, paused 2ms
+2ms
Reason for GC
Amount freed
Heap statistics
External memory statistics
Pause time
Friday, July 1, 11
10. Причины утечки памяти
Ссылки на не используемые объекты
Ссылки на Acitvity, Drawable, View
Долго живущие статические переменные
Не статические внутренние классы
Friday, July 1, 11
11. Получение дампа памяти
Получение дампа
–DDMS
–android.os.Debug.dumpHprofData()
Конвертация в стандартный HPROF
формат
–hprof-con dump.hprof converted_dump.hprof
Анализ при помощи MAT
Friday, July 1, 11
18. Использование Traceview
из кода
android.os.Debug.startMethodTracing("trace_file_name");
// your code is here
android.os.Debug.stopMethodTracing();
Необходимо установить разрешение на WRITE_EXTERNAL_STORAGE
Получение trace из устройства
adb pull /sdcard/trace_file_name.trace
Traceview trace_file_name
Friday, July 1, 11
19. Режим StrictMode
StrictMode.setThreadPolicy(
new StrictMode.ThreadPolicy.Builder().detectAll()
.penaltyLog().build());
StrictMode.setVmPolicy(
new StrictMode.VmPolicy.Builder().detectAll().
penaltyLog().build());
Friday, July 1, 11
21. …
StrictMode(13858):
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:758)
…
StrictMode(13858):
at com.softtechnics.mobiletalk.traceview.MobileTalkOptTraceViewActivity
.onCreate(MobileTalkOptTraceViewActivity.java:25)
…
Friday, July 1, 11
27. Использование Layoutopt
layoutopt MobileTalkOptUI/res/layout/
MobileTalkOptUI/res/layout/pay.xml
31:607 This ScrollView layout or its LinearLayout parent is possibly useless
36:606 This LinearLayout tag should use android:layout_height="wrap_content«
78:91 This tag and its children can be replaced by one <TextView/> and a compound drawable
118:130 This LinearLayout layout or its LinearLayout parent is useless
129:129 Use an android:layout_height of 0dip instead of wrap_content for better performance
148:161 This LinearLayout layout or its LinearLayout parent is useless
160:160 Use an android:layout_height of 0dip instead of wrap_content for better performance
MobileTalkOptUI/res/layout/main.xml
Friday, July 1, 11
28. Спасибо за внимание!
ул. Михайловская 25
Одесса 65005, Украина
www.softtechnics.biz
Friday, July 1, 11