小米Android工程师一、二、三面面经
一面
自我介绍
然后开始聊项目,GLSufaceView,OpengGL,Shader相关一些知识,在项目中做的优化
gc是根据什么来回收一个对象的,引用计数和gc root分别怎么实现。
怎样会产生内存泄露,举一个具体的例子,使用什么检查内存泄露
自定义View的绘制流程
给出二叉树和一个值,找出所有和为这个值的路径;{1,3}{3,6}{3,4}{6,8}区间去重,最少去掉几个集 合,可以让这个集合没有交集。
二面
- 自我介绍
- 什么是ANR
- Activity、BroadcastReceiver、Service对ANR时间限制分别是多少
- 怎么处理ANR
- 除了系统生成trace.txt文件
- 怎么在程序中检测ANR
- 写出伪代码。
- 编解码一些知识
- I帧,B帧,P帧区别。
- Android一些优化方案。
算法:
- n/m,怎么判断得数是无限循环小数。
三面
- 自我介绍
- 介绍项目。
- 事件分发机制。
算法:
将一个字符串转换成int型数字,考虑 错误输入,溢出,正负值等一些条件,
给出一个搜索二叉树,输出一个排序好的双向链表。