我使用PHP访问我的数据库并在线生成一个XML文件。然后,我的android应用程序获取该XML文件,对其进行解析,并将数据插入SQLite数据库。
它工作得很好,但速度太慢了。我们有一个iOS应用程序和一个安卓应用程序都在做同样的事情.每当用户想要刷新数据时,安卓应用程序都要花费7-10秒,而iOS应用程序最多只需要2-3秒。
记录不多--平均30到50。有很多内容-一些大型文章,每一篇有2-10张照片(我不下载照片-只是导入他们的网址,size...etc)。
我学习了一个关于如何使用Sax导入XML (据说是最快的方法)的示例。
TLDR:
是否有更好的方法来格式化我的数据,使它比我现在做的更快呢?CSV?使用PHP生成SQLite插入语句?这方面的“规范”和/或“最佳”是什么?
编辑:读得越多,听起来就越像是JSON和之间的差别很小,如果是大数据(比如文章)而不是JSON,使用甚至可以更快。不确定这是正确的,只是进一步阅读的细节。
发布于 2012-07-25 14:36:43
您应该尝试使用JSON而不是XML,我认为使用它可能要快得多。Android支持它,据我所知,iOS也能处理它。
发布于 2012-07-25 14:48:05
与其使用XML或JSON,不如查看谷歌的Protobuf:
https://developers.google.com/protocol-buffers/docs/overview
http://code.google.com/p/protobuf/
由于您使用的是PHP,因此需要找到适合您的实现,下面是一个列表:
http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns
展望未来,这将是一个非常好的传输和马歇尔数据的方式。如果这对你有用,请告诉我们。
发布于 2012-07-25 14:48:31
我曾经创建一个SQLite db文件并将其gzip,然后在设备上解压缩并直接使用它。(肯定不是个好办法)
对于以后的数据更新,我使用json来传输数据。JSON当然可以处理大型文章,但是如果您愿意的话,可以将urls放在JSON中的文章中,然后在后续的传输中获取它们。
https://stackoverflow.com/questions/11652122
复制相似问题