- MVC、MCP、MVVP 的区别和各种使用场景,如何选择适合自己的开发架构?
- Router 原理,如何实现组件间通信,组件化平级调用数据方式。
- 系统打包流程;
- APP 启动流程;
- 如何做启动优化?
冷启动什么的肯定是基础,后续应该还有的是懒加载,丢线程池同步处理,需要注意这里可能会有的坑是,丢线程池如何知道全部完成。 - 事件分发机制。
事件分发已经不是直接让你讲了,会给你具体的场景,比如 A 嵌套 B ,B 嵌套 C,从 C 中心按下,一下滑出到 A,事件分发的过程,这里面肯定会有 ACTION_CANCEL 的相关调用时机。 - 如何检测卡顿,卡顿原理是什么,怎么判断是页面响应卡顿还是逻辑处理造成的卡顿?
- 生产者模式和消费者模式的区别?
- 单例模式双重加锁,为什么要这样做。
- Handler 机制原理,IdleHandler 什么时候调用。
- LeakCanary 原理,为什么检测内存泄漏需要两次?
- BlockCanary 原理。
- ViewGroup 绘制顺序;
- Android 有哪些存储数据的方式。
- SharedPrefrence 源码和问题点;
- 讲讲 Android 的四大组件;
- 属性动画、补间动画、帧动画的区别和使用场景;
- 自定义 ViewGroup 如何实现 FlowLayout?如何实现 FlowLayout 调换顺序?
- 自定义 View 如何实现打桌球效果;
- 自定义 View 如何实现拉弓效果,贝瑟尔曲线原理实现?
- APK 瘦身是怎么做的,只用 armabi-v7a 没有什么问题么?
APK 瘦身这个基本是 100% 被面试问到,可能是我简历上提到的原因。 - ListView 和 RecyclerView 区别?RecyclerView 有几层缓存,如何让两个 RecyclerView 共用一个缓存?
- 如何判断一个 APP 在前台还是后台?
- 如何做应用保活?全家桶原理?
- 讲讲你所做过的性能优化。
- Retrofit 在 OkHttp 上做了哪些封装?动态代理和静态代理的区别,是怎么实现的。
- 讲讲轨迹视频的音视频合成原理;
- AIDL 相关;
- Binder 机制,讲讲 Linux 上的 IPC 通信,Binder 有什么优势,Android 上有哪些多进程通信机制?
- RxJava 的线程切换原理。
- OkHttp 和 Volloy 区别;
- Glide 缓存原理,如何设计一个大图加载框架。
- LRUCache 原理;
- 讲讲咕咚项目开发中遇到的最大的一个难题和挑战;
这个问题基本是 95% 必问的一个问题; - 说说你开发最大的优势点。
出现率同上。
算法
- String 转 int。
核心算法就三行代码,不过临界条件很多,除了判空,还需要注意负数、Integer 的最大最小值边界等; - 如何判断一个单链表有环?
- 链表翻转;
- 快排;
- 100 亿个单词,找出出现频率最高的单词。要求几种方案;
- 链表每 k 位逆序;
- 镜像二叉树;
- 找出一个无序数组中出现超过一半次数的数字;
- 计算二叉树的最大深度,要求非递归算法。
- String 方式计算加法。
HR 面
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
本文在开源项目:Android开发不会这些?如何面试拿高薪! 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
n.net/topics/618156601) 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…