內存
- 目的: 無內存泄漏, 降低內存開銷, 避免內存抖動; 減少非并發GC的運行次數
- 工具: LeakCanary, Memory Monitor, MAT, Allocation Tracker
復用
Object Pool, BitmapFactory.Options.inBitmap, Cache, onDraw/for, convertView回收
register/unregister, Cursor/Bitmap/WebView/TypeArray, Handler, onTrimMemory減少開銷
SparseArray, no-Enum, Bitmap-scale/format擴大內存
largeHeap, mutil-process
View
- 目的: 界面流暢性, 無掉幀, 避免卡頓
- 工具: Show GPU Overdraw, Profile GPU rendering, Layout Inspector, Hierarchy Viewer, Traceview,
重用
include過度繪制
setWindowDrawable(null), merge, canvas.clipRect渲染速度, Jank
viewStub, merge, double layout taxation(RelativeLayout)
啟動
- 目的: 加快啟動速度, 避免白屏
- 工具: Systrace