前言
金三银四快要过完了,多多少少我也参加了几十场面试。从离职到现在,我投了上百份简历,面了好几十家的Android开发岗位,发现这些面试官基本都会提到一个知识点,那就是Android framework。
那么问题来了,在Android开发的面试过程中,我们该如何回答framework方面的问题才能顺利拿下面试呢?
Framework方面面试题分享
- Android中多进程通信的方式有哪些?
- 描述下Binder机制原理?(东方头条)
- 为什么 Android 要采用 Binder 作为 IPC 机制?
- Binder线程池的工作过程是什么样?(东方头条)
- AIDL 的全称是什么?如何工作?能处理哪些类型的数据?
- Android中Pid&Uid的区别和联系
- Handler怎么进行线程通信,原理是什么?(东方头条)
- ThreadLocal的原理,以及在Looper是如何应用的?(字节跳动、小米)
- Handler如果没有消息处理是阻塞的还是非阻塞的?(字节跳动、小米)
- handler.post(Runnable) runnable是如何执行的?(字节跳动、小米)
- Handler的Callback存在,但返回true,handleMessage是否会执行?(字节跳动、小米)
- Handler的sendMessage和postDelay的区别?(字节跳动)
- Looper.loop会不会阻塞主线程?
- Looper无限循环的阻塞为啥没有ANR
- Looper如何在子线程中创建?(字节跳动、小米)
- Looper、handler、线程间的关系。例如一个线程可以有几个Looper可以对应几个Handler?
- 子线程发消息到主线程进行更新 UI, 除了 handler 和 AsyncTask, 还有什么
- IdleHandler是什么?怎么使用,能解决什么问题?
- Android 系统启动流程
- Zygote进程的启动流程
- Android中进程的优先级
- SystemServer进程的启动流程
- AMS启动流程
- SystemServer进程为什么要在Zygote中fork启动,而不是在init 进程中直接启动
- 1 为什么要专门使用Zygote进程去孵化app进程,而不是让SystemServer去孵化
- Zygote 为什么不采用Binder机制进行IPC通信呢?
- Android app进程是怎么启动的?
- …
写在最后
整份文档一共有将近几十万字,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!需要获取更多免费资料的同学可扫描下方二维码。
Framework资料分享