自我介绍
项目介绍
- 编码规范有用吗?
Android
-
Android四大组件安全性
-
Activity启动模式
-
IntentFilter匹配规则,action和category区别?
-
Handler 阻塞为什么不卡死?
-
点击事件分发机制,onTouchEvent返回false? dispatchTouchEvent返回false?
-
Looper
-
对象池,手写对象池实现
-
ContentProvider原理
-
sp支持跨进程么?怎么解决跨进程,怎么实现进程同步
-
帧动画实现: 100张图,200ms显示一张,读取一张图要400ms,怎么解决避免卡顿(多线程读)
-
Bitmap内存复用限制条件
-
线程时间的分配原理
-
百度二面 45min
项目
- 梳理项目
- 难点
- 技术框架
算法题
- 手写二分法
- 电梯状态机设计
优缺点
-
优点
-
缺点
-
专业
-
百度三面 45min
技术
- 最长公共子串
- 类加载机制
- okhttp原理
- 热修复原理
其余闲聊
- 优点缺点
- 大学遗憾
- 组织哪些活动
- 长期坚持的事情
- 专业去向
百度,网易,字节跳动,美团点评面试题答案:
因篇幅问题,面试题答案整理在pdf文档里,需要面试题答案的,**私信【面试】**即可免费获取~
-
网易核心面试题
-
网易技术一面 1h
自我介绍
项目介绍
- 华为解bug映像最深的
Android
- TouchEvent传递过程? onTouchEvent返回flase怎么办
- 怎么设计缓存
- Android数据持久化
- 数据库怎么批处理(原理)
- SP支不支持多线程?SP怎么实现多线程
- View绘制过程
- Handler消息机制
Java
- B线程怎么实现等待A线程完成工作
- 线程怎么结束工作 Java结束线程的三种方法
- Java哪些方法支持中断
- 设计一个有限资源的请求
- 怎么设计对象池(对象的存与放回)
- 线程池的线程什么时候创建
- Java中的锁
- 可重入锁性能
笔试题
- 两个数组交换一个值,让和相等,找到这两个值
网易技术二面 1h
自我介绍
华为实习
- 参与的项目
- 解的bug
- 参与的编程规范说一下
- Lint工具?
设计模式
- 单例模式
- volatile关键字原子性
Android
- 进程间通信方式(与linux进程间通信区别)
- Socket怎么验证安全性
- 广播(全局 本地区别)
- 怎么实现文件的多进程通讯(A进程改了文件怎么通知B进程读取)
- 二级缓存怎么设计(网络 数据库 view间关系)
View
- Activivty生命周期
- onSaveInstanceState onRestoreInstanceState区别,调用时机
- 广播注册应该在Activity哪个生命周期里
- 怎么统计onCreate的次数
- Fragment与Activity区别
- Fragment生命周期管理
- Fragment与ViewPager怎么做到重复加载
- View绘制过程 MeasureSpec的三种模式
- Framelayout LinearLayout ReativeLayout怎么做到View在右下
- margin padding区别
- gone invisible的区别
- requestLayout、invalidate与postInvalidate区别
- Android动画 怎么取消循环动画 repeat模式
- drawable与view区别 有哪些drawable
网易技术三面 50min
自我介绍
项目介绍(不用说太细)
Android
- 图片传输过程中URL加上默认大小如果是wrap_content怎么办
- 图片相关缓存,编码,内存复用
- svg (其他图片格式)
- drawable mutate了解不
- okhttp 桥接拦截器和缓存拦截器
- 设计自定义DNS解析器
- 打点系统设计:写文件过程中会有buffer,此时进程被杀怎么办,怎样设计日志系统 打点日志被用户篡改怎么办,保证日志安全性
- 磁盘内存映射原理
- 有没有看过开源打点框架
- 平时开发有没有遇到过资源复用
- 最近了解啥Android新动向不
- 自己学习计划
字节跳动核心面试题
一面 60min
- 一面侧重考察基本的计算及原理和Android基础机制,大部分都忘记了,发几个能记住的吧* 1.自我介绍,大概就是说些简历上没有的亮点还有跳槽原因等,从各个方面彰显自己优势和技术* 2.手写代码* (1)计算View树上所有view的数量* (2)参数ViewGroup* (3)补全空方法返回view数量(就是数据结构多叉树递归层序遍历+Android View基本api调用)* 3.主线程Looper一直循环查消息为何没卡主线程?* 4.RecyclerView相对ListView区别?* 5.好像还有Bitmap resize相关,就是设置option,然后decode等等等等吧* 6.用MultiDex解决何事?* 7.其根本原因在于?* 8.Dex如何优化?* 9.主Dex放哪些东西?* 10.主Dex和其他Dex调用、关联?* 11.Odex优化点在于啥?* 12.Dalvik和Art虚拟机区别?* 13.多渠道打包如何实现(Flavor、Dimension应用)?* 14.从母包生出渠道包实现方法?渠道标识替换原理?* 15.Android打包哪些类型文件不能混淆?* 16.Retrofit主要实现机制?* 17.动态静态区别?* 18.思维、架构:模块化怎么做的?怎么设计的?* 19.接口发现暴露怎么做?* 20.基于什么思想?* 21.MVC、MVP、MVVM应用和彼此本质区别?
二面 50min
- 这面上来大概介绍了下自己,然后问了点我用过的东西比如Glide缓存特点?随后:你擅长Android中哪个方向呢?这问题我其实是按Android UI动画方面和移动端后台交互方案制定来预想过的,然鹅说完他挑了Android UI,噩梦就开始嘞- -直接他出效果我来想方案做。* 1.你看我这手机上这个launcher里应用抽屉(就是很多ROM都有的把很多APP管理归类的二级菜单功能)他在这ROM前一版是有个毛玻璃效果背景的,从系统ROM角度说下怎么做吧?* 2.UI相关的两个大问题:实时的水面倒影效果怎么做?这里面实时更新的UI性能如何保证?(我也没做过,估计面试官也知道,所有就说了一下思路啥的,最后也认可了我的思路策略以及知识迁移解决问题能力吧)* 3.偏UI基础的考察:Measure、Layout、draw大流程、绘制顺序,基于这些说下TagLayout(FlowLayout)怎么写?* 4.算法题:俩线程分别持续打印奇数和偶数,实现俩线程的交替打印(从小到大)
三面
-
最开始还是自我介绍,二面虐惨了,所以感觉三面轻松多了* 1.算法题解决个实际问题* 2.设计个IM客户端以及数据库架构,架构每一层都是啥,互相怎么交互工作?
-
HR面
-
这面就是聊天,问问跳槽原因、个人爱好、个人职业规划、目前薪酬、跳槽薪酬要求,福利同步一下(大概就这些了)
美团核心面试题
一面 1h
- 事件分发
尾声
最后,我再重复一次,如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家梳理了多年的架构经验,筹备近6个月最新录制的,相信这份视频能给你带来不一样的启发、收获。
Android进阶学习资料库
一共十个专题,包括了Android进阶所有学习资料,Android进阶视频,Flutter,java基础,kotlin,NDK模块,计算机网络,数据结构与算法,微信小程序,面试题解析,framework源码!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
r,java基础,kotlin,NDK模块,计算机网络,数据结构与算法,微信小程序,面试题解析,framework源码!
[外链图片转存中…(img-8oqlYOTd-1715421706441)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!