Android客户端应用程序中“数据层”的最佳实践

时间:2012-11-13 03:39:43

标签: android design-patterns data-access-layer remote-access application-design

这是一个设计/最佳实践问题..

我是Android开发新手,基本上是Web /移动解决方案的新手。

所以,我的问题是 - 在组织从远程服务器获取数据的android应用程序结构时,最佳做法是什么?

请求服务器进入一个与服务器进行通信的类(获取和发布请求),还是应该将我的请求看作数据源,这意味着每个数据类都为自己管理它?

或者我应该有更多抽象级别 - 一个级别用于获取数据,另一个级别用于使用某些接口的模型而不知道源数据来自哪个?

我很好奇Android开发人员如何处理这些设计问题...

2 个答案:

答案 0 :(得分:10)

Virgil Dobjanschi presentation是一个很好的资源,如前所述,它基本上告诉您从后台服务运行您的请求,这样活动就不会被破坏,并且尽可能早地将数据存储在数据库中。

有关更多技术细节,我这样做的方法是将应用程序分为三个部分:

1-用于封装HTTP请求和响应(使用ApacheHTTP)的处理,它可以处理简单的请求/响应以及可能涉及cookie(可能需要登录)和修改HTTP标头的高级功能。

2- Marshal / Unmarsha图层,我解析服务器数据(例如XML或JSON)并将其转换为我的应用程序其余部分将处理的对象(即模型)。

3-持久层。

根据Dobjanschi的演示文稿,我通常会在活动中的线程工作者的服务而不是中运行数据请求。

答案 1 :(得分:6)

使用此Google I / O演讲中提供的3个模型之一。它为您提供建议,帮助您完成应用程序架构定义的整个过程。它还可以防止初学者犯下常见错误:

http://www.youtube.com/watch?v=xHXn3Kg2IQE

这篇文章也会帮助你:

Need sample Android REST Client project which implements Virgil Dobjanschi REST implementation pattern