Android Studio 內(nèi)置了四種性能監(jiān)測工具M(jìn)emory Monitor疯搅、Network Monitor蔫耽、CPU Monitor解幼、GPU Monitor放仗,我們可以使用這些工具監(jiān)測APP的狀態(tài)润绎,該文簡單介紹下這些工具的使用
A:手動觸發(fā)GC操作
B:獲取當(dāng)前的堆棧信息,生成.hprof文件
C:內(nèi)存分配追蹤工具,生成.alloc文件
D:已使用內(nèi)存
E:剩余可用內(nèi)存
通過與應(yīng)用交互并在Memory Monitor中觀察它是如何影響內(nèi)存的使用凡橱,圖表可以為你展示一些潛在的問題:
1.頻繁的垃圾收集活動使應(yīng)用運(yùn)行緩慢小作。
2.應(yīng)用耗盡內(nèi)存導(dǎo)致app崩潰.
3.潛在的內(nèi)存泄漏
正常情況下,上圖中的D區(qū)域會隨著時間的走勢慢慢上升(就算你與APP沒有任何交互)稼钩,直到E區(qū)域被用完顾稀,則會觸發(fā)GC操作,釋放內(nèi)存坝撑,周而復(fù)始静秆。如果你發(fā)現(xiàn)你的應(yīng)用是靜態(tài)的,但是E區(qū)域的內(nèi)存很快就被用完了巡李,即頻繁的觸發(fā)GC操作抚笔,這時你就應(yīng)該引起重視,說不定你的代碼中就存在著引起內(nèi)存泄漏的隱患侨拦。
在Memory一欄中殊橙,可以觀察不同時間App內(nèi)存的動態(tài)使用情況,點(diǎn)擊可以手動觸發(fā)GC(點(diǎn)擊上圖A處)狱从,然后點(diǎn)擊上圖B處可以進(jìn)入HPROF Viewer界面膨蛮,查看Java的Heap,如下圖
最后補(bǔ)充一個我遇到的例子
以上是我的例子季研,不斷的從MainActivity跳到Main2Activity敞葛,很明顯會因?yàn)镃ontext導(dǎo)致內(nèi)存泄漏,下面我們用Android Monitor來排查出來
然后進(jìn)入到.hprof結(jié)尾的文件