21

エミュレーターのような Android デバイスから sqlite データベースを取得するにはどうすればよいですか?

4

10 に答える 10

56

これらのコマンドを使用して、デバイスからデータベースを取得できます。これらのコマンドを Android Studio から入力するのは非常に簡単です。adb のパスがシステムにグローバルに設定されていることを確認してください。次に、「ターミナル」ウィンドウを下から android studio に、「Android Monitor」の近くに開きます。次のコマンドを、アプリの実際のパッケージ名とデータベース ファイル名で更新するだけです。デバイスからファイルを取得します。

adb shell "run-as package.name chmod 666 /data/data/package.name/databases/file"
adb pull /data/data/package.name/databases/file .
adb shell "run-as package.name chmod 600 /data/data/package.name/databases/file"

Android 5.0+ /data/data/package.name/databases/file のコマンドは次のようになります。

adb shell "run-as package.name chmod 666 /data/data/package.name/databases/file"
adb exec-out run-as package.name cat databases/file > newOutFileName
adb shell "run-as package.name chmod 600 /data/data/package.name/databases/file"
于 2014-08-29T10:33:13.987 に答える
6
  • デバイスを PC に接続します
  • でコマンドプロンプトを開く/sdk-directory/tools
  • タイプadb pull /data/data/com.example.app/databases/database.db

com.example.appアプリケーション パッケージ名、database.dbはデータベース ファイルです。

これは、デバイスがルート化されている場合です。そうでない場合は、次の手順を試してください

https://stackoverflow.com/a/8433520/1300995

于 2012-07-22T06:38:15.427 に答える
5

Android アプリ データベースを表示および管理する最良の方法は、このライブラリを使用することですhttps://github.com/sanathp/DatabaseManager_For_Android

単一の Java アクティビティ ファイルです。Java ファイルをソース フォルダに追加するだけで、アプリ データベースのテーブルを表示したり、テーブルに行を更新、削除、挿入したりできます。アプリからすべてを実行できます。

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

それは私を大いに助けました.あなたも助けてくれることを願っています.

ここで 1 分間のデモを見ることができます: http://youtu.be/P5vpaGoBlBY

于 2014-10-02T19:39:38.550 に答える
5

1 つのコマンドでこれらすべての中間段階をスキップできます。

PC シェルで次を実行します。

adb -d shell 'run-as <package_name> cat /data/data/<package_name>/databases/<db_name>' > <local_file_name>
于 2017-11-08T21:31:37.220 に答える
3
adb root
adb remount
adb pull <remote>  <local>
于 2016-06-28T06:02:56.853 に答える
2

アプリケーションでプログラム的に行う

try {
    File file = Environment.getExternalStorageDirectory();
    File data = Environment.getDataDirectory();

    if (file.canWrite()) {
        String currentPath = "/data/data/" + getPackageName() + "/databases/yourdbname";
        String copyPath = "copydb_name.db";
        File currentDB = new File(currentPath);
        File backupDB = new File(file, copyPath);

        if (currentDB.exists()) {
            FileChannel src = new FileInputStream(currentDB).getChannel();
            FileChannel dst = new FileOutputStream(backupDB).getChannel();
            dst.transferFrom(src, 0, src.size());
            src.close();
            dst.close();
        }
    }
} catch (Exception e) {

}

与えられた許可を確認してください

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
于 2017-08-22T11:49:28.747 に答える
1

Eclipse を使用している場合は、DDMS ビューに移動します。ファイル エクスプローラー タブから -> データ -> データ -> アプリケーション パッケージ名 -> データベース -> データベース名

データベースdbファイルを選択し、プルボタンをクリックします

于 2012-07-22T07:25:05.917 に答える