0

It's in the question, I would like to know what is the most efficient way to start an Android application that need :

1- xml/json stream to be downloaded with WebServices (text, image url, dataq, ...)

2- Data saved in sqlite, and then loaded to be used in the application (data from 1-)

3- Data saved in SharedPreference loaded to be used in the application too (some user inputs)

4- Images to be downloaded from url (urls from 1-)

What I need is a good way to start an application with all the constraints (data loading from webservice, sqlite insert/update, ...etc) but for the application to be launched the fastest possible and the data to be loaded the must efficiently.

4

2 回答 2

1

好问题 !我会用一个很棒的库列表来回答。首先,您应该明确地看看AndroidAnnotations 这将真正简化您的工作。不要害怕注释上的性能。这不是反射,而是编译步骤。它确实简化了共享偏好的使用。对于 http 的东西,spring非常好,并且与 android 注释很好地集成在一起。我从未在 WS 中使用过 xml,但对于 json 映射,我使用 Jackson,它非常快速且灵活。我认为 gson 也做得很好。

对于图像加载,UIL 是最有效和最成熟的(所以,我在 7 月份进行基准测试时就是这种情况,Picasso 和 Volley 也是如此)。

目前我还没有找到 ORM saint graal,但我的建议是“你真的需要数据库吗?” 如果您有疑问退避。如果你需要它,ormlite 有一些性能问题。在我的下一个项目中,我将尝试使用 greenDao。

明确地为 ListView+ SQLite 使用 CursorAdapter,而不是在 Listview 中加载。但请确保不要同时密集访问数据库(WS 写入)。

如果您需要传递诸如“嘿,数据库刷新中有新数据可用”之类的事件,请不要制作样板接口。使用事件总线,这太棒了 EventBus

于 2013-10-03T09:24:37.397 回答
1

我会说这就是纯粹的速度。SharedPref - SQLite - xml/json。

建立网络连接总是比在机器本身上进行本地操作要慢。即使条件不完美,也无法保证完美的移动互联网和服务器性能。在那之后,你仍然需要解析它。

SharedPreferences 不是为了保存整个数据结构而设计的,只是为了简单的事情,比如你想保留一段时间的小设置。

您想要对数据执行的操作是从服务器加载一次。最好不显示加载屏幕等。将其保存到 SQLite 数据库中。在下一次启动时,您可以(几乎)立即显示数据库中的数据,并在后台从 web 服务进行更新以保持最新状态。

于 2013-10-03T08:15:51.640 回答