Установка приложения на SD-карту в Android sdk 2.2

Я сталкиваюсь с этой проблемой и нахожу решение этого вопроса с последних 2 недель.

Сейчас я разработал android приложение для клиента, размер которого 54 MB, из которых 52 MB только изображения/фотографии.

[Edit: I need to keep images in "drawable" folder ]

Поэтому я хочу установить его на sd-карту на Android SDK 2.2, для этого я уже установил android:installLocation="preferExternal" в файле AndroidManifest.xml. Я создал 256MB sd-карту при создании avd , размер кучи - 192 , размер ram - 192

но он все еще показывает мне ошибку:

[2010-08-27 17:58:28 - demo_test] Failed to upload demo_test.apk on device 'emulator-5554'
[2010-08-27 17:58:28 - demo_test] java.io.IOException: Unable to upload файл: No space left on device
[2010-08-27 17:58:28 - demo_test] Запуск отменен!

Edit:

alt text

  1. Это проблема, связанная с памятью, внутренней или внешней?
  2. Что я должен сделать, чтобы запустить приложение и все еще тестировать с эмулятором?
  3. Как установить приложение на sd-карту в Android sdk 2.2?
9
задан Jonas 21 December 2010 в 15:11
поделиться

4 ответа

Действительно ли размер SD-карты 256 МБ? Иногда я забываю суффикс и получаю что-то очень маленькое.

Вы также всегда можете увеличить размеры до 512, 256, 266 и попробовать еще раз, чтобы убедиться, что это что-то другое.

Кроме того, вывод Logcat тоже был бы неплох.

Редактировать: Судя по всему, вы не можете просто «установить» приложение на SD-карту, даже если на ней свободно 30+ гигабайт. Установка зависит еще и от внутренней памяти телефона даже в 2.2.

Пример: Nexus one имеет 512 МБ встроенной памяти. ОС Android занимает необходимую оперативную память для камеры, графического процессора, ядра и т. д., оставляя пользователю всего около 190 МБ пространства для приложений (что будет еще меньше из-за уже установленных приложений и т. д.).

HTC Hero, с другой стороны, имеет только 288 МБ встроенной памяти, что делает его очень маленьким «оперативкой размером с приложение».

В зависимости от телефона 90-мегабайтное приложение будет установлено на SD-карту на Nexus One, но не на Hero из-за нехватки памяти.

Причина, по которой вы получаете эту ошибку, заключается в том, что после того, как ОС Android извлекает необходимую оперативную память из этих 192 МБ, «оперативной памяти размера приложения» недостаточно для хранения этого приложения размером 50+ МБ.

Я думал, что installLocation установит прямо на SD, но это не так.

Блог Видар Вестнес подтвердил то, что я описал выше, проведя тест с приложениями разных размеров на своем HTC Desire..

10
ответ дан 4 December 2019 в 07:22
поделиться

вы можете проверить, действительно ли смонтирована SD-карта и достаточно ли места, с помощью команды running

adb shell df

в каталоге android-sdk/tools он показывает, какие разделы смонтированы в данный момент, насколько они велики и сколько свободного места доступно

1
ответ дан 4 December 2019 в 07:22
поделиться

Я предлагаю вам попробовать увеличить доступную внутреннюю память (скриншот показывает 43 МБ), на случай, если .apk сначала копируется туда, прежде чем он будет установлен на SD-карту операционной системой.

5
ответ дан 4 December 2019 в 07:22
поделиться

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

9
ответ дан 4 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: