Ну, у вас есть доступ к stdio.h.Так что, если он находится в известном месте (скажем, на SD-карте), вы можете просто использовать его как путь.И в сети есть много уроков о том, как использовать stdio (fopen, fclose и т. Д.).
Проблема в том, что ресурсы, которые вы объединяете в самом apk (либо в res / raw, либо в assets), остаютсявнутри apk после установки.Хуже всего то, что по умолчанию они будут сжаты, что делает чтение неосуществимым.Этого можно избежать, и самый простой способ - переименовать актив, чтобы иметь расширение .mp3 (или есть другие).Причина этого заключается в том, что по умолчанию .mp3 не сжимается, независимо от того, является ли он mp3-файлом.Есть другие расширения, которые вы можете использовать, и способы сказать инструментам не сжимать ваши данные, если вам не нравится именовать все ваши активы с помощью .mp3 в конце.
Итак, у вас есть несколько вариантовздесь:
Загрузите свои ресурсы из сети при первом запуске, поместите их в ненавязчивое место (вероятно, лучше всего получить этот путь из sdk, когда вы выполняете загрузку), ииспользуйте это.
Сохраните ваши ресурсы в apk (помните расширение .mp3, в папке assets).При первом запуске извлеките ресурсы в папку, к которой у вас есть доступ (и не раздражает пользователя), и используйте ресурсы оттуда.
(что я делаю) Сохранитьваши ресурсы в apk (снова .mp3) и используйте jni для чтения непосредственно из apk.Да, JNI немного медленный, но вы все равно не должны слишком много читать из файловой системы, и уж точно не в критической точке производительности.У Nvidia есть очень полезный код, который вы можете использовать, вы можете найти его здесь , он есть в примере кода, если я помнюВнутри папки libs есть несколько хороших библиотек общего назначения, которые вы можете использовать, которые соответствуют stdio, за исключением того, что он также читает из самого apk.
Надеюсь, это поможет.