Почему папка с активами не установлена ​​на эмуляторе? - PullRequest
3 голосов
/ 20 мая 2010

Куда устанавливаются мои активы?

Я использую папку активов в моем новом приложении. У меня есть два файла в папке. Когда я устанавливаю свое приложение на эмуляторе, я не могу получить доступ к своим ресурсам, и, кроме того, я не могу видеть их в файловой системе эмулятора.

Извлек мой 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 ]

3 голосов
/ 20 мая 2010

Ваши активы и ресурсы скомпилированы в приложение, вы не можете видеть их через файловую систему, вы можете получить к ним доступ только через код, как предложил Volker. Если вам нужно развернуть БД с вашим приложением, проверьте этот пост:

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

0 голосов
/ 20 мая 2010

Если вы используете AssetManager, вы просто указываете путь к ресурсу относительно папки ресурсов.

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

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

[...]
...