实习面了阿里和腾讯,校招面了腾讯,百度,华为,搜狗和滴滴,总结一下遇到的面试知识点。知识点是散的而且也比较容易掌握,难点是这些知识点的应用中并且深刻理解。实习面试的时候阿里通过,腾讯一面跪(内推和实习校招都是一面跪).校招的时候,百度华为搜狗滴滴面试通过,腾讯仍然是一面跪(内推压根就没给面试机会)
关于下面的问题需要说明一下,这些知识点是一个汇总,写的比较简略,但是有些知识点是可以延伸到非常深入,可以问的也非常多。所以仅仅从网上找一些答案来记一下其实用处不大,但是作为一个查漏补缺的提纲还是可以的;另外一点是每个人遇到的问题是不一样的,一般是根据项目来问,不过大部分都一样,毕竟都跳不出Android这个范畴,所以多找几篇Android的知识点汇总帖基本就能覆盖所有知识点了。
面试问题汇总
Android基础
- View的绘制流程;自定义View如何考虑机型适配;自定义View的事件分发机制;View和ViewGroup分别有哪些事件分发相关的回调方法;自定义View如何提供获取View属性的接口;
- Art和Dalvik对比;虚拟机原理,如何自己设计一个虚拟机(内存管理,类加载,双亲委派);JVM内存模型及类加载机制;内存对象的循环引用及避免
- 内存回收机制与GC算法(各种算法的优缺点以及应用场景);GC原理时机以及GC对象;内存泄露场景及解决方法;OOM的避免及解决方法
- 四大组件及生命周期;ContentProvider的权限管理(读写分离,权限控制-精确到表级,URL控制);