1.讀寫文件設(shè)置合理的緩沖大小,8k杨刨。
2.解壓縮晤柄,文件在本地存儲并且全部解壓縮zipfile效率比zipstream效率高,因為緩沖大小影響妖胀。如果文件在服務(wù)端芥颈,或者只解壓前面部分文件或者大量小文件,zipstream效率更高赚抡,因為流爬坑。
3.對象序列化objectstream外層套bytearraystream或bufferedstream,否則會按照對象個數(shù)讀寫文件涂臣,導(dǎo)致讀寫次數(shù)多盾计。
4.數(shù)據(jù)庫連接打開操作只進行一次,app退出時關(guān)閉數(shù)據(jù)庫連接赁遗。
5.bitmap使用decodestream署辉,傳bufferedinputstream。
6.內(nèi)存相關(guān)岩四,圖片緩存哭尝,activity內(nèi)存泄露,頻繁gc導(dǎo)致卡頓剖煌,圖片緩存使用lru材鹦,因為weakreference會導(dǎo)致大量gc。線程池runnable持有外部類對象導(dǎo)致內(nèi)存泄露耕姊,和handler處理機制一樣桶唐。定時器,退出時停止茉兰。
7.內(nèi)存檢測工具leakcanary尤泽,leakinspector
8.webview運行在指定的獨立進程,退出頁面時結(jié)束進程邦邦,防止內(nèi)存泄露安吁。
9.圖片bitmap rgb565 占2字節(jié)
10.圖片放的文件夾不對,會導(dǎo)致內(nèi)存問題燃辖,盡量使用高清圖放在高密度的文件夾中鬼店。xxhdrawable xxhmimap
11.網(wǎng)絡(luò)傳輸,dns緩存黔龟,ip直連妇智,文本壓縮滥玷,圖片webpng,jpg巍棱,
12.線程數(shù)不能太多惑畴,頁面不可見時,該停掉的業(yè)務(wù)線程就停掉航徙,cpu轉(zhuǎn)換為gpu如贷,例如編解碼,圖像處理到踏。
13.耗電相關(guān)杠袱,息屏判斷停止無用業(yè)務(wù),alarmmanager重用窝稿,盡量只有一個楣富,相關(guān)業(yè)務(wù)聚合一起。記得釋放wakelock伴榔,設(shè)置不計數(shù)纹蝴。
14.bitmapshader實現(xiàn)圓角圖片
15.靜態(tài)反編譯enjarify、jadx踪少,動態(tài)注入調(diào)用的系統(tǒng)函數(shù)xposed