一直以来查看sqlite的数据库都需要root才能查看,但是公司的好多测试机root起来比较麻烦~~~
最近刚好项目上线,略闲,
于是决定写一个library工程便于以后调试代码
关键代码如下
一、查看当前app的数据库
context.databaseList()其中databaseList方法是ContextWrapper类中的一个方法定义如下
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(); } }
其中。查看app表的数据刚开始打算仿照root explorer做一个浏览数据的控件。但是想了一下感觉比较复杂,目前还未实现
工程的链接在此
https://github.com/droidcoffee/yolanda/tree/master/yolanda_Android
注意使用方法,将工程作为一个library工程引入
同时修改主工程的project.properties文件增加如下配置即可。
manifestmerger.enabled=true这样可以使library中AndroidManifest.xml中配置的Activity生效。
也就是不用copy到主工程中重新配置了。
遇到问题的大家可以加群299306868