Android架构设计 – 如何做到正确?

一个Android应用程序的良好架构如何?所有的“工作/业务逻辑”都应该在后台服务中完成,并且活动只与服务通信从某个地方(本地/远程)查询/获取数据?

您会实施活动称为真正Android服务的“服务”吗?或者一个POJO-Singleton来完成这个工作(也许使用后台线程)。或实例化您的活动中的后台线程耗时的操作(查询webservice)。

您如何以正确的方式抽象数据访问?你会使用ContentProvider来访问/抽象你的数据吗?如何/从哪里查询?活动?服务? ..?

我试图搜索一个很好的应用程序架构设计,但我只是发现了Android架构如何,而不是Android应用程序的外观。

那么你对此有何看法? Android应用程序的哪些组件应该相互通信,以确保最佳的可扩展性/封装,…?

这个问题没有任何答案。好的OO设计不是Android的具体。我会说,规则是 – 如果框架为您提供了一个适合您用例的高级对象(如适用于Android的Service),请使用它。如果您发现自己将POJO实现与框架免费获得相同的事情,请参阅框架。

就分离问题而言,这是标准的OO的东西。不要把任何不属于活动的活动的Activity放在Activity类中。使用活动需要但不是活动的工作的方法和属性填充活动是坏的 – 使您的活动的意图难以理解。

我通常将东西分为我的应用程序中的子包。

> com.myname.myproject.app – 基类,全局应用程序功能
> com.myname.myproject.net – 网络东西,网络相关的utils
> com.myname.myproject.data – db helpers,providers等
> com.myname.myproject.model – 对象模型

等等

就你应用程式内的沟通而言…

我总是有一个在清单中注册的自定义应用程序类。这样,当我有控制器和帮助者需要是一个“单一实例”时,我不必做所有这些疯狂的线程安全的单身人物…我只是保留一个全球副本。

RoboGuice是一个依赖注入框架,使这更容易完成…绝对值得研究。如果这对您感兴趣,Google Group for RoboGuice是伟大的,并且不断填补框架的创建者,基本上可以回答您需要的任何内容。

就应用程序间通信而言,我使用我的单实例Controller和State类保持状态并执行常见任务,我通常使用BroadcastIntents来回传送服务

http://stackoverflow.com/questions/5093457/android-architecture-design-how-to-do-it-right

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Android架构设计 – 如何做到正确?