Java 从服务器下载二进制的大型SQLite数据库与在设备上创建数据库
我有一个应用程序,需要创建和下载一个非常大的SQLite数据库。根据用户的数据,创建数据库和从服务器同步数据可能需要20到25分钟(有些客户有大量数据)。数据作为JSON下载,并使用Android内置的JSON类进行处理 为了解决我在某些设备上遇到的OutOfMemory问题,我需要将每次从服务器下载的通话次数限制为500条记录。但是,到目前为止,上述所有措施都取得了成功——尽管进展缓慢 最近,我的团队讨论在服务器端创建完整的SQLite db,然后将其以二进制形式下载到设备上,以加快速度。我以前从未这样做过。这真的是一个可行的选择吗?还是我应该通过GSON或Jackson这样的第三方库来加快JSON的处理速度Java 从服务器下载二进制的大型SQLite数据库与在设备上创建数据库,java,android,json,sqlite,Java,Android,Json,Sqlite,我有一个应用程序,需要创建和下载一个非常大的SQLite数据库。根据用户的数据,创建数据库和从服务器同步数据可能需要20到25分钟(有些客户有大量数据)。数据作为JSON下载,并使用Android内置的JSON类进行处理 为了解决我在某些设备上遇到的OutOfMemory问题,我需要将每次从服务器下载的通话次数限制为500条记录。但是,到目前为止,上述所有措施都取得了成功——尽管进展缓慢 最近,我的团队讨论在服务器端创建完整的SQLite db,然后将其以二进制形式下载到设备上,以加快速度。我以
提前感谢您的投入。根据我在移动设备方面的经验,在大多数情况下,重新发明同步是一种过火的行为。这显然取决于您使用的硬件、软件和数据量。但是,移动设备上长时间的操作执行时间大多是由于设计错误、编码粗心或未考虑嵌入式系统的细节造成的 不幸的是,我只能给你一些你可以考虑的暗示,对你所面临的问题给出了非常模糊的描述。我的意思是“很多”对我来说意义不大——我见过DBs上的移动应用程序包含数百万条记录,运行非常平稳,而那些有大约1K条记录的应用程序运行速度非常慢,导致UI冻结。您也没有提到您正在使用的操作系统版本和设备(或至少它的功能)。服务器配置是什么,安装了什么软件,使用了什么库/框架,以及采用了什么模式。当你真的想加快速度时,这一切都很重要 除了编码为gzip(我相信您保留了默认值,即上的),您还应该尝试一下这个想法:
我假设您已经将GZIP压缩应用于JSON,同时将其发送到Android客户端?事实上,没有-如果实现更快的JSON库,这肯定是整个解决方案的一个元素。但是,单凭这一点是没有多大帮助的,因为在处理插入数据库的JSON记录方面似乎存在瓶颈。无论如何,在修改现有的实现之前,我真的很想就我原来的问题获得一些意见。谢谢你的主意,菲利普。我发表了评论并投了赞成票。