一、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
不兼容问题 - 包管理
-
CoordinatorLayout
嵌套的时候滑动回调不及时
十六、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
版本适配 - 刘海屏适配