在我们Android开发行业中一直流传着:**“技术好的未必底层够硬,但底层扎实的学起来进步如飞。”**这也是为什么如今的大厂都非常注重对底层原理的考察:除了可以看出面试者的“地基”,底层原理更能看出一个开发者的发展潜力。
大家在面试中也想必是感同身受,底层原理无论如何都会被问及到,无法避免就应该迎面而上,framework的面试题也是许多大厂必问问题之一。本篇就来说说Handler、Binder、AMS、PMS、WMS面试题。
framework面试题分享
1、Handler篇
- Handler 机制中,存在哪些角色?各自承担了什么功能?
- Handler 分发事件优先级,是否可拦截?拦截的优先级如何?
- 主线程 Looper 何时运行?
- Handler 的 Message 可以分为那 3 类?分别有什么标识?
- Handler 为什么需要使用底层的 epoll 来休眠?
2、Binder
- Binder机制是如何跨进程的?
- Binder的定向制导,如何找到目标Binder,唤起进程或者线程?
- Binder一次拷贝原理?
- Android APP进程天生支持Binder通信的原理是什么?
- 使用 Binder 传输数据的最大限制是多少,被占满后会导致什么问题 ?
3、AMS
- AMS是什么?什么时候初始化的?有什么作用?
- AMS和zygote进程通信是如何实现的?
- ActivityManager、ActivityManagerService、ActivityManagerNative、ActivityManagerProxy的关系
- Instrumentation是什么?和ActivityThread是什么关系?
- ActivityThread是什么?ApplicationThread是什么?它们的区别?
4、PMS
- AndroidManifest.xml在解析的作用?
- InstallStart如何显示安装界面?
- sartnstal流程分析?
- pms提前缓存内存存档?
- 四大组件如何预加载的?
5、WMS
- View的绘制流程?onMeasure职责是做什么?
- Activity如何与window与view进行分工合作的?
- onResume函数中度量高有效吗?
- 线程中view.setText一定会报错吗,为什么?
- View的绘制过程都是用的同一个canvas吗?
framework的面试题除了这五个技术块除外,还有它的系统资源、事件机制UI机制等,这些都会有涉及到。毕竟面试官干的都是造飞机的事,一个也不会落下。面试面对的造火箭、造大炮的事,我们就应该准备充分;及以上的framework底层知识,我特别从大厂高工整理出的《Android开发面试跳槽涨薪题库》,我从他手上“ 抢“过来的。面试资料很珍贵,希望帮到需要的人。感谢就不必要了,多多点赞关注,是我最大的动力!
既然选择这个行业,选择了做一个程序员,也就明白只有不断学习,积累实战经验才有资格往上走,拿高薪,为自己,为父母,为以后的家能有一定的经济保障。
学习时间都是自己挤出来的,短时间或许很难看到效果,一旦坚持下来了,必然会有所改变。不如好好想想自己为什么想进入这个行业,给自己内心一个答案。
面试大厂,除了会问一些技术原理,还会看你对知识掌握的广度,最重要的还是你的思路,这是面试官比较看重的。