有效启动应用程序的最佳方式

时间:2013-10-03 08:08:38

标签: java android json sqlite android-volley

问题在于,我想知道启动需要的Android应用程序的最有效方法是什么:

使用WebServices下载

1 - xml / json流(text,image url,dataq,...)

2 - 数据保存在sqlite中,然后加载到应用程序中使用(数据来自1 - )

3 - 加载的SharedPreference中保存的数据也可以在应用程序中使用(某些用户输入)

4 - 要从网址下载的图片(网址来自1 - )

我需要的是一个很好的方法来启动具有所有约束的应用程序(从webservice,sqlite insert / update,...等加载数据)但是要尽可能快地启动应用程序并且要加载的数据必须有效。

2 个答案:

答案 0 :(得分:1)

我会说,在纯粹的速度上这是顺序; SharedPref - SQLite - xml / json。

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

SharedPreferences不是用于保存整个数据结构,只是为了简单的事情,只需要保留一段时间的小设置。

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

答案 1 :(得分:1)

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

对于图像加载,UIL是最有效和最成熟的(因此,在7月我的基准测试,Picasso和Volley也是如此)。

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

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

如果您需要传递“嘿,新数据在数据库刷新中可用”等事件,请不要制作样板接口。使用事件总线这很棒EventBus