前言
金三银四已经过完了,面试也该告一段落了。看见大家集体困扰Android framework,吐槽面试官总是问Android framework相关的面试题。大家都是一脸茫然。根据大家的需求,我从各大厂搜集了Android framework的面试题资料,有需要的朋友可以收藏了,文末附面试题答案。
面试题分享
东方头条
Android中多进程通信的方式有哪些?
描述下Binder机制原理?
为什么 Android 要采用 Binder 作为 IPC 机制?
Binder线程池的工作过程是什么样?
AIDL 的全称是什么?如何工作?能处理哪些类型的数据?
字节跳动
Android中Pid&Uid的区别和联系
Handler怎么进行线程通信,原理是什么?
ThreadLocal的原理,以及在Looper是如何应用的?
Handler如果没有消息处理是阻塞的还是非阻塞的?
handler.post(Runnable) runnable是如何执行的?
Handler的Callback存在,但返回true,handleMessage是否会执行?
小米
Handler的Callback存在,但返回true,handleMessage是否会执行?
Looper.loop会不会阻塞主线程?
Looper无限循环的阻塞为啥没有ANR
Looper如何在子线程中创建?
Looper、handler、线程间的关系。例如一个线程可以有几个Looper可以对应几个Handler?
子线程发消息到主线程进行更新 UI, 除了 handler 和 AsyncTask, 还有什么
IdleHandler是什么?怎么使用,能解决什么问题?
Android 系统启动流程
腾讯
Zygote进程的启动流程
Android中进程的优先级
SystemServer进程的启动流程
AMS启动流程
SystemServer进程为什么要在Zygote中fork启动,而不是在init 进程中直接启动
为什么要专门使用Zygote进程去孵化app进程,而不是让SystemServer去孵化
Zygote 为什么不采用Binder机制进行IPC通信呢?
Android app进程是怎么启动的?
Android Application为什么是单例
Intent的原理,作用,可以传递哪些类型的参数?
Activity启动流程分析
美团
Activity A启动 ActivityB,activity的生命周期调度流程
如果需要在Activity间传递大量的数据怎么办?
打开页面,如何实现一键退出?
startActivity(MainActivity.this,LoginActivity.class); LoginActivity配置的launchMode是何时解析的?
在清单文件中配置的receiver,系统是何时会注册此广播接受者的?
如何通过WindowManager添加Window(代码实现)?
为什么Dialog不能用Application的Context?
WindowMangerService中token到底是什么?token的存在意义是什么?
附答案
以上的面试题及答案已经整理成PDF版本。每一道题都是站在企业的角度去思考,站在招聘者的角度去回答。欢迎感兴趣的朋友一起交流。