e-works数字化企业网  »  文章频道  »  基础信息化  »  移动应用

基于Android系统的移动应用整体架构分析与设计

2017/5/21    来源:公安部第一研究所    作者:于炳虎      
关键字:Android  移动应用  
近两年,随着智能手机的普及和移动互联网的兴起,带动了移动应用市场的快速发展,移动APP逐渐成为互联网用户新入口,重要性越来越突出,用户对APP产品的功能性和非功能性的要求也越来越高。

    3.整体架构的设计与实现
 
    优秀的A P P架构应该具有清晰的层次划分,功能模块划分和业务逻辑划分,同一层模块间充分解耦,模块内部高内聚,各分层设计符合面向对象设计六大原则,提高程序的封装性、复用性、可维护性,最后应该在功能,性能,稳定性等方面达到综合最优。基于此,APP架构可分为四层,如图4所示,最顶层是应用层,是面向用户的第一层,然后是应用组件层,提供了封装组件服务,再下是基础组件层,为A P P提供基础功能组件,最下面是系统层,直接面向系统底层开发。
 
    3.1 应用层
 
    应用层专注于业务领域的实现,与需求的业务功能关联,直接面向用户,是用户对产品感知的第一层,应用层包含以下细分的三层,如图5所示。
 
    (1)视图层,与用户直接交互的界面,是用户和系统之间交流的桥梁,它一方面为用户提供了交互的工具,另一方面也为显示和数据处理实现了一定的逻辑,协调用户和系统的操作。(2)业务层,包含了APP需要的所有功能上的算法和逻辑处理,并与数据层和视图层交互。抽象的说,业务层是处理与业务相关的部分,包含一系列的执行与数据的操作。(3)数据层,提供访问数据的功能,在分层设计中,所有读取数据或写入数据的工作都属于这一层的任务,不做过多的数据逻辑处理,操作的是非原始数据。
 
    3.2 应用组件层
 
    应用组件层为上层封装业务功能,以服务的表现形式提供,不涉及U I和平台的特性,应用组件层的服务是独立的,可移植的,不依赖特定的开发和使用环境,如图6所示,主要包括有社交分享、推送服务、扫码组件、键盘组件、手势密码等。
 
应用组件层架构
 
图6 应用组件层架构
 
基础组件层架构
 
图7 基础组件层架构
 
系统层架构
 
图8 系统层架构
 
    3.3 基础组件层
 
    基础组件是相对于业务功能来说的,它是对复用率比较高的代码的一种抽离,它提供A P P的公有特性,实现依赖特定的平台环境,这一层也是用户对产品的一种感知,这种感知表现在稳定性、性能等方面,直接关系到产品的用户体验。如图7所示主要包括有数据库操作、网络通信处理、日志记录、图片缓存、数据解析(JSON/XML)、加解密等。
 
    3.4 系统层
 
    系统层主要是基于底层的一些系统模块,如图8所示,主要包括进程通信、线程管理、内存管理、消息处理等,在Android APP的开发中,进程和内存的管理是较难处理的,Android采取了一种有别于Linux的进程管理策略,在进程活动停止后并不立刻结束该进程,Android把这些进程都保留在内存中,直到系统需要更多内存为止。这些保留在内存中的进程通常情况下不会影响整体系统的运行速度,并且当用户再次激活这些进程时,提升了进程的启动速度,Android其实已经为开发者做好了很多事情,系统层的开发应多参考源码标准。
 
    4.关键技术实现
 
    4.1 应用层
 
    应用层作为与用户交互的第一层,直接影响着用户的交互体验,因此采用成熟的设计框架更为稳妥,本文分析了Android中常用的UI设计架构模式,MVC的设计思想是从Model出发,而没有考虑到View端的复杂性,这样导致的问题是Model难以符合复杂多变的View端变化。相对这点,MVP和MVVM就要好得多。它们都独立出了Presenter 和ViewModel来对应每个View。MVP模式是一个真正意义上的隔离View的细节和复杂性的模式,在MVP模式中的V代表的是一个接口,一个将U I界面提炼而抽象出来的接口。接口意味着任何实现了该接口的界面,都能够复用已有的Presenter和Model代码。在MVVM模式中,一个ViewModel和一个View匹配,它没有MVP中的IView接口,而是完全的和Vie w绑定,所有Vi ew中的修改变化,都会自动更新到ViewModel中,同时ViewModel的任何变化也会自动同步到View上显示。MVP与MVVM两者没有严格的好坏之分,在具体选择实现时,还是要要具体分析AP P的需求复杂度和具体的业务场景。
 
    4.2 应用组件层
 
    应用组件层为上层封装业务功能,以服务的表现形式提供,社交分享、推送服务等,它们的实现最简单的方式就是使用第三方平台,具体的整合,第三方平台都已经提供了很完善的API接口文档。同时补充一点,事件总线也分布在此层,在Android系统中,事件总线简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。
 
    4.3 基础组件层
 
    基础组件层提供A P P的公有特性,数据库操作是应尽量使用ORM框架,ORM是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。现在较为成熟的是ORMLite与GreenDao。网络、图片、JSON等的处理,依靠成熟的框架是较为明智的选择。日志记录是一个基础且极为重要的组件,可帮助开发人员代码调试,快速错误定位,Android系统中提供了Log类来记录日志,使用起来方便简单,也可以使用功能更为强大的开源日志记录库Logger,具体的选择依赖于开发者的使用习惯。
 
    4.4 系统层
 
    系统层的开发更偏向于Linux环境开发,Android系统是以L i n ux内核为基础,所以对于进程的管理自然离不开Linux本身提供的机制。在Android系统中,进程可以大致分为系统进程和应用进程两大类,开发者更多关注的是应用进程,Android应用程序是通过消息来驱动的,系统为每一个应用程序维护一个消息队列,应用程序的主线程不断地从这个消息队列中获取消息,然后对这些消息进行处理,这样就实现了通过消息来驱动应用程序的执行。系统层的开发实现,Android提供了较为丰富的实现方式,包括上层Java的封装实现,和下层C/C++的底层实现。本文不再详细介绍。
 
    5. 结束语
 
    本文通过一系列的分层与整合,剥离和组合等方式优化了A P P应用的整体架构,在关键技术实现上,本文也给出了一定的技术指导。在应用的设计开发中使用分层架构模式,一方面能提高APP的功能性、稳定性和可维护性,另一方面提高了用户的产品使用体验,这样才能促使AP P产品长期发展下去。
 
责任编辑:李欢
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐