写点什么

Android 超实用最全面试大纲(四),2021 大厂 Android 知识点总结

用户头像
Android架构
关注
发布于: 刚刚

2、SharePreference 安全问题


  • 不能跨进程同步

  • 文件不宜过大


3、内存对象序列化


  • Serializeble:是 java 的序列化方式,Serializeble 在序列化的时候会产生大量的临时对象,从而引起频繁的 GC

  • Parcelable:是 Android 的序列化方式,且性能比 Serializeble 高,Parcelable 不能使用在要将数据存储在硬盘上的情况


4、避免在 UI 线程中做繁重的操作


##三、架构模式面试题



##四、插件化面试题


**1、插件化解决的问题


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


**


  • 动态加载 APK(反射、类加载器)

  • 资源加载(反射、AssetManager、独立资源、分段资源)

  • 代码加载(反射获取生命周期)


2、类加载器(Java 中字节码添加到虚拟机中)


  • DexClassLoader:能够加载未安装的 jar/apk/dex,主要用于动态加载和代码热更新

  • PathClassLoader:只能加载系统中已经安装过的 apk


##五、热更新面试题


1、热更新主要流程


  • 线上检查到 Crash

  • 拉出 Bugfix 分支修复 Crash 问题

  • jenkins 构建和补丁生成

  • app 通过推送或主动拉取补丁文件

  • 将 Bugfix 代码合到 master 上


2、热更新主流框架


  • Dexposed

  • AndFix

  • Nuwa

  • Tinker


3、热更新的原理


  • 在 ClassLoader 创建一个 dexElements 数组

  • 将修复好的 dex 文件存放在 dexElements 数组的最前面

  • ClassLoader 会遍历 dexElements 数组,找到最前面的 dex 文件优先加载


##六、进程保活面试题


1、进程的优先级


  • 空进程

  • 后台进程

  • 服务进程

  • 可见进程

  • 前台进程


2、Android 进程回收策略


  • Low memory Killer(定时执行):通过一些比较复杂的评分机制,对进程进行打分,然后将分数高的进程判定为 bad 进程,杀死并释放内存

  • OOM_ODJ:判别进程的优先级


3、Android 保活方案


  • 利用系统广播拉活

  • 利用系统 Service 机制拉活

  • 利用 Native 进程拉活

  • 利用 JobScheduler 机制拉活

  • 利用账号同步机制拉活


##七、Lint 面试题


1、什么是 Android Lint


Android Lint 是一个静态代码分析工具,它能够对你的 Android 项目中潜在的 Bug、可优化的代码、安全性、性能、可用性、可访问性、国际化等进行检查


2、Lint 工作流程



3、配置 Lint


  • 创建 Lint.xml 到根目录下,自定义 Lint 安全等级等

  • 在 Java 文件中可以使用 @suppressLint(“NewApi”)来忽视 Lint 的报错

  • 在 xml 文件中可以使用 tool:ignore(“UnusedResources”)来忽视 Lint 的报错

  • 自定义 Lint 检查,可以创建类,继承 Detector 和实现 JavaPsiScanner


##八、Kotlin 面试题


1、什么是 Kotlin


  • Kotlin 是一种基于 JVM 的编程语言

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android超实用最全面试大纲(四),2021大厂Android知识点总结