一、Android的介绍
android介绍见百度百科:Android的介绍,度娘把Android介绍的这么清楚,如果谷歌是Android的爹,那度娘就是娘了。
二、Android的架构图
android系统主要分四层:
从上致下:
1、应用层
2、应用框架层
3、核心类库层
4、linux内核层
应用层:
用java开发的应用,分系统应用和非系统应用(开发人员开发的)。
系统应用和非系统应用的区别:
1、系统应用是不能卸载(如果没有root权限)。非系统应用可以卸载。
2、系统应用可以调用更多的API,非系统应用只能调用SDK中的API,有些API,谷歌不让开发者调用,开发者要想使用,只能通过意图Intent调用系统应用。
应用框架层:
是对核心类库调用的实现,核心类库是用C和C++开发,在开发时遵循规则可以用C和C++开发android应用,但这个开发起来成本太高,太费时,比塞班系统的开发还要难,比J2ME的开发还要难,谷歌为了简化开发,就用java写了调用核心类库的方法,把这些方法封装成API给开发者调用。因此,应用框架层是用java写的,是对核心类库层的调用。
因为应用框架层是用java写的,所以应用层首选的开发语言是java。
核心类库层:
为了让安卓系统具备强大的功能,需要强大的类库,这些类库不都是谷歌开发的,大都是比较好的开源项目,谷歌直接拿来用,或者改改直接用。
openglES:游戏开发开源引擎,不是谷歌开发的。
surfaceManager:开源界面管理引擎,不是谷歌开发的。
webkit:开源浏览器内核。不是谷歌开发的。
SGL:开源图形处理引擎,不是谷歌开发的。
SQLITE:android自带的数据库。不是谷歌开发的。
--------------------------------
FreeType:字体库
Media Framework:媒体框架
SSL:基于HTTP的安全协议
因为应用框架层是用java写的,所以android需要java运行时,于是谷歌就在核心类库层增加了core libraries,dvm。
core libraries:
是java的api,对应用层和应用架构层的java提供java环境支持。
DVM:
在2.3之前是直接用JAVA虚拟机JVM的,因为甲骨文起诉谷歌说安卓侵权,谷歌就把JVM改了,开发出了更适合手机的DVM。因为java的程序在运行时需要转码,DVM的功能就是把.class文件转为机器码。
linux核心层:
包含了硬件接口,用于android系统的移植。
各种硬件驱动:显示器驱动,摄像头驱动,闪存驱动,键盘驱动,键盘驱动,wifi驱动,音频驱动,电源驱动。
如果做Android移植,需要学习Linux层,核心类库层,应用框架层。