多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Android內存泄露分析簡要思路

Android內存泄露分析簡要思路

來源:程序員人生   發布時間:2015-04-15 08:38:55 閱讀次數:5625次


工作中遇到挺多需要分析內存泄漏問題的情況,現在大致扼要寫下思路,等以后時間相對照較充裕再進行補充。


1.明白內存泄漏的判斷根據?

個人總結為:延續增加,只增不減!

理解1下這8個字,配合幾個命令和工具來肯定1下你的利用是不是存在內存泄漏問題,這是很關鍵的,如果1開始就判斷毛病了,那末沒有繼續往下進行的理由。

命令以下: 

adb shell

dumpsys meminfo 利用包名 [固然,比較粗略地話,可以用adb shell procrank]

這時候候你可以看到1個內存使用情況表



而我們首先關注的是TOTAL這個值,比方你會履行某個腳本,或Monkey在不斷操作你的利用,你可以隔半個小時視察1次TOTAL的情況,如果延續增加,那末10有89是有內存泄漏的問題了,但是也其實不是絕對,這時候候你就要配合上DDMS工具來做分析了。(DDMS里面有1項Heap,里面可以Cause GC,如果你發現你履行了GC以后,照舊內存沒有甚么太大的減少,那末恭喜你,這部份內存泄漏了。)


2.根據第1步所論述的1個情況,大概可以判斷出是不是有內存泄漏,那末接著需要做甚么呢?

如果內存泄漏,那末我們該做些甚么呢?

思路:一定我們想要找到泄漏點,那末如何找到?


(1). 你需要抓取hprof文件,這個文件可以顯現出1些內存的使用情況,不過切記,你別清除進程再來抓這個文件,然后配合著MAT把這個hprof文件分析了

(MAT分析hprof文件的這方面知識網上太齊全了,讀者們可以自己去學習1下哈,這里就不累墜)


(2).如果MAT分析出來的東東,你實在看不出甚么貓膩,那末再次恭喜你,你中大招了。

這時候候你要繼續視察dumpsys meminfo 包名, 輸出的結果信息,關注點放在 UnKnown那1行 和 Native Heap 那1行,關注Heap Alloc 或 Pss Total, 

如果你的總TOTAL1直再增加,但是是由于這兩行的增加,那末這個問題你不需要再繼續在MAT上花時間了,由于這類內存泄漏問題,出在Native層(C)

那末你需要去找你程序中使用到JNI的地方,so庫或其他1些特殊調用上,分析它們是不是可能造成內存泄漏問題。


(3)固然興許你照舊沒有頭緒,那末沒關系,另外一個命令就是為了你而存在的,(首先某個利用的PID號, 用dumpsys meminfo 包名,那邊已可以查到)

比方我上面那個mms, PID號為2786, 接著adb shell showmap -a PID號 (adb shell showmap -a 2786)

然后根據結果[....]這的信息,在去google上面找關鍵字, 比方:[ anon ] bash的堆


(4)當你終究還是不知道是由哪邊的.so庫引發的話,你可以查看下Native Heap的內存分配情況,這時候候你照舊需要借助DDMS,

需要先履行以下命令:

adb shell setprop libc.debug.malloc 1

adb shell stop

adb shell start


然后你還需要改1下eclipse中的配置參數值【由于如果你不配置的話,你的DDMS打開默許是看不到Native Heap那個Tab項的】

在ddms.cfg文件(實在找不到的話,就用Everything搜索下吧)最后增加1行native=true并save。ddms.cfg位于c:Usersxxx.android目錄下。

在Device當選擇好你要的利用的包名項,然后按下Snapshot按鈕, 就能夠視察到Native Heap的使用情況了,然后反復履行腳本,再視察視察,你會找到你需要的東西的。


(5)內存泄漏的問題可能很復雜,但是有的時候有了這些技能,相對更重要。所以第(5)小點,額外再提供1些其他的命令技能,幫助查找另外的情況出現內存泄漏的問題。

1.  adb shell dumpsys activity    查詢activity棧的情況(曾遇到過,就是activity1直堆積,致使的內存溢出OOM)

        2.  adb shell dumpsys cpuinfo

        3.  adb shell dumpsys battery

 

如果你在這方面有自己其他的1些方法,那末也無妨留言跟大家分享下!


轉載請注明:http://blog.csdn.net/ljphhj/article/details/44966023

轉載于 胖虎 CSDN



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 伊人三级| 亚洲在线小视频 | 久久久久久国产精品三级 | 精品视频一区二区三区免费 | 91av福利| www日本免费视频 | 久久国产精品久久 | 国产在线h | 2020国产成人精品视频人 | 成人国产精品视频频 | 五月婷婷在线视频 | 欧美日韩中文亚洲另类春色 | 羞羞视频网站免费入口 | 日本xxxx韩国护士 | 看片亚洲 | 美国一级毛片完整高清 | 亚洲啊v| 免费欧美日韩 | 欧美成人 综合网播九公社 欧美成人18 | 久草在线视频福利资源站 | 成人国产精品毛片 | 老司机午夜精品 | 中文字幕激情 | 亚洲天堂国产精品 | 国产毛片片精品天天看视频 | 午夜影院在线观看 | 天天色成人网 | avtt在线播放 | 动漫日本在线免费观看 | 久久艹精品 | 国产私人尤物无码不卡 | 亚洲欧美久久精品一区 | 最近的中文字幕视频大全高清 | 亚洲一区二区三 | 国产一区私人高清影院 | 黄色的免费网站 | 久久色亚洲 | 国产片免费看 | 欧美一级特黄啪啪片免费看 | 国产精品成人一区二区不卡 | 欧美乱人伦中文在线观看不卡 |