1瘤袖、布局優(yōu)化
(1)使用優(yōu)先順序:LinearLayout,FrameLayout > RelativeLayout > 嵌套;
(2)使用onDraw()方法可能會頻繁使用式塌,避免在這個方法中創(chuàng)建新的局部對象和執(zhí)行耗時操作,
由于可能頻繁調(diào)用onDraw()眼五,就會頻繁出發(fā)GC吏廉,降低效率笋庄。
2、內(nèi)存泄漏
(1)在該釋放對象的時候釋放(動態(tài)注冊廣播倔监、數(shù)據(jù)庫操作)
(2)靜態(tài)變量直砂,生命周期從類加載到銷毀
(3)單例模式,生命周期和Application一樣
(4)屬性動畫浩习,動畫無限循環(huán)執(zhí)行静暂,在onDestroy()是沒有停止,Activity和View相互持有谱秽,Activity無法釋放洽蛀。
3、ANR
(1)主線程避免耗時操作疟赊,如有耗時操作郊供,開子線程進行
4、ListView
(1)contentView復(fù)用View
(2)使用ViewHolder
(3)避免在getView()中有太多耗時操作或者創(chuàng)建局部對象近哟,滑動較快時避免大量異步操作
5驮审、線程優(yōu)化
(1)開大量線程時使用線程池,線程池可以重復(fù)使用內(nèi)部的線程吉执,避免線程創(chuàng)建銷毀帶來的性能開銷
6疯淫、圖片相關(guān)
(1)使用弱引用、軟引用緩存戳玫。弱引用擁有更短暫的生命周期熙掺,一旦發(fā)現(xiàn)有弱引用的,就回收咕宿,不管內(nèi)存足夠與否币绩。軟引用只有當內(nèi)存空間不足的時候才會回收蜡秽。
(2)圖片壓縮
7、其它
(1)盡量創(chuàng)建局部變量类浪,避免全局變量载城。
(2)for循環(huán)也要避免創(chuàng)建對象。