一、自定义控件
1. 系统已有自定义控件的学习
- TecnoOverflowMenu
- TecnoShadowButton
- SearchView
- Dialog
- …等
2. 控件相关知识
- 坐标体系
- 现有控件的组合
- 继承自View
- 继承自ViewGroup
3. View相关事件知识
- 事件的分发传递机制
- View滑动冲突解决
4. View的辅助图片和动画
- 各种Drawable的使用
- View动画
- 属性动画
二、Android相关组件
主要学习以下组件的原理和实现方式:
- 四大组件的使用
- Activity的启动过程分析
- Service两种启动方式分析
- BroadcastReceive注册、发送、接收过程分析
- ContentProvider过程分析
三、资源管理学习
1. 资源管理
- Android应用程序资源的编译、打包
- 资源管理器的创建过程
- 资源的查找过程
2. 屏幕分辨率适配
四、WMS AMS PMS IPC
- WindowManagerService
- ActivityManagerService
- PackageManagerService
- 几种常见IPC的基本使用和原理了解
- AIDL
- Handler发送message
- Bundle
- Socket
五、性能优化分析
1. UI卡顿性能分析
2. 内存性能分析
3. 常用性能分析工具的使用
3.1 关于UI
- HierarchyViewer
- UI布局复杂程度及冗余等分析
- 三个点从左至由分别代表:测量、布局、绘制的渲染时间
- 三个点的颜色:红色和黄色的点代表速度渲染较慢的View
- Setting—>调试GPU过度绘制
- 无色:WebView等的渲染区域
- 蓝色:1x过度绘制
- 绿色:2x过度绘制
- 淡红色: 3x过度绘制
- 红色:4x(+)过度绘制
- Lint
- 资源及冗余UI布局等优化
- TraceView
- 横纵坐标系可视化查看
3.2 关于内存
- MAT
- Memory Analyzer Tool
- 专门分析Java堆数据内存引用的工具
- 生成:包名.hprof 文件分析
- 列表的方式查看
- TraceView
- 横纵坐标系可视化查看
- Memory Monitor
- AS自带的
- Leakcanary
- 内存泄露自动监测工具