【编程语言】Android--体系结构

来源:互联网 发布:淘宝旺铺智能版装修 编辑:程序博客网 时间:2024/04/29 15:11

从多方面理解Android体系结构

参考:多方面理解Android体系结构

一、以分层的方式来看Android

首先看一下官方关于Android体系结构的图:

1)Linux Kernel:负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。

2) Libraries和Android Runtime(库文件和运行环境):

      Libraries:即C/C++函数库部分,大多数都是开放源代码的函数库,例如WebKit,该函数库负责Android网页浏览器的运行,例如标准的C函数库Libc、OpenSSL、SQLite等,当然也包括支持游戏开发2D SGL和3D OpenGL | ES,在多媒体方面有MediaFramework框架来支持各种影音和图形文件的播放与显示,例如MPEG4、H.264、MP3、AAC、AMR、JPG和PNG等众多的多媒体文件格式。

     Runtime:负责解释和执行生成的Dalvik格式的字节码。

3)Application Framework(应用软件架构):Java应用程序开发人员主要是使用该层封装好的API进行快速开发。

4)Applications(Android应用程序层)::Android内置的Google Maps、E-mail、即时通信工具、浏览器、MP3播放器等处于该层,Java开发人员开发的程序也处于该层,而且和内置的应用程序具有平等的位置,可以调用内置的应用程序,也可以替换内置的应用程序。

优点:上面四个层次中,下层给上层服务,上层支持下层支持,调用下层的服务,这种严格的分层机制,为Android系统带来很大的灵活性,稳定性和可扩展性。也利于不同层的开发人员专心于该层次的开发任务。

二、以MVC模式来看Android结构

这里还是拿官方的一个图来简单说明一下Android系统中所蕴藏的MVC模式:

 

 

MVC的概念相信凡是做过软件的人都会接触到这个理念,即Model、View、Controller三层结构。

1)、模型(Model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。

2)、视图(View)对象:是应用程序中负责生成用户界面的部分。也是在整个MVC架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。注意这里只简单负责与用户交互相关的任务。

3)、控制器(Control)对象:是根据用户的输入,控制用户界面数据显示及更新Model对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给M哦得了处理。

在Android里MVC模式体现在:

模型层(Model):对数据库的操作、对网络等的操作都应该在Model里面处理,当然对业务计算等操作也是必须放在的该层的。

视图层(View):一般采用XML文件进行界面的描述,使用的时候可以非常方便的引入,(当然,如何你对Android了解的比较的多了话,就一定可以想到在Android中也可以使用JavaScript+HTML等的方式作为View层,当然这里需要进行Java和JavaScript之间的通信,幸运的是,Android提供了它们之间非常方便的通信实现。)

控制层(Controller):Android的控制层的任务主要是由众多的Acitvity的实现,这句话也就暗含了不要在Acitivity中写代码,要通过Activity交给Model业务逻辑层处理,这样做的另外一个原因是Android中的Acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。

三、以常见的设计模式来理解Android

Android的应用开发是基于面向对象的JAVA语言,要想发挥面向对象的优势,免不了要使用常见的设计模式,Android系统在这点上也不例外,也不排除它在这方面会有过人之处,不然Android系统会那么受欢迎。

常用的设计模式有:

[java] view plaincopyprint?
  1. * Template Method模式  
  2. * Factory Method模式  
  3. * Observer模式  
  4. * Abstract Factory模式  
  5. * Adapter模式  
  6. * Composite模式  
  7. * Strategy模式  
  8. * State模式  
  9. * Proxy模式  
  10. * Bridge模式  
  11. * Iterator模式  
  12. * Mediator模式  
  13. * Façade模式  
 

如果有精力阅读Android的源代码,就会发现设计模式无处不在了,呵呵。

四、以IOC(控制反转)的思想来理解Android

IOC控制反转的另一个名字就是依赖注入,简单的说就是将对象、组件以及服务之间的依赖分离开,通常采用配置文件或回调的方式在开发时分离,使其相对独立,在运行时由容器(这里就是指Android的框架)来根据实际需要来将相关的依赖关系注入到相应的对象、组件中。

在Android中常见是例如Activity的常用函数Oncreate()方法,通俗地说就是你不用来找我,我会来找你的。在开发时对这个软件层次更容易理解,专注于关键的几个地方,大大提高了开发效率。

原创粉丝点击