想把一个数据库db文件放在 res/raw/ 目录下,安装应用的时候就直接加载这个db文件到程序默认数据库目录下: /data/data/package_name/databases/db_name,这样就不用每次安装的时候都用SQL语句创建新的数据库。下面的代码就是将 res/raw/ 目录下的.db数据库文件拷贝到程序默认数据库目录下。
private String rootDirectory = "/data/data/org.itec.android.Classroom/databases/";
private final String DATABASE_PATH = "/data/data/org.itec.android.Classroom/databases/";
private final String DATABASE_FILENAME = "classroom.db";
public void createDatabase() throws IOException {
try
{
// 获得.db文件的绝对路径
String databaseFilename = DATABASE_PATH + DATABASE_FILENAME;
File dir = new File(rootDirectory);
// 如果目录不存在,创建这个目录
if (!dir.exists())
dir.mkdir();
// 如果在/data/data/org.itec.android.Classroom
//目录中不存在 .db文件,则从res\raw目录中复制这个文件到该目录
if (!(new File(databaseFilename)).exists()){
// 获得封装.db文件的InputStream对象
InputStream is = getResources().openRawResource(R.raw.classroom);
FileOutputStream fos = new FileOutputStream(databaseFilename);
byte[] buffer = new byte[7168];
int count = 0;
// 开始复制.db文件
while ((count = is.read(buffer)) > 0){
fos.write(buffer, 0, count);
}
fos.close();
is.close();
}
}
catch (Exception e){
}
}
分享到:
相关推荐
本篇文章将详细讲解如何在Android中动态加载Spinner的内容,同时结合"源码"和"工具"这两个标签,我们将深入探讨其实现原理。 首先,我们来了解Spinner的基本使用。Spinner通常在布局文件中定义,如`res/layout/...
- **打开数据库**:用户可以指定数据库文件路径,加载数据库并显示其包含的表。 - **浏览数据表**:清晰地展示每张表的结构和数据,包括字段名、字段类型和记录。 - **查询操作**:提供SQL查询编辑器,允许输入...
"Android加载状态布局工具"就是为了解决这个问题而设计的,它帮助开发者轻松地管理并展示这些状态。本篇文章将深入探讨这个工具及其在Android开发中的应用。 首先,我们要理解Android布局(Layout)的重要性。布局...
- Android导入现有数据库的方法,可能包括复制文件到特定目录并用SQLiteOpenHelper处理。 - Android读取Excel文件的方法,可能涉及到第三方库如Apache POI。 - Android操作Excel文件的功能实现,包括创建、读取和...
这通常涉及到网络请求或者数据库查询,获取新的数据并添加到现有的数据列表中。 4. 更新Adapter:加载完新数据后,需要通知Adapter数据已更新。调用Adapter的notifyDataSetChanged()方法,ListView会自动重新绘制并...
2. 打开数据库:选择特定的数据库文件,加载其内容。 3. 浏览表格:查看数据库中的各个表格,包括列名、数据类型和数据内容。 4. 查询数据:输入SQL语句,执行查询操作,获取特定的数据结果。 5. 插入/更新/删除数据...
本资源包"安卓进度条loadingprogress相关-android加载框效果.zip"主要关注如何在Android平台上实现各种加载框效果。下面将详细介绍这个主题及其相关知识点。 1. 进度条类型: - LinearProgressDrawable:线性...
这个接口通常会发送一个网络请求或者查询数据库,获取新的数据并添加到现有的数据源中。数据更新后,通知适配器数据已改变,这可以通过调用adapter.notifyDataSetChanged()来完成。适配器会自动处理数据更新,并重新...
- 当用户上拉触底时,需要触发加载更多数据的逻辑,这通常涉及到网络请求或者数据库查询,然后将新数据添加到ListView中。 3. **使用droplistview**: - 要在项目中使用droplistview,首先需要将其依赖库添加到...
尤其是在Android设备被Root(获得超级用户权限)的情况下,SQLite数据库文件很容易被非法访问。一旦敏感信息(如用户的登录凭证、个人隐私等)被明文存储于SQLite数据库中,将极大增加数据泄露的风险。 为了解决这...
3. **创建、删除、重命名文件和目录**:用户可以直接在文件管理器中创建新文件或文件夹,删除不再需要的文件,以及更改现有文件或目录的名称。 4. **复制、剪切和粘贴**:用户可以移动或复制文件和目录,这在整理...
3. **加载更多数据**: 当达到底部时,发起网络请求或从本地数据库加载更多数据。 4. **更新Adapter**: 将新数据添加到现有数据集,调用Adapter的`notifyDataSetChanged()`方法通知列表刷新。 对于RecyclerView,...
在`loadMoreData()`方法中,你需要处理加载更多数据的逻辑,例如网络请求或数据库查询,然后将新数据添加到Adapter的数据集合中,最后调用`notifyDataSetChanged()`通知ListView更新视图。 `ListViewScrollDemo`...
通过对MIUI文件管理源码的学习,开发者不仅可以提升对Android系统底层的理解,还能掌握到文件管理应用开发的实战技巧,这对于开发自己的定制化文件管理应用或者优化现有应用的文件操作功能都是非常有益的。...
1. Android SQLite数据库:Hibernate在Android中通常会与SQLite数据库结合,因为它是Android内置的轻量级数据库系统。 2. Hibernate配置:设置XML配置文件(如`hibernate.cfg.xml`)以定义数据源、映射文件等。 3. ...
- 数据库文件应有适当的权限控制,防止未授权访问。 - 如果数据库包含敏感信息,应加密存储。 10. **版本管理**: 当数据库结构需要改变时,通过提高数据库版本号并重写`onUpgrade()`方法来更新表结构或数据。 ...
6. **System-images**:提供Android模拟器所需的系统镜像文件。 7. **Tools**:包括ddms用于调试,draw9patch用于制作9-patch图片,sqlite3用于数据库操作,monkeyrunner用于自动化测试等。 接下来,NDK(Native ...
在Android开发中,动画加载是提升用户体验的重要手段,特别是在执行耗时操作如网络请求、数据库操作或大文件读写时。加载进度动画可以提供视觉反馈,让用户知道应用程序正在处理任务,而不是卡死或无响应。这有助于...
本项目包含了两个核心部分,分别涉及到了Android数据库管理和UI设计。接下来,我们将深入探讨这两个关键领域的知识点。 首先,我们关注的是"Android的两个项目"中的第一个——"手机中所有程序的数据库管理"。这个...
在Android应用中,数据通常来源于网络、数据库或者文件系统,这些操作可能需要一定的时间,如果在主线程中执行,会导致用户界面(UI)阻塞,使应用显得卡顿。Core库提供了异步加载机制,将数据获取过程放到后台线程...