2009-06-25 4 views
3

私の計画は、仮想デバイス上にデータベースをあらかじめ用意しておき、データベースを私のアプリケーションの配布物に組み込むことです。Android仮想デバイスでデータベースファイルを検索するにはどうすればよいですか?

ただし、データベースファイルが見つかりません。

私のハードディスクにはどこですか? どうすれば入手できますか?

私は、ADBを使用して接続し、私は「LS」を行なったし、その後、実際のディレクトリの、この曖昧なリストで怖がってしまってみました:場合でも、私のCDを超えるに/データ/データ/あなた

sqlite_stmt_journals 
cache 
sdcard 
etc 
system 
sys 
sbin 
proc 
init.rc 
init.goldfish.rc 
init 
default.prop 
data 
root 
dev 

.package.here/databases私はまだ実際のデータベースファイルにアクセスできません。私はsqlite3を使用することはできませんまたはプルしてください。権限を変更する方法はありますか?

これは私のエミュレータで正常に動作しますが、実際のデバイスでは失敗します。 adb pull /data/data//databases/mydb.db。

答えて

4

ファイルに定義されているように、your.package.hereは、アプリケーションに関連付けられたパッケージを表します。/data/data/your.package.here/databasesにする必要があります。

+0

私はadbでアクセスしようとするとアクセスが拒否されます。ファイルにアクセスする方法は? – gregm

+0

アプリケーションがAFAIKデバッグモードでコンパイルされている場合、adbをデータベースファイルのパスに直接プルすることができます。しかし、中間のディレクトリ(例えば、/ data)をlsで見ることはできません。また、プロダクションモードでコンパイルすると、データベースにアクセスできないと思われます。 – CommonsWare

1

あなたのデータベース(/data/data/your.package.here/data databasesにあります)に移動するには、シェルをナビゲートする際にrootユーザーであることを確認してください。これを行うには、コマンドプロンプトを入力してから「su」と入力します。 rootユーザーであればどこでも移動できます。

1

以下のブログ記事は、データベースの検索方法とアクセス方法の良い解決方法を示しています。このポストでは、データベースを見つけるためにコマンドラインで便利なユーティリティを提供するbusyboxを使用する方法について説明し、sqlite3を使用してDBとテーブルにアクセスする方法のいくつかの有用な例を示します。

http://davanum.wordpress.com/2007/12/11/android-how-to-poke-around-the-sqlite3-databases/

関連する問題