android中怎么将sqlite打包到APK发布
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,今天就跟大家聊聊有关android中怎么将sqlite打包到APK发布,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。正常的应用数据库放在/da
千家信息网最后更新 2026年10月31日android中怎么将sqlite打包到APK发布
今天就跟大家聊聊有关android中怎么将sqlite打包到APK发布,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
正常的应用数据库放在/data/data/包名/database/test.db,应用发布时,这个数据库不会随着应用一起发布,
所以为了让我们已经准备好的数据正常使用,必须能实现数据库自身复制到sd卡下面,
实现拷贝res/raw/test.db下资源拷贝到SD卡下的/mnt/sdcard/test/test.db
package your.wzf.namespace.database;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import your.wzf.namespace.R;import android.content.Context;public class CopyDatabase { private final String DATABASE_PATH = android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/nqxx_512022"; private final String DATABASE_FILENAME = "zylz.db"; private Context context; public CopyDatabase(Context context) { this.context = context; } public void OpenDataBase() { try { String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME; File dir = new File(DATABASE_PATH); // 判断SD卡下是否存在存放数据库的目录,如果不存在,新建目录 if (!dir.exists()) { dir.mkdir(); } try { // 如果数据库已经在SD卡的目录下存在,那么不需要重新创建,否则创建文件,并拷贝/res/raw下面的数据库文件 if (!(new File(databaseFilename)).exists()) { // /res/raw数据库作为输出流 InputStream is = this.context.getResources().openRawResource(R.raw.zylz); // 用于存放数据库信息的数据流 FileOutputStream fos = new FileOutputStream(databaseFilename); byte[] buffer = new byte[8192]; int count = 0; // 把数据写入SD卡目录下 while ((count = is.read(buffer)) > 0) { fos.write(buffer, 0, count); } fos.flush(); fos.close(); is.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } catch (Exception e) { } }}只需要注意下,项目建立的时候不存在res/raw,只需要手动在res中建立raw文件夹
访问在sd卡中的数据库需要这样写:
package your.wzf.database.dal;import java.util.ArrayList;import java.util.List;import java.util.UUID;import your.wzf.database.dal.*;import your.wzf.database.model.Model_Bt_Farmer;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class Bt_Farmer { private String databasePath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/nqxx_512022"; private String databaseFileName = "zylz.db"; String fullPath = ""; public Bt_Farmer(Context context) { fullPath = databasePath + "/" + databaseFileName; } /** * 插入一条记录 * @param farmer Model_Bt_Farmer对象 */ public void Insert(Model_Bt_Farmer farmer) { SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(fullPath, null); db.execSQL("insert into BT_FARMER (ID,NAME_,IDENTITY_CARD,NAME_PY) values(?,?,?,?)", new Object[] { farmer.getId(), farmer.getName(),farmer.getIdCard(),farmer.getName_py()}); db.close(); }}看完上述内容,你们对android中怎么将sqlite打包到APK发布有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
数据
数据库
目录
内容
拷贝
文件
应用
信息
对象
手动
数据流
文件夹
时候
更多
知识
篇文章
行业
资源
资讯
资讯频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会
鸠鸠互联网科技
科技企业和互联网企业
互联网科技金融
期待互联网科技
互联网科技公司电话
成都互联网科技公司
上海致骋互联网科技
赫美联合互联网科技
哈尔滨新华互联网科技
温州喔噻互联网科技有限公司
欧洲十大科技互联网公司
承德科技产业互联网发展
现代互联网科技股
内蒙古九一互联网科技
互联网营销推广黑科技
银川新华互联网科技学校原画
深圳互联网科技园地址
承德科技产业互联网平台
科技美学互联网 艺术
疫情对互联网科技公司影响
礼当家互联网科技
广州宏创互联网科技
青岛科技大学互联网大赛研究生
互联网媒体平台算高科技产业
本届互联网博览会上的黑科技
保山互联网科技靠谱吗
广州三三互联网科技有限公司
科技互联网专业工作会议发言稿
银川新华互联网科技学校招聘