一哭懈、Android Studio-Memory Monitor
使用方法
run起你的項目冰垄,找到Memory Monitor窗口,選擇Memory
另外庸诱,還可選擇查看CPU和GPU還有NetWork的使用情況佑稠。
其中NetWork的頻繁使用是造成應用耗電的關鍵叨粘,70%左右的電量是被上報數(shù)據(jù)猾编,檢查位置信息,定時檢索后臺廣告信息所使用掉的升敲。如何平衡這兩者的電量消耗答倡,就顯得非常重要了。
二驴党、Android Studio 1.5 Preview 新玩具-Heap Snapshot
使用方法
同樣run起項目瘪撇,進行一些操作之后點擊左下角‘Dump Java Heap’的按鈕
每次點擊之后會生成一個.hprof的文件
點擊一個.hprof文件,查看右側的analyzer test,能看到兩個選項
一個是‘Detect Leaeked Activites’鼻弧,另一個是'Find Duplicate Strings'设江,點擊右上角的綠色播放按鈕,會自動分析heap dump去定位泄露的activity和重復的string攘轩,出現(xiàn)如下的Analysis Results。
該面板里的信息可以有三種類型:app heap/image heap/zygote heap.
分別代表app 堆內存信息码俩,圖片堆內存信息度帮,zygote進程的堆內存信息。
各屬性中英文對照表
名稱 | Total Count | Heap Count | Sizeof | Shallow size | Retained Size |
---|---|---|---|---|---|
意義 | 內存中該類的對象個數(shù) | 堆內存中該類的對象個數(shù) | 物理大小 | 對象本身占有內存大小 | 釋放該對象后稿存,節(jié)省的內存大小 |
名稱 | depth | Shallow Size | Dominating Size |
---|---|---|---|
意義 | 深度 | 對象本身內存大小 | 管轄的內存大小 |
三笨篷、Eclipse-Allocation Tracker(分配跟蹤器)
使用方法
點擊“Start Tracking”,在應用中執(zhí)行某個操作瓣履,然后點擊“Get Allocations”率翅。
特點
a.需要進行間斷的操作
b.可定位到具體某一行代碼
四、hierarchyviewer
使用hierarchyviewer查看需要檢查的頁面的層次袖迎,檢查頁面最深層數(shù)冕臭, 官方建議最好控制在10層以內
布局層級優(yōu)化方案:
1). 自定義控件使用merge標簽來減少不必要的根節(jié)點;
2).使用drawbleleft,代替多添加一個imageview燕锥;
3).有時使用relativelayout會比linearlayout需要更少層次就能達到實現(xiàn)效果辜贵;
4).使用viewstub來隱藏控件,ViewStub中的布局只有在你需要的時候才會渲染到主界面中归形;
...
五托慨、leakcanary(Android 和 Java 內存泄露檢測框架)
AndroidStudio
https://github.com/square/leakcanary
Eclipse
https://github.com/SOFTPOWER1991/LeakcanarySample-Eclipse
六、手機設置->開發(fā)者選項
1. Show GPU Overdraw
藍色暇榴,淡綠厚棵,淡紅蕉世,深紅代表了4種不同程度的Overdraw情況,我們的目標就是盡量減少紅色Overdraw婆硬,看到更多的藍色區(qū)域狠轻。
優(yōu)化方案:
Overdraw有時候是因為你的UI布局存在大量重疊的部分,還有的時候是因為非必須的重疊背景柿祈。例如某個Activity有一個背景哈误,然后里面 的Layout又有自己的背景,同時子View又分別有自己的背景躏嚎。僅僅是通過移除非必須的背景圖片蜜自,這就能夠減少大量的紅色Overdraw區(qū)域,增加 藍色區(qū)域的占比卢佣。這一措施能夠顯著提升程序性能重荠。
Profile GPU Rendering - 選中On screen as bars的選項
每一條柱狀線都包含三部分,藍色代表測量繪制Display List的時間虚茶,紅色代表OpenGL渲染Display List所需要的時間戈鲁,黃色代表CPU等待GPU處理的時間。
中間有一根綠色的橫線嘹叫,代表16ms婆殿,我們需要確保每一幀花費的總時間都低于這條橫線,這樣才能夠避免出現(xiàn)卡頓的問題罩扇。
參考鏈接
http://www.dev2patrick.com/shi-yong-android-studio-1-5-preview-fen-xi-memory-leaksnei-cun-xie-lu/
http://www.w2bc.com/Article/72970
我的博客(第一時間更新):
http://huangss.farbox.com/