问题:手画一下Android系统架构图,描述一下各个层次的作用?
这张Android平台架构图是从Android的官网抓下来的。
面试的时候,如果能很熟练地给这张图画出来,并且逻辑清晰地讲清楚这张图里每层的作用,那这个问题就算过关了。
当然,你不用画这么细,每一层里面包含那么多模块没必要都画出来,画两个意思意思就行了,但是思路一定要清晰,就好像这个系统是你设计的一样。
好了,废话不多说,我们接下来好好说说这张图,
- Application层,也就是应用层,不仅包括通话短信联系人这种系统级的应用,还包括用户自己安装的一些第三方应用
- Framework层,这一层大部分用Java写的,包括系统服务和四大组件
- Library层,这一层大部分都是C/C++写的,主要是虚拟机,还有一些三方库比如SQLite, WebKit
- HAL层,硬件抽象层,
- Linux内核层,包含Linux内核和一些驱动,比如说蓝牙驱动,Camera驱动等等,这个Binder驱动也是在这一层
如果记不住的话,我们也可以这么分,应用层,框架层,操作系统层,框架层分java层和c++层。
我们要开发应用,首先你要提供API吧,然后我们基于这个API来做开发。但是有没有想过,API分为主动型和被动型,
Java层框架,四个嫡系的基类,
Activity,UI交互
Service, 幕后服务
Receiver, 接收和发送事件
Provider,共享数据