不root的情况下 查看App的数据表
生活随笔
收集整理的這篇文章主要介紹了
不root的情况下 查看App的数据表
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一直以來查看sqlite的數(shù)據(jù)庫都須要root才干查看,可是公司的好多測試機(jī)root起來比較麻煩~~~
近期剛好項(xiàng)目上線,略閑,
于是決定寫一個libraryproject便于以后調(diào)試代碼
關(guān)鍵代碼例如以下
一、查看當(dāng)前app的數(shù)據(jù)庫
context.databaseList()當(dāng)中databaseList方法是ContextWrapper類中的一個方法定義例如以下?@Override public String[] databaseList() {return mBase.databaseList();}
二、查看庫中的數(shù)據(jù)表
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));//數(shù)據(jù)表c.moveToNext();} }三、查看數(shù)據(jù)表中的數(shù)據(jù) 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() 這種方法查了好久以外,其它還相對簡單點(diǎn)
當(dāng)中。查看app表的數(shù)據(jù)剛開始打算仿照root explorer做一個瀏覽數(shù)據(jù)的控件。可是想了一下感覺比較復(fù)雜,眼下還未實(shí)現(xiàn)
project的鏈接在此
https://github.com/droidcoffee/yolanda/tree/master/yolanda_Android
注意用法,將project作為一個libraryproject引入
同一時候改動主工程的project.properties文件添加例如以下配置就可以。
manifestmerger.enabled=true這樣能夠使library中AndroidManifest.xml中配置的Activity生效。也就是不用copy到主project中又一次配置了。
遇到問題的大家能夠加群299306868
總結(jié)
以上是生活随笔為你收集整理的不root的情况下 查看App的数据表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js模块化小结
- 下一篇: 监控磁盘并发mail通知