/ / Einheitlicher Zugriff auf Dateien aus nativem Code - android, android-ndk, native-activity

Einheitlicher Zugriff auf Dateien aus nativem Code - android, android-ndk, native-activity

Meine Anwendung verfügt über zwei Datenquellen: Standard-Assets-Ordner und heruntergeladene Datei. Jetzt greife ich mit auf Assets (aus C ++ - Code) zu AAssetManager_open, AAsset_read usw. Und ich lese Daten aus heruntergeladenen Dateien mit guten alten fopen, fread usw. Ist es möglich, mit auf einheitliche Weise auf alle Daten zuzugreifen? fopen, fread Zeug? Mit anderen Worten, kann ich mich ändern?

AAssetManager* assetManager = g_state->activity->assetManager;
AAsset* asset = AAssetManager_open(assetManager, filename, AASSET_MODE_UNKNOWN);
int ret = AAsset_read(asset, buf, size);

zu

char *filenameFull = SomehowGetFullPathToAssetsFile(filename);
FILE *fp = fopen(filenameFull, "rb");
int ret = fread(buf, size, 1, fp);

Antworten:

2 für die Antwort № 1

Kurze Antwort: Nein.

Lange Antwort: Nein, Sie können nicht einheitlich darauf zugreifen, da sich die Assets in Ihrer APK-Datei und nicht in einem normalen Dateisystem befinden. Eine Problemumgehung besteht darin, Ihre Ressourcen in einer Setup- / Initialisierungsphase in das Dateisystem zu extrahieren und sie anschließend von dort aus zu verwenden .