Android - хранение больших файлов во время компиляции - PullRequest
0 голосов
/ 29 августа 2011

Как точно можно описать такую ​​простую вещь в этой излишне сложной среде?

Да, я прочитал документацию по Хранилищу данных для Android примерно 54,5 раза.Но я не могу найти место, где документация описывает, как вам следует размещать файлы на внешнем хранилище во время компиляции.

Вот что я хочу сделать: я хочу включить пару (больших) (10)-20mb) аудио файлы в моем приложении.Естественно, я не хочу, чтобы они хранились во внутренней памяти, потому что они слишком большие.Так что помещать их в res / raw не вариант (потому что, если я правильно понимаю, вещи в res / raw будут помещаться во внутреннюю память телефона, верно?)

В документации только сказано, что "если вы хотите хранить статические файлы во время компиляции, используйте res / raw ".Теперь, если Android достаточно умен, чтобы поместить эти файлы во внешнее хранилище само по себе, тогда я навсегда благодарен ... Но я почему-то сомневаюсь в этом.Любая помощь приветствуется :) (Извините, если мне кажется, что у меня есть отношение, я просто потратил слишком много времени на что-то такое простое)

Еще раз спасибо:)

ОБНОВЛЕНИЕ: ЯВ конечном итоге загрузка файлов из приложения вместо включения их во время установки.Спасибо за помощь, ребята!

Я столкнулся с проблемой при попытке загрузки через URL, потратил много времени, пытаясь заставить его работать, и в конце концов проблема заключалась в том, что я не объявилправильное разрешение в файле манифеста Android!Поэтому всем, кто хочет загружать материалы в свои приложения, не забудьте установить разрешения в манифесте Android, вот необходимые мне разрешения:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

Поместите их выше начала тега

Ответы [ 3 ]

0 голосов
/ 29 августа 2011

как разместить файлы во внешнем хранилище во время компиляции .

Я предполагаю, что приведенное выше является опечаткой, и вы имеете в виду во время установки .

Что касается вашего требования - во время установки невозможно дать указание менеджеру приложений Android распаковывать разные части APK в разные места.

Кроме того, нет никакой гарантии, что загруженный APK будет сохранен во внутренней или внешней памяти (где он будет оставаться, если не будет удалено иное).

И, кроме того, нет гарантии, что даже если устройство имеет внешнее хранилище, оно будет доступно во время установки или будет иметь достаточно свободного места.

На данный момент меня интересуют аудиофайлы размером 10-20 МБ - либо они очень длинные (по длительности), либо кодируются с высокой скоростью передачи данных. Если это последнее, то это не имеет особого смысла, так как большинство мобильных устройств имеют довольно плохое воспроизведение звука (в относительном выражении) ... только некоторые мысли, чтобы обдумать.

Лично я считаю, что предложение Маха о загрузке после установки может быть лучшим подходом, но мои комментарии о доступности внешнего хранилища остаются в силе.

0 голосов
/ 29 августа 2011

Правильный подход к решению вашей проблемы на Android - «не ставьте их вместе с вашим приложением».Просто загрузите их при первом запуске с вашего веб-сервера (используя HTTP-клиент API) или, если эти файлы будут обновлены независимо от самого приложения, подготовьте их как отдельное «приложение» для загрузки пользователем через Market.

0 голосов
/ 29 августа 2011

Если ваши большие файлы находятся в APK, они будут храниться везде, где хранится APK - это может быть как внутреннее, так и внешнее, и кажется, что это не то, что вам нужно.Наиболее вероятным вариантом для вас является размещение файлов на веб-сайте, и при первом запуске приложения оно должно заметить, что файлы не существуют, и получить их после установки.

...