Android体系结构
1.操作系统层(Linux内核)
1) Linux内核版本2.6,使用Linux2.6作为操作系统。
2) 位于硬件和软件堆之间的抽象层
3) 核心服务:安全机制,内存管理,进程管理,网络,硬件驱动
2. 各种库Lib和android运行环境
Lib:
1) C/C++库:被各种Android组件使用
2) 通过应用程序框架开发者可以使用其功能包括:
a. 媒体库:MPEG4,H.264,MP3,JPG,PNG…….
b. WebKit/LibWebCore:Web浏览引擎
c. SQLite关系型数据库引擎
d. 2D,3D图形库,引擎
运行时环境:
1) 核心库提供的Java功能
2) Dalvik虚拟机依赖于Linux内核,例如线程或底层内存管理
3) 设备可以运行多个Dalvik虚拟机,每一个Android应用程序在它自己的Dalvik VM实例中运行
4) VM执行优化的Dalvik可执行文件(.dex)
5) Dx工具把编译过的Java文件转换为.dex文件
6) Dalvik虚拟机和一般Java虚拟机不同,它执行的不是Java标准的字节码,而是Dalvik可执行格式.dex。二者最大的区别在于Java VM是基于栈的虚拟机,而Dalvik是基于寄存器的虚拟机,后者最大的好处在于可以根据硬件实现更大的优化,这更符合移动设备的特点。
3. 应用程序和应用程序框架
1) 核心应用,例如联系人,电子邮件,电话,浏览器,日历,地图……
2) Android的应用程序主要是用户界面方面的,通常以Java程序编写,其中还可以包含各种资源文件(放置在res目录中)。Java程序及相关资源经过编译后,将生成一个APK包。同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。
3) 充分访问所有核心应用框架API
4) 简化组件的重用
5) Android的应用程序框架为应用程序层的开发者提供APIs
6) 一个基本的android应用程序可以利用应用程序框架中的以下几个部分:
a. Activity(活动)
b. Broadcast Intent Receiver(广播意图接收者)
c. Service(服务)
d. Content Provider(内容提供者) |
|