2010-05-20 43 views
1

我的资产在哪里安装?为什么我的资产文件夹不能安装在模拟器上?

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

提取我的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 
# 

我只是想包我的应用预先建立的数据库,然后打开它以在需要时获取数据。

刚在我的摩托的Droid,无法访问/打开数据库,就像模拟器:

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

从架构文件动态构建DB是,因为它的这样的问题一个缓慢的过程(大约每秒5-10个语句是我获得的吞吐量)。

+0

我在使用'的BeginTransaction()'和'单个事务执行架构建设取得至少速度的数量级endTransaction()' – 2010-06-02 19:36:32

回答

2

你的资产和资源被编译到应用程序中,你不能看到他们通过文件系统,你只能通过代码访问它们作为沃尔克建议。如果您需要部署与您的应用程序的数据块,检查这个帖子:

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

+0

直接命中。谢谢! – 2010-05-20 17:40:03

0

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

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

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

[...] 
+0

所以考虑到我的目标是打开数据库并使用它,你建议我打开数据库文件并将其复制到某个地方?我会在哪里复制它?谢谢。 – 2010-05-20 13:12:34

相关问题