不root的情况下 查看App的数据表

一直以来查看sqlite的数据库都须要root才干查看,可是公司的好多測试机root起来比較麻烦~~~

近期刚好项目上线,略闲,

于是决定写一个libraryproject便于以后调试代码

关键代码例如以下

一、查看当前app的数据库

context.databaseList()

当中databaseList方法是ContextWrapper类中的一个方法定义例如以下

 @Override

    public String[] databaseList() {
return mBase.databaseList();
}

二、查看库中的数据表

SQLiteDatabase db = dbHelper.getWritableDatabase();

Cursor c = db.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null);
if (c.moveToFirst()) {
while (!c.isAfterLast()) {
tables.add(c.getString(0));//数据表
c.moveToNext();
}
}

三、查看数据表中的数据

	DbHelper db = new DbHelper(getContext(), databaseName);
Cursor c = db.getWritableDatabase().query(tableName, null, null, null, null, null, null);
String[] columnNames = c.getColumnNames();
ArrayList<String> datas = new ArrayList<String>();
StringBuilder sb = new StringBuilder();
if (c.moveToFirst()) {
while (!c.isAfterLast()) {
sb.setLength(0);
for (String columnName : columnNames) {
int columnIndex = c.getColumnIndex(columnName);
String colValue = c.getString(columnIndex);
sb.append(columnName).append(": ").append(colValue).append("\n");
}
datas.add(sb.toString());
Log.d("table_" + tableName, sb.toString());
c.moveToNext();
}
}

以上代码除了databaseList() 这种方法查了好久以外,其它还相对简单点

当中。查看app表的数据刚開始打算仿照root explorer做一个浏览数据的控件。可是想了一下感觉比較复杂,眼下还未实现

project的链接在此

https://github.com/droidcoffee/yolanda/tree/master/yolanda_Android

注意用法,将project作为一个libraryproject引入

同一时候改动主工程的project.properties文件添加例如以下配置就可以。

manifestmerger.enabled=true

这样能够使library中AndroidManifest.xml中配置的Activity生效。

也就是不用copy到主project中又一次配置了。

遇到问题的大家能够加群299306868

上一篇:linux 用户管理修改用户信息、密码状态、删除用户、退出登陆、切换用户


下一篇:Microsoft.Office.Interop.Excel 程序集引用 ,Microsoft.Office.Interop.Excel.ApplicationClass 无法嵌入互操作类型