Android App安装脚本机制/方法

时间:2016-06-16 14:35:54

标签: android installation

android上有没有任何机制和/或编程实践来执行一次性安装/更新脚本?这似乎是一个非常基本的问题,但谷歌搜索没有帮助。

假设我的应用程序使用数据库,并且需要有一个表来表示常量值(例如国家/地区名称,城市名称等)。应用程序应该创建一个数据库并在其中写入常量值,但是只应在应用程序已全新安装或更新。

我应该;

a)在MainActivity中放置一个函数来检查其中的数据库和数据是否到位

b)在MainActivity中放置一个函数,用当前软件版本编写一小块文件,然后在每次运行中检查它是否是全新安装或更新(当然它会先检查文件,然后如果没有,请写下来)

c)或者在每次安装和/或更新中是否还有其他的defacto方法?

1 个答案:

答案 0 :(得分:1)

这取决于您将如何安装以及数据库中的更改。

如果您只是生成一个新的Apk并运行它,它将更新并且不会删除以前的数据,但如果您删除APP并安装新的,则数据将被删除。

如果安装的版本低于新应用程序中所需的版本,则应考虑的其他事项是数据库的版本。

请注意,您需要使用dbhelper.getWriteableDatabase()或dbhelper.getReadableDatabase()获取数据库对象。仅创建一个SQLiteOpenHelper对象是不够的。

对此的控制取决于您使用什么来创建数据库,例如,如果您使用SQLiteOpenHelper创建通常使用的方法:

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {


}

修改 何时调用哪种方法?

代码:

DbName = "teste.db"
DbVersion = 1

在设备上:      无数据库

^将调用onCreate。

代码:

DbName = "teste.db"
DbVersion = 2

在设备上:

 DbName = "teste.db"
 DbVersion = 1

^将调用onUpgrade

代码:

DbName = "teste.db"
DbVersion = 1

在设备上:

 DbName = "teste.db"
 DbVersion = 2

^将调用onDowngrade

代码:

DbName = "anotherName.db"
DbVersion = 1

在设备上:

 DbName = "teste.db"
 DbVersion = 1

^将调用onCreate