更改软件包名称,但保持数据库在Android上

问题描述:

我创建了一个Android应用程序,它具有某个包名,我个人已经使用了几个月。我即将在市场上发布它,我必须更改软件包名称。这是无法避免的。更改软件包名称,但保持数据库在Android上

我的问题是,应用程序有一个SQLite数据库连接到它,我想保留,但我知道如果我改变软件包名称,它将作为一个单独的应用程序安装,我将不得不重新启动我的数据库,这将需要很长时间。

在维护SQLite数据库的同时是否有一种更改包名的好方法?或者至少轻松移动数据库?这只是为了我自己的手机,因为它尚未公布给公众。

步骤#1:为您的应用程序添加备份/恢复功能,将数据库复制到/从SD卡。确保您的SQLiteDatabaseSQLiteOpenHelper对象先关闭。

步骤#2:使用旧包安装此应用程序的副本到您的手机,并使用它备份数据库。

步骤#3:将此应用程序的生产副本安装到您​​的手机并使用它来恢复您的数据库。

+0

这很好,谢谢。我在这里找到了一个很棒的示例代码:http://www.screaming-penguin.com/node/7749。一旦数据库被导入,是否有一种简单的方法来检查它是否已被该应用程序保存的数据库?在导入一些无效文件的情况下,会抛出一些随机异常我会想象一下 – HXCaine 2010-09-09 01:35:00

+0

@HXCaine:“一旦数据库被导入,是否有一种简单的方法来检查它是否已被该应用保存的数据库? - 我可以在'sqlite_master'上执行一些查询来查看它是否看起来不错。 http://www.sqlite.org/faq.html#q7 – CommonsWare 2010-09-09 11:00:28

任何人想要做同样的事情,我已经写了怎么办备份/导入/数据库的恢复和包括整个班级在这个环节做:

http://www.hxcaine.com/blog/2010/09/14/backing-up-importing-and-restoring-databases-on-android/