1. Android四大组件
- Activity:通常一个activity指的就是一个屏幕
屏幕或者窗口需要布局,布局通常在Android manifest.xml中设置
- Service:又叫服务,主要处理较长时间的任务
运行不依赖用户界面,在后台运行
- Broadcast Receiver: 翻译过来就是广播接收器,用于消息传递
当事件触发时发送广播,注册了广播的对象就能接收到消息
注册广播分为动态注册及静态注册,静态注册在Android manifest.xml中注册,动态在代码中注册
- Content Provider:内容提供者,通过content provider为不同的应用提供数据存储和读取
通常会跟数据库(Sqlite)一起使用,也有网络、文件、XML的形式。
Android自带的Content Provider包括:Browser、CallLog、Contacts、MediaStore、Settings等
2. JAVA API Framework
SystemServer:是framework中最重要的一个进程,它是在虚拟机启动后运行的第一个java进程, SystemServer启动其他系统服务,这些系统服务都是以一个线程的方式存在于 SystemServer进程中。
最常用的几个服务介绍:
ActivityManagerService :AMS,管理Acvitity生命周期和事件处理
PackageManagerService :PMS,程序安装及包管理
WindowManagerService:WMS,窗口管理包括显示、View、尺寸等
Telephony Manager :通话管理
3. Android Runtime & Library
library路径:/system/lib/
So库一般是由C/C++编译成的动态库,上层的Java程序通过JNI调用
主要包含:Lib c ,OpenGL,SSL ……
Android应用都是用JAVA语言开发的,JAVA是一门解释性语言,它需要运行在虚拟机的环境下, Android Runtime和Dalvik都是解释器,Dalvik是Android 4.4以前的版本使用,ART是4.4以后的版本。
4. HAL层
HAL:HARDWARE ABSTRUCT LAYER,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。HAL 可定义一个标准接口以供硬件供应商实现,这可让 Android 忽略较低级别的驱动程序实现。
5. Linux内核
Android驱动包含两部分,一部分是HAL层,另一部分是linux内核驱动
HAL层提供上层调用的接口,同时对接Linux内核,采用IOCTRL或者一些框架的形式来访问内核驱动 Linux内核提供各种驱动:USB,COM,WIFI,BT,CAMERA,AUDIO,FLASH
6. AP与BP
通常来说一个Android手机包含两个处理器AP和BP
AP:Application Processor,运行操作系统和应用数据处理
BP:Baseband Processor,无线通信,信道调制,编码,包括通话,语音,短信数据业务,在此芯片上进行。