Android预填充 Room 数据库使用实验

我想自己开发一个离线查询市监相关法律法规的手机app,需要理解Android预填充 Room 数据库的相关知识,最近开始做这个实验,主要步骤如下:

我想自己开发一个离线查询市监相关法律法规的手机app,需要理解Android预填充 Room 数据库的相关知识,最近开始做这个实验,主要步骤如下:

一、从github.com网站下载RoomDemo-master.zip。

二、解压到D盘,使用Android Studio打开这个Project。

三、打开D:\RoomDemo-master\app\src\main\java\com\axe\roomdome\db\AppDataBase.kt文件,把其中的app_db改为app_db.db。

四、打开Emulator,运行这个app,点击左边Device File Explorer,点开data\data\com.axe.roomdome\databases文件夹,并把app_db.db、app_db.db-shm、app_db.db-wal三个文件另存到Android\Sdk\platform-tools文件夹下,然后删除data\data\com.axe.roomdome\databases文件夹下的三个文件。

五、双击Android\Sdk\platform-tools的sqlite3.exe,在sqlite>下输入.open app_db.db,再输入.schema,并把显示的创建表的命令复制到记事本中备用,运行select查询语句,查询room_master_table和android_metadata的内容,并把内容也复制到记事本中备用。

六、删除Android\Sdk\platform-tools文件夹下app_db.db、app_db.db-shm、app_db.db-wal三个文件,然后在dos下进入Android\Sdk\platform-tools目录,并输入sqlite3 app_db.db创建新的空数据库,再运行复制到记事本中的命令创建表,然后运行Insert into命令往room_master_table(Insert into room_master_table(id, identity_hash) values(42, 'b005e4c033b7ea54aa42ccec5144d8b3'))、android_metadata(Insert into android_metadata(locale) values('en_US');)及User三个表中插入数据。

七、在D:\RoomDemo-master\app\src\main文件夹下新建assets文件夹,然后把Android\Sdk\platform-tools文件夹下app_db.db复制到assets文件夹下。

八、再次修改AppDataBase.kt文件,主要在“.allowMainThreadQueries()”前加了一句“.createFromAsset("database/app_db.db")”。运行这个app,点击左边Device File Explorer,点开data\data\com.axe.roomdome\databases文件夹,可以看到assets\database下的app_db.db已经复制到data\data\com.axe.roomdome\databases文件夹中,该文件夹中还新增加了app_db.db-shm、app_db.db-wal二个文件。

Android预填充 Room 数据库使用实验

以前做这个实验一直失败的主要原因不是代码问题而是assets\database下的app_db.db的架构与预封装数据库的架构不相匹配的问题。

最后,我想说自学编程英语水平真的不重要,重要的是要有把学习当作享受的心态、百折不挠的精神及搜索资料分析资料的能力,因为现在浏览器和Android开发工具上都可安装翻译插件,还可以电脑或手机上安装网易有道词典,需要翻译时运行一下就OK了。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/107832.html

(1)

相关推荐