一旦将 sqlite db 复制到 data/data/packagename/database 文件夹,我有 7mb 的应用程序会消耗 25mb。这在我节俭的模拟器上太大了,可能会冒犯用户。
有没有办法将 sqlite db 直接放到 sdcard 上?还是整个应用程序等?要求用户在安装后强制它通过似乎太晚了,我自己无法托管 dayabase。
有没有办法将 sqlite db 直接放到 sdcard 上?
您可能可以制作一个模型SQLiteAssetHelper
来处理这个问题。默认情况下,它将数据库放置在内部存储的正常位置。不幸的是,现在,要进行这种更改需要一些不平凡的手术,尽管我刚刚提交了一个功能请求以使其更容易一些。
还是整个应用程序等?
您可以使用android:installLocation="preferExternal"
,尽管它可能不被尊重。而且,这不会影响您的数据库—— getFilesDir()
、getDatabaseDir()
和 kin 始终在内部存储中。
另请注意,这只是 Android 1.x/2.x 设备的问题。比这更新的所有东西都应该考虑将内部和外部存储放在一个分区上,因此它们共享空间。