您的位置:首页 > 运维架构 > 网站架构

使用Android库项目时适用的架构模式

2015-11-22 20:02 495 查看
在Android库项目(Library Project)发布之前,在不同Android项目间共享代码是很困难甚至是不可能的。通常使用JAR包共享Java代码,但是却无法共享那些需要引用资源文件的代码。共享Activity或者自定义视图是不可能的,因为开发者无法把资源文件添加到JAR包中,供其它应用程序使用。为了解决共享代码的问题,Android库项目应运而生了。

在这个demo里,我们会展示库项目的使用方法,并且会创建一个具有登陆界面的小应用程序作为本demo的示例程序,该程序划分为以下三层结构:

1、后台逻辑和模型(JAR文件)

2、Android库项目

3、Android应用程序

后台逻辑和模型

本层是一个简单的JAR文件,该文件可以包含业务逻辑,并且不使用Android平台特有的代码。我们把请求服务器的代码、业务对象以及业务逻辑放置在该层。在示例程序中,有一个可以编译成JAR文件的项目(Login),用于实现具体的登陆功能。

在Login项目中,Login类并不依赖于Android平台。该项目输出文件是一个JAR包,可以将该JAR包引入到Android应用程序中。在Java项目中实现业务逻辑意味着可以直接使用JUnit测试所有代码,这样避免了构建Android测试环境所带来的麻烦。此外,代码分成可以使不同技术背景的开发者专注于各自所擅长的层。

Android库项目

Android库项目类似于JAR包,但是却可以使用Android资源文件。将Android库项目设置为某个应用程序的依赖项目时,该应用程序就拥有了第二个R类,该R类中包含了库项目的资源ID信息,因此我们便可以在代码中使用库项目所属的资源文件。本层包含的Android平台特定的Activity、自定义视图或者Service等都是可以复用的。

库项目可以使用上一小节提到的JAR包作为依赖库。在本例中,我们便将JAR包设置为库项目的依赖库。通过这种方式,开发者便拥有了一个可以用于任何Android项目,并且模块化、易维护的库。

Android应用程序

最终的Android应用程序通过后台逻辑和模型层的JAR包处理与平台无关的业务逻辑,通过Android库项目处理与Android平台相关的逻辑。

在本层,我们既可以使用JAR包中的代码,也可以使用Android库项目中的代码。此时开发应用程序,只需要处理代码在不同层的分布问题。

本demo对使用库项目时适用的架构设计作了简要介绍。代码可重用且易维护是难以实现的,但是现在有了Android库项目,一切皆有可能。

代码地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: