Я пытаюсь создать приложение для Android, которое использует средство NativeActivity
для NDK.
У меня есть следующая структура:
- набор встроенных общих библиотек, установленных в
/system/vendor/<company>
; я работаю с пользовательским образцом для Android, поэтому нет проблем с наличием там библиотек с правильные разрешения и все - несколько приложений, использующих
NativeActivity
, которые в свою очередь зависят от библиотек упомянутый выше
Библиотеки, установленные в /system/vendor, и мои приложения используют пару
файлы конфигурации. Там нет проблем с их чтением с использованием стандартного API C
fopen/fclose
. Но эти библиотеки и мое приложение также должны хранить некоторые файлы
в результате их работы, например, конфигурации, некоторых параметров времени выполнения, калибровки
данные, файлы журналов и т.д. При хранении файлов возникает небольшая проблема, так как мне не разрешено писать в /system/vendor/...
(поскольку файловая система под "/system/..." смонтирована только для чтения, а я не хотите взламывать это).
Итак, что было бы лучшим способом создания и хранения этих файлов, и где бы лучше всего "соответствовать области Android"?
Я читал пару потоков в группе Android android-ndk Google, и здесь, на SO, которые упоминают либо внутреннее хранилище частных приложений, либо внешняя SD-карта, но, поскольку у меня нет расширенного опыта работы с Android, я не уверен, какой будет правильный подход. Если подход включает в себя некоторые конкретные Android API, небольшой пример кода на С++ будет очень полезен; Я видел несколько примеров, связанных с Java и JNI (например, в этом вопросе SO), но я хотел бы держаться подальше от этого прямо сейчас.
Также, похоже, проблема с использованием на С++ родной активности
internalDataPath/externalDataPath
пара (ошибка, которая делает их всегда NULL).