国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

記錄內(nèi)存泄漏解決的經(jīng)驗(yàn)總結(jié)

2019-11-09 16:57:38
字體:
供稿:網(wǎng)友

          內(nèi)存泄漏的問題,是一個(gè)老生常談的問題,這里不多說,雖然網(wǎng)上解決的思路一大把,但是我把我自己的解決過程記錄一下,解決方法當(dāng)然可以百度就出來了,這里不過多記錄。

          1.使用Leakcanary,簡單使用配置如下:

dependencies {    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'    testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'}           使用當(dāng)然也非常簡單,在application的oncreate方法中加入如下代碼就好了:

LeakCanary.install(this);         這樣就可以在運(yùn)行app的時(shí)候檢查是否有內(nèi)存泄漏了。但是有些時(shí)候會(huì)發(fā)現(xiàn),報(bào)的內(nèi)存泄漏發(fā)生的位置很尷尬,為系統(tǒng)控件等等,一眼看到后覺得不是我們的代碼的問題,這個(gè)時(shí)候就需要用AS的自帶工具進(jìn)行內(nèi)存泄漏檢查了。

         2.使用AS的內(nèi)存分析工具進(jìn)行內(nèi)存泄漏檢查,使用過程如下

                 1)運(yùn)行app,然后選擇查看運(yùn)行內(nèi)存,如下圖

             1)

              2)點(diǎn)擊紅線所指向的按鈕,然后會(huì)出現(xiàn)如下圖所示效果:

             

            3)稍等一分鐘左右就會(huì)在AS中出現(xiàn)如下內(nèi)容:

             

4)上面就是此時(shí)app占用內(nèi)存的情況分析了,當(dāng)然初看比較亂,我們要進(jìn)行篩選,如下圖:

    首先紅色箭頭選中view樹結(jié)構(gòu),然后黃色箭頭選擇你自己的包名內(nèi)的文件,這時(shí)候就會(huì)看到圓圈圈中的內(nèi)容了,發(fā)現(xiàn)了沒有不是1或者0,說明這里有內(nèi)存泄漏,需要修改。好了,然后我選擇SquareView這個(gè)進(jìn)行分析,為什么是這個(gè)而不是activity或者fragment呢?因?yàn)閍ctivity和fragment中存在泄漏是由于里面的view引起的,點(diǎn)擊后看右側(cè)圖,再點(diǎn)擊后看下面的圖,藍(lán)綠色的箭頭指示位置就是具體是什么造成的內(nèi)存不能夠釋放。到此就可以根據(jù)具體位置進(jìn)行具體解決了。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 高青县| 宕昌县| 上饶市| 荆州市| 萍乡市| 高雄市| 双柏县| 兴安盟| 乐业县| 衡山县| 古田县| 岢岚县| 沛县| 桃园县| 洛宁县| 东乡| 乳山市| 大埔区| 南丰县| 桐乡市| 天津市| 四子王旗| 新安县| 建宁县| 北宁市| 湖北省| 阜平县| 福海县| 泊头市| 马山县| 张家界市| 宜城市| 鸡泽县| 准格尔旗| 泸溪县| 宽城| 顺平县| 米泉市| 昔阳县| 泽库县| 山阳县|