首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用android打包大型数据库

用android打包大型数据库
EN

Stack Overflow用户
提问于 2013-03-14 19:54:10
回答 2查看 1.6K关注 0票数 2

我想打包一个大的sqlite数据库与安卓应用程序,大约200-300MB。据我所知,我的选择是把它放在assets文件夹中,并在运行时复制出来,导致重复数据,或者在运行时从web上下载数据库。我不想为这个应用程序创建一个get服务器,所以我想创建一个单独的应用程序,它只安装数据库来绕过数据复制问题。

所有这些都很糟糕,我想知道是否有更好的解决方案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-16 07:15:55

我测试了apk expansion files。我创建了一个带有100MB sqlite数据库的测试应用程序,并将apk和数据库上传到play商店。然后我把应用程序下载到手机上,同时下载了数据库。数据库被自动重命名并放置在可公开访问的目录中:

代码语言:javascript
复制
/storage/sdcard0/Android/obb/com.example.app/main.1.com.example.app.obb

该应用程序能够毫无问题地打开数据库,但需要外部读写权限。新的和原来的数据库是逐位的,相同的。对于我的用例,这似乎是最好的解决方案。

有几个问题,新的android开发者控制台不支持上传扩展文件,所以需要使用旧的。Google只允许2个扩展文件,所以这对于某些用例来说可能是个问题。谷歌表示,你不能重命名或删除文件,如果你的应用程序没有自动安装,你的应用程序必须能够从谷歌本身下载文件。

票数 0
EN

Stack Overflow用户

发布于 2013-03-14 20:41:30

首先,我不认为你被允许在你的assets文件夹中放置一个200-300MB的数据库,并将其作为一个apk分发,因为apk文件大小的硬限制是(根据google的文档)50MB,我怀疑你的数据库是否能压缩到这个程度。Google引入了"APK扩展文件“,用于将大型文件打包到apk中。你可以在这里阅读所有关于它们的内容:http://developer.android.com/google/play/expansion-files.html

我认为(但我自己没有使用扩展文件的经验)这不会解决你提到的因为需要复制数据库文件而不得不处理重复数据的问题,但至少这将在某种意义上帮助你,因为你不必在自己的won服务器上托管数据库文件。我快速浏览了上面给出的链接上的文档,它清楚地指出,当你完成扩展文件时,你不应该丢弃它们,所以在这一部分没有帮助。

当然,对于“设置您自己的even服务器部分”:我甚至不会费心设置我自己的even服务器。有很多人会为你提供一些文件托管服务。也许你得为带宽付费,但是嘿..如果人们经常下载你的数据库文件,这也意味着你的应用程序运行良好;-)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15408537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档