Ich versuche eine Android-App zu erstellen, die die NativeActivity
-Funktion des NDK verwendet. ich die folgende Struktur:Android - Schreiben/Speichern von Dateien nur aus nativem Code
- eine Reihe von nativen gemeinsam genutzten Bibliotheken in
/system/vendor/<company>
installiert; Ich arbeite mit einem benutzerdefinierten Android Bild gebaut, so gibt es kein Problem gibt es die Bibliotheken, die mit richtigen Berechtigungen und alles - ein paar Anwendungen, die die
NativeActivity
verwenden, die oben erwähnten auf den Bibliotheken wiederum von
Die im/system/vendor und in meinen Anwendungen installierten Bibliotheken verwenden einige Konfigurationsdateien . Es ist kein Problem, sie mit der Standard-C-API fopen/fclose
zu lesen. Aber diese Bibliotheken und meine Anwendung müssen auch einige Dateien als Ergebnis ihrer Operation speichern, wie Konfiguration, einige Laufzeit-Parameter, Kalibrierung Daten, Protokolldateien usw. Mit dem Speichern der Dateien gibt es ein kleines Problem, wie ich Ich darf nicht in /system/vendor/...
schreiben (da das Dateisystem unter "/ system/..." schreibgeschützt ist und ich will das nicht hacken).
Also, was wäre der beste Weg, um diese Dateien zu erstellen und zu speichern und wo wäre die beste "konform mit Android" Speicherbereich?
Ich habe in der Android-NDK Google-Gruppe ein paar Threads zu lesen und hier auf, so dass entweder the internal application private storage oder the external SD card, erwähnt aber da ich keine Erfahrung mit Android erweitert habe wir bin ich nicht sicher, was das sein würde, richtiger Ansatz. Wenn der Ansatz eine bestimmte Android-API umfasst, wäre ein kleines Codebeispiel in C++ sehr hilfreich. Ich habe ein paar Beispiele gesehen, die Java und JNI betreffen (e.g. in this SO question), aber ich möchte mich jetzt davon fernhalten. Es scheint auch ein Problem bei der Verwendung von C++ der nativen Aktivität internalDataPath/externalDataPath
-Paar (a bug that makes them be always NULL) zu sein.