Как включить перенос приложения на SDCard (и поддержку Android <2.2 по-прежнему)? - PullRequest
13 голосов
/ 26 октября 2010

Как я могу разрешить перемещать мое приложение на SD-карту?

отредактировал заголовок, чтобы сделать вопрос более релевантным ответам.

Ответы [ 4 ]

28 голосов
/ 26 октября 2010

Вы должны установить запись android:installLocation в файле AndroidManifest.xml (подойдут значения preferExternal или auto).

Внимание!Для этой сборки должен быть уровень API 8 (Android 2.2).

14 голосов
/ 26 октября 2010

Вы также можете установить android:installLocation и по-прежнему целевую версию Android 1.6.

В ваш AndroidManifest.xml вы должны вставить мин версию SDK, подобную этой

    <uses-sdk android:minSdkVersion="4" />

Это будетубедитесь, что ваше приложение работает только на Android 1.6 и выше.Это, конечно, вызовет ошибку компилятора в вашем проекте Eclipse.Это потому, что 1.6 SDK не знает о android:installLocation.Чтобы это исправить, щелкните правой кнопкой мыши свой проект в пространстве проекта Eclipse (если вы используете Eclipse, не знаете, как он работает в других средах разработки или сборке Ant), затем перейдите к опции «Android» и выберите «Project».Build Target "to Android 2.2.

Это удалит ошибку, показанную выше, и вы сможете скомпилировать / экспортировать файл APK.Таким образом, APK будет работать на Android 1.6-2.1 как обычно, а на Android 2.2 это позволит вам использовать SD-карту для установки / перемещения приложения.

Однако, предупреждающее слово: Это может быть источником несовместимости, если вы не будете осторожны.Таким образом, требуется расширенная фаза тестирования, потому что вы не заметите напрямую, если используете функцию 2.x, потому что Eclipse не будет отображать ее как ошибку, потому что она использует Android 2.2 SDK в качестве ссылки.

Таким образом, у вас в основном есть 2 варианта: 1. Выполнять действия, описанные выше, только при экспорте / подписи приложения (т. Е. Непосредственно перед публикацией этой новой версии), а затем установить его обратно или 2.Тщательно протестируйте свои Приложения на Устройстве 1.6 или Эмуляторе и посмотрите, не выходит ли он из строя в любой момент, потому что Приложение использует функцию, доступную только на более новых ОС, чем 1.6.

В зависимости от сложности вашего приложения, первоеодин из них, как правило, безопаснее, но рискует, что вы забыли это сделать один раз.Это может привести к тому, что для этого обновления у пользователя не будет возможности установить его на SD-карту.Проблема выбора 2 заключается в том, что если вы не все достаточно хорошо протестировали, ваше приложение может неожиданно вызвать ForceClose, когда устройства Android 1.6 пытаются вызвать функции / функции, доступные только в 2.x.

0 голосов
/ 25 декабря 2013

В этом руководстве есть четкие инструкции по переносу приложения на SD-карту.

http://mobile.tutsplus.com/tutorials/android/move-to-sd-card/

Также имеется указатель на то, когда использовать функцию SD-карты http://developer.android.com/guide/topics/data/install-location.html#ShouldNot

0 голосов
/ 04 мая 2013

Пожалуйста, следуйте нижеприведенной процедуре для телефонов Android.

  1. Скопируйте Android SDK в вашу систему.
  2. Подключите ваш мобильный телефон к системе и включите опцию USB отладки на вашем мобильном телефоне.
  3. Открыть строку cmd и перейти к пути android sdk\platform-tools
  4. Запустить команду adb shell pm setInstallLocation 2
  5. Зайдите в настройки своего мобильного телефона и проверьте, включена или нет опция «Переместить на SD-карту».
...