14

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

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

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

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

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

我很好奇有经验的安卓开发者是如何处理这些设计问题的......

4

2 回答 2

10

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

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

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

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

3-持久层。

根据 Dobjanschi 的介绍,我通常让数据请求在服务中运行,而不是在活动内的线程工作者中。

于 2012-11-13T04:06:04.377 回答
6

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

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

这篇文章也将帮助你:

需要实现 Virgil Dobjanschi REST 实现模式的示例 Android REST 客户端项目

于 2012-11-13T03:42:29.390 回答