エミュレーターのような Android デバイスから sqlite データベースを取得するにはどうすればよいですか?
10 に答える
これらのコマンドを使用して、デバイスからデータベースを取得できます。これらのコマンドを 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"
- デバイスを PC に接続します
- でコマンドプロンプトを開く
/sdk-directory/tools
- タイプ
adb pull /data/data/com.example.app/databases/database.db
はcom.example.app
アプリケーション パッケージ名、database.db
はデータベース ファイルです。
これは、デバイスがルート化されている場合です。そうでない場合は、次の手順を試してください
Android アプリ データベースを表示および管理する最良の方法は、このライブラリを使用することですhttps://github.com/sanathp/DatabaseManager_For_Android
単一の Java アクティビティ ファイルです。Java ファイルをソース フォルダに追加するだけで、アプリ データベースのテーブルを表示したり、テーブルに行を更新、削除、挿入したりできます。アプリからすべてを実行できます。
開発が完了したら、src フォルダーから Java ファイルを削除します。
それは私を大いに助けました.あなたも助けてくれることを願っています.
ここで 1 分間のデモを見ることができます: http://youtu.be/P5vpaGoBlBY
1 つのコマンドでこれらすべての中間段階をスキップできます。
PC シェルで次を実行します。
adb -d shell 'run-as <package_name> cat /data/data/<package_name>/databases/<db_name>' > <local_file_name>
adb root
adb remount
adb pull <remote> <local>
アプリケーションでプログラム的に行う
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"/>
Eclipse を使用している場合は、DDMS ビューに移動します。ファイル エクスプローラー タブから -> データ -> データ -> アプリケーション パッケージ名 -> データベース -> データベース名
データベースdbファイルを選択し、プルボタンをクリックします