SQLiteデータベースに一連のデータがあります。データベースをデバイス上で表示する必要があります。それ、どうやったら出来るの?
Ddmsモードでチェックしました。ファイルエクスプローラのデータが空です。
これがステップバイステップの説明です(主に他の答えの組み合わせから取られます)。これは根ざしていないデバイス上でも動作します。
デバイスを接続してアプリケーションをデバッグモードで起動します。
データベースのファイル名を確認するには、adb -d Shell "run-as com.yourpackge.name ls /data/data/com.yourpackge.name/databases/"
を使用することをお勧めします。
注意:com.yourpackge.name
はあなたのアプリケーションパッケージ名です。マニフェストファイルから入手できます。
データベースファイルをアプリケーションフォルダからSDカードにコピーします。
adb -d Shell "run-as com.yourpackge.name cat /data/data/com.yourpackge.name/databases/filename.sqlite > /sdcard/filename.sqlite"
注意:filename.sqliteは、データベースを作成したときに使用したデータベースの名前です。
あなたのマシンにデータベースファイルを引っ張ります。
adb pull /sdcard/filename.sqlite
これにより、データベースがSDカードからADBが存在する場所にコピーされます。
Firefox SQLite Managerをインストールします。 https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/
Firefox SQLiteマネージャを開き([ツール] - > [SQLiteマネージャ])、上記のステップ3からデータベースファイルを開きます。
楽しい!
here から取った、あなたは試すことができます:
Build.gradleで:
dependencies {
// Stetho core
compile 'com.facebook.stetho:stetho:1.5.0'
//If you want to add a network helper
compile 'com.facebook.stetho:stetho-okhttp:1.5.0'
}
アプリケーションオブジェクトのライブラリを初期化します。
Stetho.initializeWithDefaults(this);
そしてあなたはchrome://inspect
からChromeであなたのデータベースを見ることができます
これまでに見つけた最良の方法は、Android-Debug-Databaseツールを使用することです。
それは信じられないほど使いやすく設定が簡単で、依存関係を追加してWeb経由でデバイスデータベースのインターフェースに接続するだけです。電話を根絶したり、アクティビティを追加したりする必要はまったくありません。手順は次のとおりです。
STEP 1
アプリのGradleファイルに次の依存関係を追加して、アプリケーションを実行します。
debugCompile 'com.amitshekhar.Android:debug-db:1.0.0'
STEP 2
ブラウザを開き、ポート8080で携帯のIPアドレスにアクセスします。URLはhttp://YOUR_PHONE_IP_ADDRESS:8080
のようになります。次のような情報が表示されます。
注:メソッドDebugDB.getAddressLog();
を呼び出すことによって、コードからいつでもデバッグアドレスURLを取得することもできます。
私の携帯電話のIPアドレスを取得するために私は現在Ping Toolsを使用していますが、他にもたくさんの方法があります。
STEP 3
それでおしまい!
公式ドキュメントの詳細については、 https://github.com/amitshekhariitbhu/Android-Debug.co.jpbase
Androidアプリデータベースを表示および管理するための最善の方法は、ライブラリ DatabaseManager_For_Android を使用することです。
これは単一のJavaアクティビティファイルです。ソースフォルダに追加するだけです。あなたはあなたのアプリデータベースのテーブルを閲覧したり、あなたのテーブルに行を更新、削除、挿入することができます。アプリの中からすべて。
開発が完了したら、srcフォルダからJavaファイルを削除します。それでおしまい。
あなたは5分のデモを見ることができます、Android SQLiteデータベース用データベースマネージャ。
あなたはこれを行うことができます:
adb Shell
cd /go/to/databases
sqlite3 database.db
sqlite>
プロンプトで、.tables
と入力します。これにより、database.dbファイル内のすべてのテーブルが得られます。select * from table1;
実際のデバイスを使用していて、それが根付いていない場合は、セキュリティ上の理由からそのフォルダがAndroidシステムでロックされているため、データベースをFileExplorer
で表示することはできません。そしてそれをエミュレータで使っているのなら、FileExplorer
、/ data/data /あなたのパッケージ名/ databases/yourdatabse.dbにあるでしょう。
AndroidDBvieweRをお試しください。
私はAndroidの開発でコンテンツのSQLite DBを見るために SQLiteデータベースブラウザ を使っています。最初にデバイスからデータベースファイルを取得してから、それをSQLite DBブラウザで開く必要があります。
これはあなたのデバイス上のデータベースを直接表示するわけではありませんが、私はデータベースをあなたのローカルマシンにダンプするための簡単なシェルスクリプトを公開しました:
ここで説明している2つの異なる方法を実行します。
\r
文字を削除するための追加のトリックを実行します。ここから、sqlite3
やsqlitebrowser
などのさまざまなCLIまたはGUI SQLiteアプリケーションを使用して、データベースの内容を閲覧できます。
step 1このクラスをあなたのパッケージにコピーしてください
step 2以下のコードをSQLiteOpenHelperを拡張するクラスに追加します。
//-----------------for show databasae table----------------------------------------
public ArrayList<Cursor> getData(String Query)
{
//get writable database
SQLiteDatabase sqlDB =this.getWritableDatabase();
String[] columns = new String[] { "mesage" };
//an array list of cursor to save two cursors one has results from the query
//other cursor stores error message if any errors are triggered
ArrayList<Cursor> alc = new ArrayList<Cursor>(2);
MatrixCursor Cursor2= new MatrixCursor(columns);
alc.add(null);
alc.add (null);
try{
String maxQuery = Query ;
//execute the query results will be save in Cursor c
Cursor c = sqlDB.rawQuery(maxQuery, null);
//add value to cursor2
Cursor2.addRow(new Object[] { "Success" });
alc.set(1,Cursor2);
if (null != c && c.getCount() > 0)
{
alc.set(0,c);
c.moveToFirst();
return alc ;
}
return alc;
}
catch(SQLException sqlEx)
{
Log.d("printing exception", sqlEx.getMessage());
//if any exceptions are triggered save the error message to cursor an return the arraylist
Cursor2.addRow(new Object[] { ""+sqlEx.getMessage() });
alc.set(1,Cursor2);
return alc;
}
catch(Exception ex)
{
Log.d("printing exception",ex.getMessage());
//if any exceptions are triggered save the error message to cursor an return the arraylist
Cursor2.addRow(new Object[] { ""+ex.getMessage() });
alc.set(1,Cursor2);
return alc;
}
}
step 3マニフェストに登録
<activity
Android:name=".database.AndroidDatabaseManager"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme.NoActionBar"/>
ステップ4
Intent i = new Intent(this, AndroidDatabaseManager.class);
startActivity(i);
facebookのStethoを試してみてください。
StethoはAndroidアプリケーション用のデバッグブリッジであり、強力なChrome開発者ツールなどを可能にします。
次の手順を実行します
1>ここから から* .jarファイルをダウンロードします 。
2> * .jarファイルをEclipse/dropins /フォルダーに入れて、Eclipseを再起動します。
3> Eclipseの右上にあるDDMSアイコンをクリックします。
4>左側のパネルで適切なエミュレータを選択します。
5メインパネルの[ファイルエクスプローラ]タブで、/data/data/[YOUR.APP.NAMESPACE]/databasesに移動します。
6> DDMSアイコンの下に、データベースを選択すると、データベースの新しい青いアイコンが点灯します。それをクリックすると、あなたのデータを見るためにQuestoid Sqlite Managerタブが開きます。
*注:データベースが点灯しない場合は、データベースに* .dbというファイル拡張子が付いていない可能性があります。データベースの名前が[DATABASE_NAME] .dbであることを確認してください。
*注:.db-Extensionを付けずにDBを使用したい場合は、
- このQuestoid SqLiteBrowserをダウンロードしてください: ここからダウンロードしてください 。
- 解凍してEclipse/dropins(Pluginsではなく)に入れます。
詳しくはこちら こちら をクリックしてください。
これはAndroid 6.0(少なくともデバッグ可能なアプリ)で動作します。
adb Shell "run-as your.package.name cp /data/data/your.package.name/databases/you-db-name /sdcard/file_to_write"
そうすると、例えば aSQLiteManager でDBを見ることができます。
これがお役に立てば幸いです
ターミナルを使用するandriod sdkが所在する場所を最初にポイントしてください
eg: C:\Users\AppData\Local\Android\sdk\platform-tools>
その後、接続されているデバイスのリストを確認してください。
adb devices
次に、このコマンドを実行してファイルをデバイスからシステムにコピーします。
adb -s YOUR_DEVICE_ID Shell run-as YOUR_PACKAGE_NAME chmod -R 777 /data/data/YOUR_PACKAGE_NAME/databases && adb -s YOUR_DEVICE_ID Shell "mkdir -p /sdcard/tempDB" && adb -s YOUR_DEVICE_ID Shell "cp -r /data/data/YOUR_PACKAGE_NAME/databases/ /sdcard/tempDB/." && adb -s YOUR_DEVICE_ID pull sdcard/tempDB/ && adb -s YOUR_DEVICE_ID Shell "rm -r /sdcard/tempDB/*"
このパスにデータベースファイルがあります。
Android\sdk\platform-tools\tempDB\databases
あなたは SQLiteOnWeb を試すことができます。それはブラウザであなたのSQLiteデータベースを管理します。
TKlerxにはEclipse用のAndroid SQLiteブラウザがあり、Android Studioと共に完全に機能します。それは非常に実用的ですので、私はそれをお勧めします。
Device Monitorにインストールするには、JARファイルを[Path to Android SDK folder]/sdk/tools/lib/monitor-[...]/plugins
に配置するだけです。
私はクロムでアプリのSQLite DBを閲覧するための非常に単純なライブラリstethoを見つけた、 参照
最初の投稿( https://stackoverflow.com/a/21151598/4244605 )が機能しません。
私はデバイスからDBファイルを取得するための独自のスクリプトを書きました。ルートなし。正常に動作しています。
~/Android-sdk/platform-tools
)。./getDB.sh -p <packageName>
を使用します。使用法:./getDB.sh -p <packageName> -n <name of DB> -s <store in mobile device>
はこの(スクリプトが実行される)ディレクトリにDBファイルを取得します。
DBのファイル名を* .sqliteに設定してFirefoxアドオン:SQLite Managerで開くことをお勧めします。
(私がBashで何か書いたのは久しぶりです。このコードを編集することができます。)
#!/bin/sh
# Get DB from Android device.
#
Hoption=false
Poption=false
Noption=false
Soption=false
Parg=""
Narg=""
Sarg=""
#-----------------------FUNCTION--------------------------:
helpFunc(){ #help
echo "Get names of DB's files in your Android app.
Usage: ./getDB -h
./getDB -p packageName -n nameOfDB -s storagePath
Options:
-h Show help.
-p packageName List of databases for package name.
-p packageName -n nameOfDB -s storagePath Save DB from device to this directory."
}
#--------------------------MAIN--------------------------:
while getopts 'p:n:s:h' options; do
case $options in
p) Poption=true
Parg=$OPTARG;;
n) Noption=true
Narg=$OPTARG;;
s) Soption=true
Sarg=$OPTARG;;
h) Hoption=true;;
esac
done
#echo "-------------------------------------------------------
#Hoption: $Hoption
#Poption: $Poption
#Noption: $Noption
#Soption: $Soption
#Parg: $Parg
#Narg: $Narg
#Sarg: $Sarg
#-------------------------------------------------------"\\n
#echo $# #count of params
if [ $Hoption = true ];then
helpFunc
Elif [ $# -eq 2 -a $Poption = true ];then #list
./adb -d Shell run-as $Parg ls /data/data/$Parg/databases/
exit 0
Elif [ $# -eq 6 -a $Poption = true -a $Noption = true -a $Soption = true ];then #get DB file
#Change permissions
./adb Shell run-as $Parg chmod 777 /data/data/$Parg/databases/
./adb Shell run-as $Parg chmod 777 /data/data/$Parg/databases/$Narg
#Copy
./adb Shell cp /data/data/$Parg/databases/$Narg $Sarg
#Pull file to this machine
./adb pull $Sarg/$Narg
exit 0
else
echo "Wrong params or arguments. Use -h for help."
exit 1;
fi
exit 0;
ファイルエクスプローラを使用すると、データベースファイルを次のように見つけることができます。
data-->data-->your.package.name-->databases--->yourdbfile.db
それからあなたはあなたのデータベースを探索するために正面に置かれたどんなSQLiteも使うことができます。私はSQLite Manager Firefoxアドオンを使います。それはいい、小さい、そして速いです。