Приложение Android, требующее больших файлов данных - PullRequest
9 голосов
/ 10 июня 2009

Я работаю над приложением для Android, которое должно работать с несколькими файлами данных на общую сумму около 30MB. Я собрал тест, и эмулятор вышел из строя с OutOfDiskSpace. Отладка на устройстве не удалась даже с меньшим размером данных. После прочтения групп Google, кажется, что нигде не указан предел размера приложения, и никто из Google не предоставил подробности об этом. Учитывая, что есть приложения для iPhone, размер которых превышает 100MB, наложение такого небольшого ограничения на приложения для Android кажется странным, за исключением того факта, что у вас относительно небольшой объем общего доступного пространства для хранения приложений (<<code>100MB) ,

Теперь на мой вопрос:

Какие методы вы используете, чтобы справиться с этим лимитом? Если у вас есть приложение, которое требует более 10 МБ, вы помещаете его на веб-сервер и занимаетесь его первой загрузкой? Если да, как вы справляетесь с контролем доступа, чтобы данные могли получать только ваше приложение?

Ответы [ 2 ]

12 голосов
/ 12 июня 2009

Обычный метод - загрузка данных при первом запуске приложения и сохранение данных на SD-карту. это связано с тем, что внутренняя память является дефицитным товаром в нынешнем состоянии Android. Установка приложений на SD-карту официально не поддерживается, а в HTC Dream и Sapphire отсутствует внутренняя память.

Вот ссылка на ветку официальной группы разработчиков Android, где инженер Google Android (Дайан Хэкборн) отвечает на этот самый вопрос

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

0 голосов
/ 10 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...