android sqlite配置,60. (android开发)SQLite作为APP应用的配置打包

虽然可以在APP代码中实现初次运行的时候建立数据库表和表中的数据。但是这样很容易在某次不小心中搞出点bug来。尤其是还把APP的各种配置信息写在SQLite中的,如果发生错误,寻找排查起来可能会非常耗时。那么更好的方式是,把SQLite在发布前就准备好。

首先在开发阶段就建立好SQLite数据库,待完成好数据库表和表中的字段内容后,把这个库文件保存在APP的assets路径中。在这个路径里,可以任意的建立路径深度,并且在代码中可以直接访问。我们只需要在APP运行时候,判断一下私有文件夹或SD卡的指定位置是否有我们需要的配置库就可以了。如果没有,就从assets路径下把配置库复制过来。

为了方便测试,把现有的库当作我们需要的配置库来用。首先在SQLite Expert中修改一下字段内容,以便和将来增加的记录进行区别。

fa4a2c121c0e

修改了status状态字段

打开Android Studio找到assets文件夹

fa4a2c121c0e

assets文件夹

把数据库文件粘贴进去

fa4a2c121c0e

image.png

fa4a2c121c0e

image.png

fa4a2c121c0e

已经放进去了

在代码中,需要把这个数据库文件复制到指定位置,就写成一个独立的方法吧。每次onCreate的时候调用一下。

代码如下

/**

* Cofox 系统参数数据库初始化

* created at 2018/1/7 17:54

* 功能描述:

* file:SQLiteActivity.kt

*

*

* 修改历史:

* 2018/1/7:

*

*/

fun appParamConfig(fileName:String){

/**目标文件*/

val file = File(fileName)

//如果文件不存在就复制

if (!file.exists()){

//获取数据库文件的InputStream对象

val inputStream = resources.assets.open("cofoxTest.db")

val fos = FileOutputStream(fileName)

val buffer = ByteArray(100)

var count = 0

while (true){

count = inputStream.read(buffer)

if (count < 0){

break

}

fos.write(buffer, 0, count)

}

fos.close()

inputStream.close()

}

}

然后我们在界面上增加一个按钮,并把按钮的操作写为触发这个方法。

//初始化数据库文件

btnSQLiteDbFileInit.setOnClickListener {

appParamConfig(fileName)

}

android:id="@+id/btnSQLiteDbFileInit"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="初始化数据库文件" />

fa4a2c121c0e

image.png

初次运行后,点击“初始化数据库文件”按钮,再点击“查询记录”按钮,得到运行结果。

fa4a2c121c0e

初次运行结果

注意最后的配置信息config

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值