学习android体系结构图

学习第一章的时候发现,只是看作者写的文字,总有种雾里看花的感觉,走过一遍好像懂了,又好像没懂,所以这里就其中的“干货”,做一些力所能及的理解,希望可以更轻松的理解了这些概念。鉴于能力所限,有些内容的理解可能会出现误解,如果有朋友恰巧路过发现了,能够指教一二那就真的是不胜感激了 ~\(≧▽≦)/~


Android的体系结构是由一系列的组件所构成的,所有的组件都是基于它下面的组件。

理解“组件”: 学习java的时候,因为概念比较抽象,所以一般老师都说把组件理解为java的类,那么这里是不是就可以理解为,安卓的体系结构是由一系列的“类”来构成的,当然,这些“类”所使用的实现语言、表达形式和功能肯定不尽相同。但目的都是:使用一种程序设计语言,设计出一个模型,这个模型实现了一个功能。android就是由这些功能模型构成的。

另外后半句话,我就理解为:上一层的类的功能的实现,需要调用下一层的类的方法才行吧。

内核:提供能基本的驱动程序。

将内核理解为:它拥有一些类,这些类的服务对象是硬件,通过类的方法可以达到让这些硬件“活过来”,工作起来的目的。也就是操作系统的能力了。那么这些驱使硬件得以工作的类应该就叫做驱动程序了。

运行库和Dalvik虚拟机:负责Android应用程序的生成和运行。每一个Android应用程序都在Dalvik虚拟机的一个实例中运行,而这个实例驻留在一个由Linux内核管理的进程之中。

由图的来,运行库包括核心库和虚拟机,通过读书所得,核心库相当于javaSE的类库,“它与虚拟机交互”:意味着虚拟机的工作需要调用核心库的类;同时,核心库为上层的应用程序编程提供了基本的类库。虚拟机相当于java虚拟机,不过这里的Dalvik针对移动设备进行了优化,而且它的运行需要使用dx工具,先将java的.class文件转化为DEX格式才能在虚拟机中运行。综上,“负责Android应用程序的生成和运行”这句话的意思,就可以理解为:将以java文件作为主体的程序源码翻译为DEX格式,这就生成了一个可以运行的程序,接下来生成Dalvik的一个实例由它负责运行应用程序,(这里就可以看出,每个android应用都有自己独立的虚拟机),而这个实例住在一个进程中,而维护这个“进程”概念的工具就是Linux内核的进程管理工具,这也印证了“所有的组件都是基于它下面的组件”这句话。

系统库:提供了一些javaSE功能的核心库,以及一套原生的C/C++库,多用于需要执行大量计算的任务,当然这些不是虚拟机的好选择。

“提供了一些javaSE功能的核心库”,为什么SE核心库被分别放在运行库和系统库中,从“当然这些不是虚拟机的好选择”这句话可以看出,放在系统库中的这部分javaSE核心类库的功能并不和虚拟机的胃口,那么这部分核心库实现了什么类型的功能呢,从“多用于需要执行大量计算的任务”看出,它们应该与“原生的C/C++库”的功能类似,都用于处理大计算量任务,而因为这部分是用C/C++实现的,那么在纯java环境下的android应用开发中使用它们肯定是不应景的,所以后面有说,这部分C/C++库通过应用框架层对外提供API接口,这样就统一了语言的问题,不管你是javaSE的功能还是由C/C++实现的功能,只需调用java API就可以使用这些功能了。

应用程序框架:应用程序框架将系统库和运行库结合在一起,构成了Android的用户端。开发人员通过一个java的API类库来创建各种应用。

这层是android应用开发人员的主要“工作场所”,这家会所提供了大量的甜点供程序猿品尝,做应用程序时需要什么功能支持,就去api里拽就行了,它拥有系统库的强大功能,以及运行应用程序所需的虚拟机和javaSE核心类库。虚拟机就是会所,javaSE核心类库和系统库类库就是各类甜点,所需要的就是尽情享受生活。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值