日期:2014-05-16  浏览次数:20556 次

adb、sqlite3在命令行下访问应用数据库
引言:
  今天android群有朋友需要在dos命令行下获取sqlite3的部分peroperties信息。笔者翻了些资料并实践后,现以user_version为例整理为下。

正文:
标题:adb加sqlite3在命令行下访问应用数据库

整理:number,595804040
邮件:numberaugust@gmail.com


1)环境变量(假设在D:\android下安装SDK)
set path=%path%;D:\android\android-sdk-windows\platform-tools;
set path=%path%;D:\android\android-sdk-windows\tools;

2)打开命令行工具
adb shell

3)切换目录,定义数据库文件(假定应用名为com.number.db)
cd data/data/com.number.db/databases/

4)打开库(假定库文件为number.db)
sqlite3 number.db

5)执行sql
#查询包含的库(一般有main,temp)
pragma database_list;
#查询main的用户版本信息
pragma main.user_version;

(结束)

  需要说明的是:
  1,这种方式最常用于使用SQL查看正在使用的*.db文件
  2,命令“pragma main.user_version”可以在java代码中运行。例子如下:
	// 定义通用单值查询
	public String query(String sql){
		
		String version = null;
		SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
		Cursor cursor = db.rawQuery(sql, null);
		cursor.moveToFirst();
		version = cursor.getString(0);
		
		return version;
	}
        // ... ...
	// 调用查询
	query("pragma main.user_version");



引用:
SQlite :命令语法