字节跳动Android岗社招面筋
字节跳动Android岗社招面筋
一面:
1、首先是自我介绍(需要注意的地方:说有亮点的、跳槽原因,从各个点尽力彰显自己优势、技术特长)
2、手写代码:计算View树上所有view的数量,参数ViewGroup(本质上就是数据结构多叉树递归层序遍历+Android View基本api调用)
Android相关
3、主线程Looper一直循环查消息为何没卡主线程?
4、RecyclerView相对ListView区别?
5、Bitmap resize相关,设置option,decode
6、用MultiDex解决何事?其根本原因在于?Dex如何优化?主Dex放哪些东西?主Dex和其他Dex调用、关联?Odex优化点在于什么?
7、Dalvik和Art虚拟机区别?
9、多渠道打包如何实现(Flavor、Dimension应用)?从母包生出渠道包实现方法?渠道标识替换原理?
10、Android打包哪些类型文件不能混淆?
11、Retrofit主要实现机制?Retrofit的作用、原理
12、动态代理静态代理区别?
13、模块化怎么做?怎么设计?接口发现暴漏怎么做?基于什么基本思想?
14、MVC、MVP、MVVM应用和彼此本质区别?
二面:
1、Glide缓存特点
2、问了擅长哪个方向?回答UI动画,所以就问UI相关的
(1)launcher应用抽屉,之前有个毛玻璃效果背景,从系统ROM角度说下怎么做?
(2)实时的睡眠水面倒影效果怎么做? 实时更新的UI性能如何保证?
(3)UI基础:Measure、Layout、draw大流程、绘制顺序,FlowLayout怎么实现?
3、算法题:两个线程分别持续打印奇数和偶数,实现两个线程的交替打印(从小到大)
4、模块化、工程化架构思想
三面:
1、设计个IM客户端以及数据库架构,类似微信,偏上层业务部分的会话、联系人、通知、
2、公众号如何存、分几张表,架构每一层都是什么,互相怎么交互工作?
#面经##社招##字节跳动##安卓工程师#