前言

下面是一张Android系统架构经典图示意图。大致分为5层,即Linux内核层,硬件抽象层、库和运行时,Framework层,和应用层。Android系统架构鼓励系统组件重用,共享组件间数据,并定义组件间访问权限控制。 

看图说话:

可以看到android给出的经典架构图大概可以把android分为5层,下面分别介绍:

1、Linux 

Linux内核层,android最底层最核心的部分,当我们打开手机setting,选择about phone选项,这一选项显示的内核版本就是我们所用的Linux内核版本。Linux层包含了android系统的核心服务,包括硬件驱动,进程管理,安全系统等。

2、HAL

硬件抽象层,它主要是为了移动邻域中标准不统一的的硬件驱动定义标准接口,屏蔽隔离掉Linux内核,避免android过分依赖Linux,HAL包含多个库模块,其中每个模块都为特定类型的硬件组件实现一组接口,比如音频/蓝牙模块。

3、AndroidRuntime与Standard libraries

3.1、AndroidRuntime中的Dalvik和ART

每个应用都在其自己的进程中运行,都有自己的虚拟机实例。在android4.4之前,代码的运行都要通过Dalvik,Dalvik包含一整套的android运行环境虚拟机,每个app都会分配Dalvik虚拟机来保证相互之间不受干扰,并保持独立,它的特点是运行时编译。在android4.4之后引入了ART机制,ART采用的是安装时就进行编译,以后运行时就不用编译,而在android5.X开始,Dalivik虚拟机被彻底抛弃,ART模式全面取代了Dalvik。因此android的app流畅度有很大改善,而在android7.0后还引入了混合编译模式(JIT + AOT),保证java运行效率的同时,安装app的速度大幅度提升。

3.2、Standard libraries

如图包含了android中的一些标准库。所谓标准,就是开发者在开源环境中可以使用的开发库。

4、Framework

如图包含了android framework的重点。这里是我们android应用开发者重点关注的地方,我们也会经常用到里面的服务与组件。

 

 

5、Application

这个层面就是用户在手机桌面可以看到的app应用。

图一

 

图二

 

图一和图二分别表示使用NDK和java开发的app主要构成,它们共同的特点都有Android Manifest文件,Dalvik Classes,Resource Bundle这几个东西,这些就是我们解压apk后的文件,与android最直接接触的就是SDK。

结语

Android系统架构说简单点可以用几张图表示,但却可以写几本书,所以掌握也并非一朝一夕之功,我们要有大概的认识,在以后的深入学习,就可以慢慢理解它的运行原理。

更多相关文章

  1. Android:使用VideoView(TV显示屏待机状态,循环播放演示视频)
  2. Android群英传第一章笔记·Android体系与系统架构
  3. Android(安卓)应用程序开发基础
  4. android 配置ADB环境
  5. Android布局管理器-详细解析布局实现
  6. Android——Tomcat+MySQL+Servlet,实现将Client传入的数据写入MyS
  7. Android(安卓)运行时权限处理(from jianshu)
  8. 华章IT图书书讯(2011年第6期)
  9. Android(安卓)强大的开发支持库组件AppFromwork框架详解

随机推荐

  1. Android: 如何打开assets or raw文件夹下
  2. How To Open An URL In Android’s Web B
  3. Ubunu下搭建android NDK环境
  4. Android保存32位BMP格式图片
  5. android web services6
  6. ActionBar神奇魅力2
  7. 自定义控件attrs文件里的属性
  8. Android并发修改异常:java.util.Concurren
  9. 【Android 应用开发】Android 开发环境下
  10. android listview实现表格样式