Android热门前沿知识相关面试
- MVC/MVP/MVVM
- Android插件化
- Android热更新
MVC模式
- MVC定义
- M:业务逻辑处理
- V:处理数据显示的部分
- C:Activity处理用户交互问题
- MVC特点
- 耦合性低
- 可扩展性好
- 模块职责划分明确
- MVC总结
- 利用MVC设计模式,使得项目有了很好的可扩展性和维护性
- controller(控制器)是一个中间桥梁的作用
- 什么时候适合使用MVC设计模式(适用于大项目,便于模块化)
MVP模式
- MVP定义
- M:依然是业务逻辑和实体模型
- V:对应于Activity,负责View的绘制以及与用户交互
- P:负责完成View与Model间的交互
MVVM模式
- View:对应于Activity和xml,负责View的绘制以及与用户交互
- Model:实体模型
- ViewModel:负责完成View与Model间的交互,负责业务逻辑
Android插件化
- 插件化的来由
- 业务增多,代码膨胀,当代码中方法数超过65536的时候,无法再容纳新的方法。
- 功能模块的解耦,维护团队的的分领。
- 插件化要解决的问题
- 动态加载apk
- 资源加载
- 代码加载
Android热更新
- 热更新流程
- 线上检测到严重的crash
- 拉出bugfix分支并在分支上修复问题
- jenkins构建和补丁生成
- app通过推送或主动拉取补丁文件
- 将bugfix代码合到master上
- 主流热更新框架介绍
- Dexposed
- AndFix
- Nuwa
- 热更新原理
- Android类加载机制
- PathClassLoader
- DexClassLoader
- 热修复机制
- dexElemnets
- ClassLoader会遍历这个数组
- Android类加载机制
Android进程保活
- android进程的优先级
- Foreground process
- Visible process
- Service process
- Background process
- Empty process
- android进程的回收策略
- Low memory killer:通过一些比较复杂的评分机制,对进程进行打分,然后将分数高的进程判定为bad进程,杀死并释放内存。
- OOM_DOJ:判别进程的优先级
- 进程保活方案
- 利用系统广播拉活
- 利用系统Service机制拉活
- 利用Native进程拉活
- 利用JobScheduler机制拉活
- 利用账号同步机制拉活