外观
View 与显示链路
- 一个 View 从创建到显示,完整流程是什么?
- SurfaceView 与 TextureView 有什么区别?
- Activity、Window、DecorView、ViewRootImpl 各负责什么?
- inflate、addView、setContentView 是不是已经把界面画出来了?
- MeasureSpec 三种模式是什么?wrap_content 怎么变成具体尺寸?
- measure 和 layout 的区别?getWidth 与 getMeasuredWidth 呢?
- draw、onDraw、dispatchDraw 各画什么?
- invalidate、requestLayout、postInvalidate 有什么区别?
- VSync 一直有,应用为什么不一直执行 doFrame?
- 主线程、RenderThread、GPU 分别做什么?
- Surface、BufferQueue、GraphicBuffer、Fence 是什么关系?
- doFrame、onDraw、Actual Timeline,哪个时刻才代表上屏?
- 什么时候能拿到 View 宽高?onResume 时已经显示了吗?
- 从手指触屏到 onClick,中间经过哪些环节?
- setSelected、setMargins、findViewById 要在主线程吗?
- translation 动画和修改 margin 动画有什么不同?
- View 性能优化具体优化哪些工作?
- 同步屏障为什么能让绘制相关消息先执行?
- 为什么帧率看起来平稳,操作仍然有延迟?