#android #jni
Пишу приложение с использованием jni. Библиотеке на C++ требуются файлы с данными. Как их добавить в проект, и как их можно будет открывать из jni?
Ответы
Ответ 1
Вот пример: тыц Добавляете в assets, а дальше используете обычный апи только сишный. Как пример выше по ссылке. Там пишется файл с данным и создается директория. Если я конечно правильно понял ваш вопрос. UPD Туда же: тыц-дваОтвет 2
В общем скомбинировал и обработал найденное на stackoverflow. Получилось следующее. В классе наследованном от Activity. private void assetsToFiles() throws IOException { // распаковать файлы из assets File dir = getFilesDir(); AssetManager assetManager = getAssets(); String[] files = null; files = assetManager.list(""); byte[] buffer = new byte[1024]; for(String filename : files) { File outfile = new File(dir, filename); if(outfile.exists()) continue; InputStream in; try{ in = assetManager.open(filename, AssetManager.ACCESS_STREAMING); }catch (java.io.FileNotFoundException e) { continue; } OutputStream out = new FileOutputStream(outfile); int read; while ((read = in.read(buffer)) != -1) { out.write(buffer, 0, read); } in.close(); out.close(); } } Эту функцию вызываю из onCreate. Нужные файлы помещаю в проекте в каталог assets. А программе их следует искать в каталоге, путь к которому возвращает getFilesDir(). Блок try пришлось сделать из-за того, что assetManager.list почему-то возвращает в списке несуществующее имя "images".
Комментариев нет:
Отправить комментарий