一、內(nèi)存優(yōu)化
1掠械、內(nèi)存泄露
資源沒有及時釋放壮不,線程啟動后要銷毀汗盘,service啟動后使用完畢要取消注冊,BroadcastResver注
冊后不使用要取消注冊询一,盡量使用弱引用
2隐孽、oom(內(nèi)存溢出)
要求的內(nèi)存超過限制.避免方法:使用軟引用或弱引用(根據(jù)對象是否經(jīng)常使用來判斷選擇,
經(jīng)常使用用軟引用健蕊,不被經(jīng)常使用用弱引用)
3缓醋、內(nèi)存抖動
頻繁的進(jìn)行創(chuàng)建銷毀GC,造成內(nèi)存抖動
4绊诲、enum(枚舉)
不推薦不使用枚舉Enum,因?yàn)槊杜e占用內(nèi)存大褪贵。
二掂之、圖片優(yōu)化
1抗俄、Drawable代替圖片
Drawable代替圖片,能用drawable的盡量用世舰,純色动雹,圓角、漸變跟压、橢圓胰蝠、邊框等。
2震蒋、.9.png圖片
.9.png圖片的使用:圖片拉伸的時候不會失真茸塞,.9圖片必須放在drawable里mipmap中無法識別.9圖片。
3查剖、inSampleSize圖片大小
使用Bitmap的BitmapFactory.options中的inSampleSize變量減少加載到內(nèi)存中的圖片大小钾虐。
4、一套合適的圖片
盡量使用一套合適的圖片如xxhdpi,xhdpi.部分多套笋庄,切一套圖1920x1080進(jìn)行適配效扫。
5、使用異步加載直砂,緩存等
使用異步加載菌仁,緩存等,使用第三方Glide.因?yàn)檫@個圖片框架是目前最好的一套網(wǎng)絡(luò)加載框架静暂,with里面是上下文济丘,可以是activity,fragment等等。
6籍嘹、如果Bitmap圖片沒有再次用到闪盔,那么進(jìn)行recycled 進(jìn)行回收,bitmap置為空辱士,釋放圖片資源泪掀。
三、性能優(yōu)化
盡量少使用或不是使用第三方框架颂碘,因?yàn)榈谌娇赡軙斐纱a冗余,apk過大头岔,依賴沖突等情況塔拳。
四、布局優(yōu)化
1峡竣、merge
使用merge根布局減少層級靠抑。不是一個viewGroup,也不是一個view.對merge設(shè)置的所有屬性都是無效的
2、layout
使用layout進(jìn)行布局復(fù)用适掰,如title颂碧。
3荠列、viewStub
使用viewStub進(jìn)行懶加載,是一個不可見的view,通過延遲加載布局的方式提升布局渲染载城,在初始化時不需要顯示肌似,在特定的條件下才進(jìn)行顯示,進(jìn)行渲染诉瓦,如:網(wǎng)絡(luò)請求失敗川队,列表為空,新功能和新內(nèi)容的引導(dǎo)睬澡,view在特定情況下才顯示固额。