我最近接受了为Android应用程序发布商开发的合同工作。他们希望我更新现有的android项目以允许使用试用模式。为此,我必须对应用程序正在使用的数据库的模式进行更改。
当我使用模拟器时,通过使用Eclipse中ddms透视图中的文件浏览器,可以从data \ data ....目录中拉出应用程序的数据库文件,从而对数据库进行更改。然后,我编辑了数据库,并将其推回到相同的目录中。这工作正常,我能够在模拟器中使用更新的数据库。
但是,当我不得不开始使用真正的android设备(其Nexus 7)时,遇到了问题。我无法像以前一样更新数据库,因为无法访问数据文件夹。这利用更改为数据库架构的方式破坏了所有代码。
在这一点上,我什至不知道该数据库的原始副本来自何处。在发布者或库的任何子目录中也没有数据库的副本。我已经为应用启动器解压缩了apk文件,但没有找到副本。我还解压缩了应用程序启动者使用的库项目的jar文件。如果我遗漏任何必要的信息,请原谅我。我对android开发非常陌生。我很乐意提供其他可能有用的信息。
任何希望使用sqlite数据库的Android应用程序通常都会扩展SQLiteOpenHelper
该类。SQLiteOpenHelper
该类至少需要四个参数-上下文,数据库名称,游标工厂和数据库版本。首次尝试(使用getReadableDatabase
或getWritableDatabase
)打开与数据库的连接时,Android(使用您提供的名称)将创建数据库,并onCreate
调用该方法。在这里,您可以在sqliteDatabase
传递的对象上执行语句,以创建所需的表。
每当您想要更改表的架构时,您都会增加传递给SQLiteOpenHelper的构造函数的版本号。onUpgrade
一旦系统看到版本号已增加(如果您传递的版本号小于已经存在的版本号,onDowngrade
将被调用),您将调用方法,并且您可以在传递给的sqliteDatabase对象上执行所有迁移语句你
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句