Android入门之系统架构了解
来源:互联网 发布:怎样手机网络理财投资 编辑:程序博客网 时间:2024/06/05 01:26
写在前面
对于每个Android初学者而言,往往写的第一个Android程序就是Hello Word !了,当然这也已经成为一个传统了。但是当写完这个,接下来其实就很有必要了解Android其本身的体系结构,这样在接下来的学习中会更有方向性和目标,所以在这里我简单的描述下我对Android体系架构的整理,并没有讲的太繁杂,因为毕竟入门时候我们只需要能清晰迅速的了解到它。算是抛砖引玉吧。
Android系统架构
Android的系统架构采用了分层架构的思想,如图所示。从底层到上层共包括四层,分别是Linux内核、系统库和Android运行时、应用框架层和应用程序程序层。
蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。在Application Framework之下,由C/C++的程序库组成,通过JNI完成从JAVA到C的调用。
Linux内核层(C/C++)
Android是基于Linux 2.6提供核心系统服务,主要实现安全管理、进程管理、内存管理、电源管理、硬件驱动管理, Linux 内核也同时作为硬件和软件栈之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
系统库与Android运行时(C/C++/Java)
系统库(这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务)包括九个子系统:
* Surface Manager - 对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。* MediaFramework - 媒体库,基于 PacketVideo OpenCORE,该库支持多种常用的图片、音频、视频格式* SQLite - 功能强劲的轻型关系型数据库引擎* OpenGL|ES - 3D图像渲染引擎,实现3D的软、硬加速* FreeType - 位图和字体矢量渲染引擎,即位图(bitmap)和矢量(vector)字体显示* Webkit - web浏览器引擎,支持Android浏览器和一个可嵌入的web视图* SGL - 2D图像渲染引擎* SSL - 互联网安全协议* libc - 系统 C 库,标准 C 系统函数库
Android运行时包括Java核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.NET、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。
以上两者一起构成了Android的应用环境基础
应用框架层(Java)
应用框架层是Google发布的核心应用所使用的API框架,开发人员可以完全访问并使用这些框架提供的API来快速开发自己的应用程序,它本身也是用Java语言实现和开发的。
隐藏在每个应用后面的是一系列的服务和系统(即手机中的应用在后台需要用到的android资源,是我们看不见的), 其中包括:
Activity Manager(界面管理)Window Manager(窗口管理)View Manager(视图管理)Notification Manager(通知管理)Content Provider(内容提供者)Package Manager(包管理)Resource Manager(资源管理)Location Manager(位置管理)
应用层(Java)
应用层是基于Android平台开发的应用,采用Java作为开发语言,包括系统自带的应用(Android会同一系列核心应用程序包一起发布,例如email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。)以及第三方开发的应用。
总结
了解了Android的整体架构,其实对于移动端的应用开发者而言,Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework
- Android入门之系统架构了解
- Android Studio之入门了解
- android入门之系统架构和环境搭建
- Android之系统架构
- Android系统之系统架构
- Android入门【2】-Android系统架构
- 【Android入门 一】Android的系统架构
- Android入门-Android系统的架构
- Android系统架构之微服务架构
- Android开发之系统架构
- solr入门之suggest系统架构搭建
- hbase快速入门之---系统架构
- android 入门之二【android 体系架构】
- 软件系统架构设计了解
- 5分钟了解系统架构
- android基于openfire+smack开发之【架构了解】
- Android基础之Android系统架构
- Android基础之Android系统架构
- 基于VirtualBox虚拟机安装Ubuntu图文教程
- ssm java编程遇到从数据库中查询的时间与存储时间不一致
- python自己编写模块
- caffe接口及命令操作
- make Image uImage与zImage的区别
- Android入门之系统架构了解
- Jmeter性能测试 入门
- Class(ACM ICPC 2008–2009, NEERC, Northern Subregional Contest)
- 批量安装当前目录下的apk文件
- CAFFE源码学习笔记之五-internal_thread
- Ubuntu下Redis安装
- 关于用集合的remove方法删除list集合中满足条件的元素问题
- day03_从键盘输入3个数,进行排序并从大到小输出
- String,StringBuffer、StringBuilde 详细介绍