Android体系架构介绍
2015-11-18 10:40
399 查看
Android系统采用了四层的架构模式,自下向上依次为:Linux内核层、系统库和Android运行时、应用程序框架层、应用程序层。下面将对上述四层框架进行简单的介绍:
一、Linux内核
Android核心系统服务基于Linux2.6内核的,如安全性、内存管理、进程管理、网络协议栈和驱动模型等皆依赖于该Linux内核。Linux内核也是作为硬件与软件栈的抽象层。Linux内核中定义了很多Android设备运行所需要的驱动程序,如显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。
二、系统库和Android运行时
系统库主要是使用C/C++语言编写的,包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.net、android.media等等。
后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。
三、应用程序框架层
该层是Android应用开发的基础,包括活动管理器(ActivityManager)、窗口管理器(WindowManager)、内容提供者(ContentProvider)、视图系统(View和ViewGroup)、包管理器(PackageManager)、电话管理器、资源管理器(Resources)、位置管理器(LocationManager)、通知管理器(NotificationManager)和XMPP服务十个部分。
在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。
四、应用程序层
该层是应用Java语言编写的,运行在Android平台上的程序。该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。
总结:Android程序就是架构在Linux内核之上,运行在dalvic Java虚拟机上的移动用用程序(当然,自2014年6月后很多高版本的Android系统应用在ART虚拟机)。
一、Linux内核
Android核心系统服务基于Linux2.6内核的,如安全性、内存管理、进程管理、网络协议栈和驱动模型等皆依赖于该Linux内核。Linux内核也是作为硬件与软件栈的抽象层。Linux内核中定义了很多Android设备运行所需要的驱动程序,如显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。
二、系统库和Android运行时
系统库主要是使用C/C++语言编写的,包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.net、android.media等等。
后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。
三、应用程序框架层
该层是Android应用开发的基础,包括活动管理器(ActivityManager)、窗口管理器(WindowManager)、内容提供者(ContentProvider)、视图系统(View和ViewGroup)、包管理器(PackageManager)、电话管理器、资源管理器(Resources)、位置管理器(LocationManager)、通知管理器(NotificationManager)和XMPP服务十个部分。
在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。
四、应用程序层
该层是应用Java语言编写的,运行在Android平台上的程序。该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。
总结:Android程序就是架构在Linux内核之上,运行在dalvic Java虚拟机上的移动用用程序(当然,自2014年6月后很多高版本的Android系统应用在ART虚拟机)。
相关文章推荐
- 实现网站访问人数统计
- RESTful 是什么?一起来理解 RESTful 架构
- LANMP架构安装支持库和常用编译参数
- 提升网站性能开发的10个技巧
- WordPress网站性能优化指南
- JavaScript统计网站访问次数的实现代码
- 提升网站性能开发的10个技巧
- DOS之创建项目之目录架构
- 福利:前端工程师都喜欢逛那些网站来补充自己
- 操作系统原理番外篇 - 硬件架构
- 前端学习网站
- 新型网站开发之:从服务端取数据的最简方法
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 三仙山系统架构
- Linux I2C驱动分析(一)----I2C架构和总线驱动
- 淘宝架构框架
- Android系统运行架构之--生产-消费者模型详解
- 总结一下学习android开发的网站
- 理解多层分布式架构、剖析webservice、remoting技术
- 淘宝应对"双11"的技术架构分析