Android apk 插件啟動(dòng)內(nèi)存釋放問(wèn)題
Android apk 插件啟動(dòng)內(nèi)存釋放問(wèn)題
插件中啟動(dòng)apk,一般情況下在apk中內(nèi)存不存在問(wèn)題,但在插件中可能會(huì)存在并放大這個(gè)問(wèn)題,原因是在插件中重新loadclass后,原來(lái)插件的資源會(huì)重新加載,而在安裝的apk中除非被系統(tǒng)殺掉,不然可以重新利用原來(lái)沒(méi)關(guān)掉的資源;在插件中具體表現(xiàn)如下:
1.static定義的變量,假如是存放外部傳進(jìn)來(lái)的實(shí)例,記得在推出時(shí)必須置空,不然導(dǎo)致傳入的實(shí)例無(wú)法釋放;內(nèi)部new出來(lái)的保存在靜態(tài)變量中也一樣;
2.單例中new出來(lái)的實(shí)例存放到List等容器中,在退出時(shí)記得clear()下清空容器,不然內(nèi)存還會(huì)泄露:
比如類中定義
private List<ClientTaskBase> tasks = new ArrayList<ClientTaskBase>();
然后在方法中使用
ClientTaskBase task_= (ClientTaskBase) Class.forName(value).newInstance(); tasks.add(task_);
在退出時(shí),必須的清空
另外可用類的finalize方法來(lái)檢測(cè)下類是否已被釋放,該方法是在垃圾回收時(shí)釋放內(nèi)存會(huì)調(diào)用
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Android不規(guī)則封閉區(qū)域填充色彩的實(shí)例代碼
這篇文章主要介紹了Android不規(guī)則封閉區(qū)域填充色彩的實(shí)例代碼, 具有很好的參考價(jià)值,希望對(duì)大家有所幫助,一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Android系統(tǒng)關(guān)機(jī)的全流程解析
這篇文章主要介紹了Android系統(tǒng)關(guān)機(jī)的全流程解析,從上層空間一直深入到內(nèi)核全面講解,非常推薦!需要的朋友可以參考下2016-02-02
Android權(quán)限操作之uses-permission詳解
這篇文章主要介紹了Android權(quán)限操作之uses-permission,較為詳細(xì)的分析了uses-permission常見權(quán)限操作類型與功能,需要的朋友可以參考下2016-10-10
Android Color顏色過(guò)度計(jì)算實(shí)現(xiàn)代碼
這篇文章主要介紹了Android Color顏色過(guò)度計(jì)算實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-06-06
詳解Retrofit2.0 公共參數(shù)(固定參數(shù))
這篇文章主要介紹了Retrofit2.0 公共參數(shù)(固定參數(shù)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04

