zoukankan      html  css  js  c++  java
  • 不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("
    ");
    				}
    				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

  • 相关阅读:
    AtomicReference与volatile的区别
    深度剖析ConcurrentHashMap(转)
    ConcurrentHashMap原理分析
    Java Stack源码分析
    Fail-Fast机制详解
    TreeSet源码分析
    状态(State)模式
    原型(Prototype)模式
    职责连模式
    观察者模式(Observer)
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4360756.html
Copyright © 2011-2022 走看看