android 基本架构
Android 基本架构
android的系统架构,说简单点,可以用一张图来表示,说复杂点,可以写成几千页的书,这里只做简单介绍。
这是一张讲解android架构的经典示意图。它将android大致分为四层,即Linux内核层,库和运行时,Framework层和应用层。
android 的体系架构鼓励系统组件重用,共享组建化间的数据,并且定义组件间访问权限控制。可以说,这些层次结构既是相互独立,又是相互联系。
这里写图片描述
Applications(应用层)
-
所有安装在手机上的应用程序都是属于这一层的,比如系统自带的联系人、短信等程序,或者是你从Google Play上下载的小游戏,当然还包括你自己开发的程序。
-
android 会同一些列核心的应用程序包一起发布,该应用层包括HOME客户端,SMS短信息,浏览器,联系人管理程序等等,所有的应用程序都是使用java编写的。(不久前的2017谷歌大会宣布开始支持Kotlin的编写,未来可能就是用kotlin编写的了)
Framework
-
这一层主要就是提供了构建应用程序时可能用到的各种API,android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序。
-
1.通过提供开放的开发平台,android使开发者能够编制及其丰富和新颖的应用程序。开发者可以自由的利用设备硬件优势,访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。
-
2.开发者可以完全使用核心应用程序所使用的框架API。应用程序的体系结构旨在简化组件的重用,在任何时候都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。
Libraries
-
这一层通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供数据库的支持,OpenGL|ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。
-
同样,在这一层中还有android运行时的库,它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。另外,android运行时库还包含了Dalvik 虚拟机(5.0系统之后改为ART运行环境),它使得每一个android应用都能在运行独立的进程当中,并且拥有一个自己的Dalvik虚拟机实例。相比较于java虚拟机,Dalvik是专门为移动设备定制的,它针对于手机内存、CPU性能有限等做了优化处理。
Linux 内核层
android系统是基于Linux内核的,这一层为android设备的各种硬件提供了底层的驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动,WIFI驱动、电源管理等等。