Rok*_*Rok 17 sqlite android ddms
我正在研究一些SQLite代码,并希望检查数据库.如果我在模拟器上运行代码,我可以使用DDMS文件管理器从data\data\myProject\databases中提取文件,但如果我在实际硬件上运行它,则无法访问data\data文件夹.除了获得手机的root访问权限之外还有其他方法吗?
dst*_*nox 19
SQLIte数据库实际上只是存储在手机存储器中的文件,您可以将其复制到手机SD卡,然后从PC轻松访问它.以下是完全符合您需求的功能.在使用函数之前,请确保更改包名称和数据库名称.
public static void backupDatabase() throws IOException {
//Open your local db as the input stream
String inFileName = "/data/data/your.package.name/databases/database.sqlite";
File dbFile = new File(inFileName);
FileInputStream fis = new FileInputStream(dbFile);
String outFileName = Environment.getExternalStorageDirectory()
+ "/database.sqlite";
//Open the empty db as the output stream
OutputStream output = new FileOutputStream(outFileName);
//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer))>0){
output.write(buffer, 0, length);
}
//Close the streams
output.flush();
output.close();
fis.close();
}
Run Code Online (Sandbox Code Playgroud)
正如您可能从代码中看到的那样,数据库始终存储在以下文件夹中:
/data/data/your.package.name/databases/
Run Code Online (Sandbox Code Playgroud)
名称(在我们的示例中为"database.sqlite")是您在扩展SQLiteOpenHelper时选择的名称.显然,您还需要将"your.package.name"替换为应用程序包的名称.
| 归档时间: |
|
| 查看次数: |
24129 次 |
| 最近记录: |