3

アセットはどこにインストールされますか?

新しいアプリでアセットフォルダーを利用しています。フォルダに2つのファイルがあります。アプリをエミュレーターにインストールすると、アセットにアクセスできなくなり、さらにエミュレーターファイルシステムにアセットが表示されなくなります。

私のapkを抽出し、アセットフォルダーが存在することを確認しました:

$ ls -ltr assets/
total 16
-rw-rw-r--. 1 brad brad 1050 2010-05-20 00:33 schema-DashDB.sql
-rw-rw-r--. 1 brad brad 9216 2010-05-20 00:33 dash.db

エミュレーターでは、アセットフォルダーはありません:

# pwd
/data/data/com.gtosoft.dash
# ls -l
drwxr-xr-x system   system            2010-05-20 00:46 lib
# 

ビルド済みのデータベースをアプリにパッケージ化し、それを開いて必要なときにデータを取得したいだけです。

エミュレータのように、Moto Droidで試してみましたが、DBにアクセス/開くことができませんでした。

DBFile=/data/data/com.gtosoft.dash/assets/dash.db

スキーマファイルからオンザフライでDBを構築することは、そのプロセスが非常に遅いため問題外です(1秒あたり約5〜10ステートメントでスループットが得られます)。

4

2 に答える 2

3

アセットとリソースはアプリケーションにコンパイルされます。ファイル システムからそれらを見ることはできません。Volker が提案したように、コードを介してのみアクセスできます。アプリで DB をデプロイする必要がある場合は、次の投稿を確認してください。

http://www.helloandroid.com/tutorials/how-have-default-database

于 2010-05-20T17:30:24.123 に答える
0

AssetManager を使用する場合は、アセット フォルダーを基準としたアセットへのパスを指定するだけです。

[...]
Resources res = this.getResources( );
AssetManager assetMan = res.getAssets( );

BufferedReader buff = new BufferedReader( new InputStreamReader(
        assetMan.open( "dash.db" ) ), 8192 );

[...]
于 2010-05-20T06:12:55.017 に答える