Android热门前沿相关面试知识

Android热门前沿知识相关面试

  • MVC/MVP/MVVM
  • Android插件化
  • Android热更新

MVC模式

  1. MVC定义
    • M:业务逻辑处理
    • V:处理数据显示的部分
    • C:Activity处理用户交互问题
  2. MVC特点
    • 耦合性低
    • 可扩展性好
    • 模块职责划分明确
  3. MVC总结
    • 利用MVC设计模式,使得项目有了很好的可扩展性和维护性
    • controller(控制器)是一个中间桥梁的作用
    • 什么时候适合使用MVC设计模式(适用于大项目,便于模块化)

MVP模式

  1. MVP定义
    • M:依然是业务逻辑和实体模型
    • V:对应于Activity,负责View的绘制以及与用户交互
    • P:负责完成View与Model间的交互

MVVM模式

  • View:对应于Activity和xml,负责View的绘制以及与用户交互
  • Model:实体模型
  • ViewModel:负责完成View与Model间的交互,负责业务逻辑

Android插件化

  1. 插件化的来由
    • 业务增多,代码膨胀,当代码中方法数超过65536的时候,无法再容纳新的方法。
    • 功能模块的解耦,维护团队的的分领。
  2. 插件化要解决的问题
    • 动态加载apk
    • 资源加载
    • 代码加载

Android热更新

  1. 热更新流程
    • 线上检测到严重的crash
    • 拉出bugfix分支并在分支上修复问题
    • jenkins构建和补丁生成
    • app通过推送或主动拉取补丁文件
    • 将bugfix代码合到master上
  2. 主流热更新框架介绍
    • Dexposed
    • AndFix
    • Nuwa
  3. 热更新原理
    • Android类加载机制
      1. PathClassLoader
      2. DexClassLoader
    • 热修复机制
      1. dexElemnets
      2. ClassLoader会遍历这个数组

Android进程保活

  1. android进程的优先级
    • Foreground process
    • Visible process
    • Service process
    • Background process
    • Empty process
  2. android进程的回收策略
    • Low memory killer:通过一些比较复杂的评分机制,对进程进行打分,然后将分数高的进程判定为bad进程,杀死并释放内存。
    • OOM_DOJ:判别进程的优先级
  3. 进程保活方案
    • 利用系统广播拉活
    • 利用系统Service机制拉活
    • 利用Native进程拉活
    • 利用JobScheduler机制拉活
    • 利用账号同步机制拉活

你可能感兴趣的:(android)