当前位置:   article > 正文

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

那个软件不root可查看系统数据

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

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

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

关键代码例如以下

一、查看当前app的数据库

context.databaseList()
当中databaseList方法是ContextWrapper类中的一个方法定义例如以下
 @Override

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

二、查看库中的数据表

  1. SQLiteDatabase db = dbHelper.getWritableDatabase();
  2. Cursor c = db.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null);
  3. if (c.moveToFirst()) {
  4. while (!c.isAfterLast()) {
  5. tables.add(c.getString(0));//数据表
  6. c.moveToNext();
  7. }
  8. }

三、查看数据表中的数据

  1. DbHelper db = new DbHelper(getContext(), databaseName);
  2. Cursor c = db.getWritableDatabase().query(tableName, null, null, null, null, null, null);
  3. String[] columnNames = c.getColumnNames();
  4. ArrayList<String> datas = new ArrayList<String>();
  5. StringBuilder sb = new StringBuilder();
  6. if (c.moveToFirst()) {
  7. while (!c.isAfterLast()) {
  8. sb.setLength(0);
  9. for (String columnName : columnNames) {
  10. int columnIndex = c.getColumnIndex(columnName);
  11. String colValue = c.getString(columnIndex);
  12. sb.append(columnName).append(": ").append(colValue).append("\n");
  13. }
  14. datas.add(sb.toString());
  15. Log.d("table_" + tableName, sb.toString());
  16. c.moveToNext();
  17. }
  18. }

以上代码除了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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/318902
推荐阅读
相关标签
  

闽ICP备14008679号