字节跳动Android高级工程师面经
Android相关知识:
- AIDL
- Runnable与Thread区别
- HashMap线程安全问题
- 类的加载顺序、类中变量实例化顺序
- HTTP get和post请求的区别
- Serializable与parcelable的区别
- EventBus是否会发生内存泄漏
- 宕机问题怎么查看
- 怎么做到注入jsBridge后,再调用jsBridge? 通知事件是如何发送给H5的?
- MVP,MVVM
- TouchEvent事件是如何传递的
- ListView和RecyclerView的关系
- weex和RN比较
- 从外部SDK加载dex文件
- measure()方法的参数怎么告知对齐方式
- Handler引起的内存泄漏
- 软引用和弱引用在何时会被用到
- 异步工作方式
- Broadcast显式/隐式调用
- Android是怎么开进程的
- handler postDelayed原理
- Activity A打开Activity B的生命周期变化
Java
- 垃圾回收算法
- HashMap的哈希冲突
- 进程和线程对比
其他
- star模式开发
- Situation(分析情景):思考组件所使用的场景,以及明确在动态情况下所关联的突发场景。如项目所使用框架,多人开发否,是否为弹框类组件或者全局组件,复杂程度,是否有子组件,父组件,是否组件通信,是否被继承,是否被组合,是否有全局处理,异步处理,开发周期etc。
- Task(制定任务):制定组件主要逻辑、开发顺序、关键数据/接口对接。
- Action(行动):编写组件代码,按照任务布置一步步从html,css,js方式丰满组件。
- Result(总结结果):进行成果查询,边界检查,对于组件设计过程中每一步的公共部分类抽出。