Android內(nèi)存泄露調(diào)試.docx

Android內(nèi)存泄露調(diào)試.docx

ID:61957341

大?。?67.18 KB

頁數(shù):22頁

時(shí)間:2021-04-01

Android內(nèi)存泄露調(diào)試.docx_第1頁
Android內(nèi)存泄露調(diào)試.docx_第2頁
Android內(nèi)存泄露調(diào)試.docx_第3頁
Android內(nèi)存泄露調(diào)試.docx_第4頁
Android內(nèi)存泄露調(diào)試.docx_第5頁
資源描述:

《Android內(nèi)存泄露調(diào)試.docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、優(yōu)選Android?內(nèi)存泄漏調(diào)試?一、概述?如果我們編寫的代碼當(dāng)中有太多的對內(nèi)存使用不當(dāng)?shù)牡胤?,難免會(huì)使得我們的設(shè)備運(yùn)行緩慢,甚至是死機(jī)。為了能夠使得Android應(yīng)用程序安全且快速的運(yùn)行,Android的每個(gè)應(yīng)用程序都會(huì)使用一個(gè)專有的Dalvik虛擬機(jī)實(shí)例來運(yùn)行,即每個(gè)應(yīng)用程序都是在屬于自己的進(jìn)程中運(yùn)行的。一方面,如果程序在運(yùn)行過程中出現(xiàn)了內(nèi)存泄漏的問題,僅僅會(huì)使得自己的?進(jìn)程被kill掉,而不會(huì)影響其他進(jìn)程(如果是system_process等系統(tǒng)進(jìn)程出問題的話,則會(huì)引起系統(tǒng)重啟)。另一方面Android為不同類型的進(jìn)程分配了不

2、同的內(nèi)存使用上限,如果應(yīng)用進(jìn)程使用的內(nèi)存超過了這個(gè)上限,則會(huì)被系統(tǒng)視為內(nèi)存泄漏,從而被kill掉。Android為應(yīng)用進(jìn)程分配的內(nèi)存上限如下所示:?位置:/ANDROID_SOURCE/system/core/rootdir/init.rc部分腳本```#Definetheoom_adjvaluesfortheclassesofprocessesthatcanbekilledbythekernel.#TheseareusedinActivityManagerService.setpropro.FOREGROUND_APP_ADJ0s

3、etpropro.VISIBLE_APP_ADJ1setpropro.SECONDARY_SERVER_ADJ2setpropro.BACKUP_APP_ADJ2setpropro.HOME_APP_ADJ4setpropro.HIDDEN_APP_MIN_ADJ7setpropro.CONTENT_PROVIDER_ADJ1422/22優(yōu)選setpropro.EMPTY_APP_ADJ15#Definethememorythresholdsatwhichtheaboveprocessclasseswillbekilled.#The

4、senumbersareinpages(4k).setpropro.FOREGROUND_APP_MEM1536setpropro.VISIBLE_APP_MEM2048setpropro.SECONDARY_SERVER_MEM4096setpropro.BACKUP_APP_MEM4096setpropro.HOME_APP_MEM4096setpropro.HIDDEN_APP_MEM5120setpropro.CONTENT_PROVIDER_MEM5632setpropro.EMPTY_APP_MEM6144#Writev

5、aluemustbeconsistentwiththeaboveproperties.#Notethatthedriveronlysupports6slots,sowehaveHOME_APPatthesamememorylevelasservices.write/sys/module/lowmemorykiller/parameters/adj0,1,2,7,14,15write/proc/sys/vm/overmit_memory1write/proc/sys/vm/min_free_order_shift422/22優(yōu)選wri

6、te/sys/module/lowmemorykiller/parameters/minfree1536,2048,4096,5120,5632,6144#Setinititsforkedchildren'soom_adj.write/proc/1/oom_adj-16·1·2·3·4·5·6·7·8·9·10·11·12·13·14·15·16·17·1822/22優(yōu)選·19·20·21·22·23·24·25·26·27·28·29·30·1·2·3·4·5·6·7·8·9·1022/22優(yōu)選·11·12·13·14·15·16

7、·17·18·19·20·21·22·23·24·25·26·27·28·29·30二、常見的內(nèi)存使用不當(dāng)?shù)那闆r22/22優(yōu)選(一)查詢數(shù)據(jù)庫沒有關(guān)閉游標(biāo)?描述:?程序中經(jīng)常會(huì)進(jìn)行查詢數(shù)據(jù)庫的操作,但是經(jīng)常會(huì)有使用完畢Cursor后沒有關(guān)閉的情況。?如果我們的查詢結(jié)果集比較小,對內(nèi)存的消耗不容易被發(fā)現(xiàn),只有在常時(shí)間大量操作的情況?下才會(huì)復(fù)現(xiàn)內(nèi)存問題,這樣就會(huì)給以后的測試和問題排查帶來困難和風(fēng)險(xiǎn)。示例代碼:Cursorcursor=getContentResolver().query(uri...);if(cursor.moveToN

8、ext()){......}·1·2·1·2修正示例代碼:Cursorcursor=null;try{cursor=getContentResolver().query(uri...);if(cursor!=null&&cursor.

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。