题库汇总目录 https://www.jianshu.com/p/172d63e0744a
Android大厂高频面试题目,所有题目都是来自于一线大厂真题,题目还会继续填充,答案正在完善中....
一、Android基础篇
二、Java基础篇
三、数据结构篇
四、高并发篇
五、性能优化篇
六、计算机网络篇
七、设计模式篇
八、编程/算法篇
九、开源代码篇
十、其他技术篇
十一、项目篇
十二、开放性题目篇
十三、HR篇
性能优化篇
包体积
- 包体积优化
1.删除无用资源
2.图片只保存一份
3.资源下沉,上层业务只使用一份
4.开启代码混淆、优化代码混淆
5.图片压缩
6.资源混淆,微信的资源混淆工具
7.zip压缩
8.so静态链接转动态链接。
9.搬,将大文件进行远程下载
10.监控:图片过大、体积过大、无用资源。
内存优化
- 内存泄漏的检测
- 内存泄漏出现的场景
- 内存泄露的本质原因
长生命周期对象引用短生命周期对象 - 什么是内存抖动
不断创建和回收重复对象,导致系统频繁GC,而GC会引起主线程阻塞,最终导致UI卡顿 - 不用Leatcanary怎么分析内存泄露
- 如果要加载一个大图片如何优化
1.缩放比例
2.采样率
3.解码格式
4.lrucache
布局绘制
- 布局优化的几个方法
1.减少嵌套层级使用 include、merge和viewstub等标签 - 减少重复绘制
1.减少不必要的背景
2.widow设置空背景
3.clipRect方法设置绘画区域 - viewstub 可以重复加载吗
不能,只能inflate一次 - 绘制优化(不要在onDraw方法里面创建新的对象)
- 影响feed流体验的关键指标,如何优化
- 如何优化fps
网络优化
- 网络优化:https://www.jianshu.com/p/8301af3a2902
1.优化数据结构,压缩数据
2.根据业务合并/拆分请求
3.根据屏幕密度下发不同size的图片
4.dns缓存,缓存多个域名对应的缓存,减少解析频率
5.根据网络状态下发不同size的图片
6.根据网络状态动态调整轮训频率
7.列表数据分页加载
启动速度优化
- 启动速度优化
1.延迟初始化
2.耗时操作开线程
3.设置主题背景,防止黑屏
卡顿优化
参考材料
Android-ANR总结原理分析
Android ANR:原理分析及解决办法
- cpu占用过大怎么排查
- ANR是怎么发生的,如何排查
1.5S内无法响应用户输入事件
2.广播在10s内没处理结束 - trace文件内容和如何生成
- 如果一个list中加载了很多图片怎么优化