安卓架构设计

先上一张总图,这是一张较为完整的安卓平台架构图,从上层到底层共包括四层,分别是应用程序程序层、应用框架层、系统库和Android运行时和Linux内核。 蓝色的

先上一张总图,这是一张较为完整的安卓平台架构图,从上层到底层共包括四层,分别是应用程序程序层、应用框架层、系统库和Android运行时和Linux内核。

蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。在Application Framework之下,由C/C++的程序库组成,通过JNI完成从JAVA到C的调用。


 

我主要负责 应用程序层(application),这层的内容比较少,

Android的应用程序主要是用户界面(User Interface)方面的,通常用Java语言编写,其中还可以包含各种资源文件(放置在res目录中)、Java程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home)、联系人(Contact)、电话(Phone)以及浏览器(Brower)等众多的核心应用。

这些应用程序都是用Java 语言编写的,并且由于安卓开源的特性,这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。应用程序开发人员在开发时处于应用程序层,调用下层应用程序框架中的API 进行开发。

 

下面介绍APK(Android Package)


 

Android应用程序是用Java编程语言写的。编译后的Java代码——包括应用程序要求的任何数据和资源文件,通过aapt工具捆绑成一个Android包,归档文件以.apk为后缀。这个文件是分发应用程序和安装到移动设备的中介或工具,用户下载这个文件到他们的设备上。一个.apk文件中的所有代码被认为是一个应用程序。

 

下面简单说说用户界面


 

安卓用户界面框架采用MVC(Model View Controller)模型

这里写图片描述

用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。


 

 

自己的看法:安卓采用软件堆栈的架构,结构清晰,分工明确。而且所有的应用程序都是在虚机上运行的,使得只要移植了Android系统,Android应用就能在任意的硬件平台上面跑起来。非常便捷。