使用Android库项目时适用的架构模式
2015-11-22 20:02
495 查看
在Android库项目(Library Project)发布之前,在不同Android项目间共享代码是很困难甚至是不可能的。通常使用JAR包共享Java代码,但是却无法共享那些需要引用资源文件的代码。共享Activity或者自定义视图是不可能的,因为开发者无法把资源文件添加到JAR包中,供其它应用程序使用。为了解决共享代码的问题,Android库项目应运而生了。
在这个demo里,我们会展示库项目的使用方法,并且会创建一个具有登陆界面的小应用程序作为本demo的示例程序,该程序划分为以下三层结构:
1、后台逻辑和模型(JAR文件)
2、Android库项目
3、Android应用程序
在Login项目中,Login类并不依赖于Android平台。该项目输出文件是一个JAR包,可以将该JAR包引入到Android应用程序中。在Java项目中实现业务逻辑意味着可以直接使用JUnit测试所有代码,这样避免了构建Android测试环境所带来的麻烦。此外,代码分成可以使不同技术背景的开发者专注于各自所擅长的层。
库项目可以使用上一小节提到的JAR包作为依赖库。在本例中,我们便将JAR包设置为库项目的依赖库。通过这种方式,开发者便拥有了一个可以用于任何Android项目,并且模块化、易维护的库。
在本层,我们既可以使用JAR包中的代码,也可以使用Android库项目中的代码。此时开发应用程序,只需要处理代码在不同层的分布问题。
本demo对使用库项目时适用的架构设计作了简要介绍。代码可重用且易维护是难以实现的,但是现在有了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库项目,一切皆有可能。
代码地址
相关文章推荐
- 网站浮动窗口 备忘
- IIS发布网站遇到的异常
- 推荐几个配色和图标网站
- 支付宝手机网站支付私钥公钥生成(window环境)
- 腾讯微信技术总监周颢:一亿用户增长背后的架构秘密
- Extjs的架构设计思考,单页面应用 or 多页面?
- 架构那些事3--架构演进
- 架构的那些事2--安卓的奋进
- 架构的那些事1--分层框架
- 卢松松博客加入360网站认证
- 一个统计网站访问IP的实例
- 第一次撰写个人网站的一点技术总结
- (转)RabbitMQ 集群与高可用配置
- 网站大并发处理
- 软件架构师?全栈工程师?CTO?不要升职!不要升职!不要升职!!
- 比较好的java学习网站
- git+新浪云 实践 : 网站应用搭建
- 为何不把握时间开发产品? 为何耗费宝贵的时间争论工作量? 将产品快速推向市场的铁三角: SEMAT Essence, 产品级敏捷与微服务架构
- Web项目代码架构研究
- WebKit之架构模型