web-dev-qa-db-ja.com

AndroidデバイスでSQLiteデータベースを表示する方法

SQLiteデータベースに一連のデータがあります。データベースをデバイス上で表示する必要があります。それ、どうやったら出来るの?

Ddmsモードでチェックしました。ファイルエクスプローラのデータが空です。

125
user

これがステップバイステップの説明です(主に他の答えの組み合わせから取られます)。これは根ざしていないデバイス上でも動作します。

  1. デバイスを接続してアプリケーションをデバッグモードで起動します。

  2. データベースのファイル名を確認するには、adb -d Shell "run-as com.yourpackge.name ls /data/data/com.yourpackge.name/databases/"を使用することをお勧めします。

注意:com.yourpackge.nameはあなたのアプリケーションパッケージ名です。マニフェストファイルから入手できます。

  1. データベースファイルをアプリケーションフォルダからSDカードにコピーします。

    adb -d Shell "run-as com.yourpackge.name cat /data/data/com.yourpackge.name/databases/filename.sqlite > /sdcard/filename.sqlite"

注意:filename.sqliteは、データベースを作成したときに使用したデータベースの名前です。

  1. あなたのマシンにデータベースファイルを引っ張ります。

    adb pull /sdcard/filename.sqlite

これにより、データベースがSDカードからADBが存在する場所にコピーされます。

  1. Firefox SQLite Managerをインストールします。 https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/

  2. Firefox SQLiteマネージャを開き([ツール] - > [SQLiteマネージャ])、上記のステップ3からデータベースファイルを開きます。

  3. 楽しい!

182
Andy Cochrane

here から取った、あなたは試すことができます:

  1. Facebookのオープンソース Stethoライブラリ

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であなたのデータベースを見ることができます

  1. 別のオプションは this plugin (無料ではありません)
  2. そして最後のものは、ブラウザでdbの内容を見るためのこのフリー/オープンソースのライブラリです。 https://github.com/amitshekhariitbhu/Android-Debug.co.bin
75
Yair Kukielka

これまでに見つけた最良の方法は、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を取得することもできます。

enter image description here

私の携帯電話のIPアドレスを取得するために私は現在Ping Toolsを使用していますが、他にもたくさんの方法があります。

STEP 3

それでおしまい!


公式ドキュメントの詳細については、 https://github.com/amitshekhariitbhu/Android-Debug.co.jpbase

55
Bob

Androidアプリデータベースを表示および管理するための最善の方法は、ライブラリ DatabaseManager_For_Android を使用することです。

これは単一のJavaアクティビティファイルです。ソースフォルダに追加するだけです。あなたはあなたのアプリデータベースのテーブルを閲覧したり、あなたのテーブルに行を更新、削除、挿入することができます。アプリの中からすべて。

開発が完了したら、srcフォルダからJavaファイルを削除します。それでおしまい。

あなたは5分のデモを見ることができます、Android SQLiteデータベース用データベースマネージャ

53
sanath_p

あなたはこれを行うことができます:

  1. adb Shell
  2. cd /go/to/databases
  3. sqlite3 database.db
  4. sqlite>プロンプトで、.tablesと入力します。これにより、database.dbファイル内のすべてのテーブルが得られます。
  5. select * from table1;
17
Deepu

実際のデバイスを使用していて、それが根付いていない場合は、セキュリティ上の理由からそのフォルダがAndroidシステムでロックされているため、データベースをFileExplorerで表示することはできません。そしてそれをエミュレータで使っているのなら、FileExplorer/ data/data /あなたのパッケージ名/ databases/yourdatabse.dbにあるでしょう。

14
Abhijit Chakra

AndroidDBvieweRをお試しください。

  • お使いのデバイスが根ざしている必要はありません
  • アプリケーションのデータベースファイルをインポートする必要はありません
  • いくつかの構成とあなたが行ってもいいです!

AndroidDBvieweR

7
CLOUGH

私はAndroidの開発でコンテンツのSQLite DBを見るために SQLiteデータベースブラウザ を使っています。最初にデバイスからデータベースファイルを取得してから、それをSQLite DBブラウザで開く必要があります。

4
Andrew T.

これはあなたのデバイス上のデータベースを直接表示するわけではありませんが、私はデータベースをあなたのローカルマシンにダンプするための簡単なシェルスクリプトを公開しました:

https://github.com/Pixplicity/dbdump

ここで説明している2つの異なる方法を実行します。

  1. まず、ファイルを他のユーザーがアクセスできるようにし、それをデバイスから引き出そうとします。
  2. それが失敗すると、ファイルの内容を端末を介してローカルマシンにストリーミングします。一部のデバイスがシェルに出力する\r文字を削除するための追加のトリックを実行します。

ここから、sqlite3sqlitebrowserなどのさまざまなCLIまたはGUI SQLiteアプリケーションを使用して、データベースの内容を閲覧できます。

4
Paul Lammertsma

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);
3
Hardik Vasani

facebookのStethoを試してみてください。

StethoはAndroidアプリケーション用のデバッグブリッジであり、強力なChrome開発者ツールなどを可能にします。

https://github.com/facebook/stetho

3
Kai Wang

次の手順を実行します

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ではなく)に入れます。

詳しくはこちら こちら をクリックしてください。

3
Arhat Baid

これは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を見ることができます。

2
lomza

これがお役に立てば幸いです

ターミナルを使用する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
2
saeed

あなたは SQLiteOnWeb を試すことができます。それはブラウザであなたのSQLiteデータベースを管理します。

2
NovemberEleven

TKlerxにはEclipse用のAndroid SQLiteブラウザがあり、Android Studioと共に完全に機能します。それは非常に実用的ですので、私はそれをお勧めします。

Device Monitorにインストールするには、JARファイルを[Path to Android SDK folder]/sdk/tools/lib/monitor-[...]/pluginsに配置するだけです。

1

私はクロムでアプリのSQLite DBを閲覧するための非常に単純なライブラリstethoを見つけた、 参照

0
Mundroid

最初の投稿( https://stackoverflow.com/a/21151598/4244605 )が機能しません。

私はデバイスからDBファイルを取得するための独自のスクリプトを書きました。ルートなし。正常に動作しています。

  1. スクリプトをadbのあるディレクトリにコピーします(例:~/Android-sdk/platform-tools)。
  2. デバイスをPCに接続する必要があります。
  3. データベースの名前を取得するには./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;
0
t0m

ファイルエクスプローラを使用すると、データベースファイルを次のように見つけることができます。

data-->data-->your.package.name-->databases--->yourdbfile.db

それからあなたはあなたのデータベースを探索するために正面に置かれたどんなSQLiteも使うことができます。私はSQLite Manager Firefoxアドオンを使います。それはいい、小さい、そして速いです。

0
r4jiv007