为什么我的资源文件夹没有安装在模拟器上?

时间:2010-05-20 04:58:09

标签: android sqlite assets

我的资产安装在哪里?

我在新应用中使用资源文件夹。我在文件夹中有两个文件。当我在模拟器上安装我的应用程序时,我无法访问我的资产,而且我无法在模拟器文件系统上看到它们。

提取我的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上尝试过,无法访问/打开数据库,就像模拟器一样:

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

从模式文件中动态构建数据库是不可能的,因为它是一个如此缓慢的过程(每秒大约5-10个语句是吞吐量)。

2 个答案:

答案 0 :(得分:2)

您的资产和资源被编译到应用程序中,您无法通过文件系统查看它们,您只能通过Volker建议的代码访问它们。如果您需要在应用中部署数据库,请查看以下帖子:

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

答案 1 :(得分:0)

如果使用AssetManager,则只需指定资产相对于资产文件夹的路径。

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

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

[...]