回答:
エミュレータのファイルシステムは、ハードドライブ上のディレクトリにマップされません。エミュレータのディスクイメージはイメージファイルとして保存され、Eclipse(ツールバーのG1に見えるアイコンを探す)またはエミュレータバイナリ自体(オプションの説明については「emulator -help」を実行)のいずれかを介して管理できます。 。
コマンドラインからadbを使用して、実行中のエミュレーターに差し込むのが最善です。特定のディレクトリとファイル名を取得できる場合は、「adb pull」を実行して、データベースファイルをエミュレーターから通常のハードドライブに取得できます。
編集:これはルート化されていないデバイスでも機能するという提案を削除しました-エミュレーターと、ルートとしてadbを操作しているデバイスでのみ機能します。
adb pull
(正確なパスを使用しても)できません。
adb pull /data/data/com.activeandroid.test/databases/Application.db ~/Development/Application.db
以下のコメントで言及されている更新:
もうDDMSパースペクティブにいる必要はありません。Eclipse ウィンドウ>ビューの表示>その他...からファイルエクスプローラーを開くだけです。アプリを実行する必要はないようです。別のアプリファイルを参照できます。内容。ADBバージョン1.0.29を実行しています
または、古いアプローチを試すことができます。
Eclipse IDEでDDMSパースペクティブを開きます
(ウィンドウ>パースペクティブを開く>その他> DDMS)
そして最も重要な:
フォルダとファイルの階層を確認できるように、アプリケーションが実行されている必要があります。
次に、[ファイルエクスプローラ]タブで次のパスをたどります。
data> data> your-package-name> databases> your-database-file。
次に、ファイルを選択し、画面の右隅にあるディスケットアイコンをクリックして、.dbファイルをダウンロードします。データベースファイルをエミュレータにアップロードする場合は、電話アイコン(ディスケットアイコンの横)をクリックして、アップロードするファイルを選択します。
.dbファイルの内容を確認したい場合は、ここからダウンロードできるSQLiteデータベースブラウザを使用することをお勧めします。
PS:実際のデバイスからデータベースを表示する場合は、電話をルート化する必要があります。
Failed to pull selection
(null)
他の回答は非常に古くなっています。Androidのメーカーは、これはそれを行う方法は次のとおりです。
Androidデバイスからコンピューターにデータベースをプルする単純なbashスクリプトを作成しました(Linux、Macユーザー)
filename:android_db_move.sh使用法:android_db_move.sh com.example.app db_name.db
#!/bin/bash
REQUIRED_ARGS=2
ADB_PATH=/Users/Tadas/Library/sdk/platform-tools/adb
PULL_DIR="~/"
if [ $# -ne $REQUIRED_ARGS ]
then
echo ""
echo "Usage:"
echo "android_db_move.sh [package_name] [db_name]"
echo "eg. android_db_move.sh lt.appcamp.impuls impuls.db"
echo ""
exit 1
fi;
echo""
cmd1="$ADB_PATH -d shell 'run-as $1 cat /data/data/$1/databases/$2 > /sdcard/$2' "
cmd2="$ADB_PATH pull /sdcard/$2 $PULL_DIR"
echo $cmd1
eval $cmd1
if [ $? -eq 0 ]
then
echo ".........OK"
fi;
echo $cmd2
eval $cmd2
if [ $? -eq 0 ]
then
echo ".........OK"
fi;
exit 0
データベースはSQLiteファイルとして/ data / data / PACKAGE / databases / DATABASEFILEに保存されます。
[ファイルエクスプローラー]タブの[ DDMSパースペクティブ ]を選択するエミュレーターでデータベースファイルを確認(ファイルシステムから/にファイルシステムへ)できます。
1 現在利用可能なデバイス/エミュレータのリストをご覧ください。
$ adb devices
接続されたデバイスのリスト
G7NZCJ015313309デバイスエミュレータ-5554デバイス
9885b6454e46383744デバイス
2 デバイス/エミュレータでバックアップを実行します
$ adb -s emulator-5554 backup -f ~/Desktop/data.ab -noapk com.your_app_package.app;
3 data.abを抽出する
$ dd if=data.ab bs=1 skip=24 | openssl zlib -d | tar -xvf -;
あなたは/db
フォルダにデータベースを見つけるでしょう
$ dd if=data.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -
bash: adb: command not found
Android docsによると、MonitorはAndroid Studio 3.1で廃止され、Android Studio 3.2から削除されました。ファイルにアクセスするために、Android Studioには、開発ウィンドウの右下にある「デバイスファイルエクスプローラー」と呼ばれるタブがあり、エミュレーターファイルシステムにアクセスできます。ただ従う
/ data / data / package_name / databases
幸運を。
Android Studio 3.5の場合は、https://developer.android.com/studio/debug/device-file-explorer (表示->ツールウィンドウ->デバイスファイルエクスプローラー->->データベース)の手順を使用してそれをインストールします。