一、Java 基础知识
- String 为什么设计为不可变的
ArrayList
和数组的转换HashMap
死循环- 泛型
- 泛型擦除
- 匿名内部类引用外部参数为什么是
final
的 - 反射
二、Android 基础知识
2.5 RecyclerView
RecyclerView
源码解析
2.6 图片基础知识
- 防止图片出现
OOM
三、开源框架
目录
3.2 OkHttp 源码
- 连接与请求
okio
3.4 Glide 源码
- 缓存策略
- 如何优化
Bitmap
3.5 RxJava
RxJava
源码分析
六、多线程知识
- 队列同步器
- 重入锁,读写锁,
Condition
接口 Fork Join
框架- 原子操作类
RenderThread
分析
八、NDK 开发
- 基本数据类型
- 方法调用
十、性能优化
10.2 性能优化
APK
瘦身- 电量优化
- 保证应用不卡顿
- 网络优化
- 业务优化
ANR
如何产生- 如何分析
systrace
- 网络优化,参考文章
十二、设计模式
- 装饰者
- 外观
- 享元
- 代理
十三、Framework 源码
App
启动流程,从点击桌面开始,主要掌握startProcessLocked
的方式,相同进程的之前已经分析过了。- 应用程序安装到手机上发生了什么
- 权限管理,动态权限适配,权限组的概念
Binder
源码解析View.post
方法- 渲染机制
十五、其它
- 混淆
gradle
编译出的aar
不兼容问题- 包管理
十六、Android Components
Room
Pageing
WorkManager
JobService
Navigation
十七、网络
HTTPS
- 如何验证整数的合法性,
HTTPS
哪里用到了对称加密,哪里用了非对称加密,对加密算法是否有了解 UDP
和TCP
- 网络基础
MD5
加密
十八、AOP 切面编程
十九、Weex
weex
基本使用vue.js
二十、流程优化
- 调试工具:
stetho
- 规范代码:
checkStyle
、FindBugs
、lint
二十一、WebView
WebView
漏洞处理WebView
秒开方案
二十二、多媒体
NiceVideoPlayer
源码
二十三、适配
Android
版本适配- 刘海屏适配
作者:泽毛
链接:https://www.jianshu.com/p/9e0a64147d85
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。