Как известно Android версии 2.2 и выше позволяет устанавливать приложения на карту памяти. Однако, для этого нужно, чтобы сам разработчик разрешил проделывать подобное со своим творением. Далеко не все разработчики такие добрые, некоторые из них либо забывают об этом, либо просто забивают. А может и вовсе не знают о такой возможности. Я хочу научить вас, как исправлять это дурацкое недоразумение.
Вот как это делается из-под Windows на примере офисного приложения Picsel Smart Office (если пользуетесь другим способом редактирования apk, то переходите сразу к пунктам 6-9):
Вот как это делается из-под Windows на примере офисного приложения Picsel Smart Office (если пользуетесь другим способом редактирования apk, то переходите сразу к пунктам 6-9):
- Скачиваем и устанавливаем java-машину (ссылка).
- Скачиваем отсюда первые два файла. Оба файла нужно распаковать в папку WINDOWS (распаковываются WinRar'ом)
- Создаем в корне диска C:\ папку 1111 и размещаем там файл .apk, который хотим научить устанавливаться на SD-карту. Переименовываем его в 1111.apk, для удобства.
- Пуск - Выполнить - CMD - ОК (В Win7 и Vista путь выглюдит иначе: Пуск - Все Программы - Стандартные - Командная строка - ОК).
- Набираем в консоли латиницей код разборки .apk и ждем окончания процесса:КодC:
cd c:\
apktool d 1111\1111.apk 1111\1111 - Заходим в папку C:\1111\1111 и открываем AndroidManifest.xml любым текстовым редактором (можно Блокнотом)
- Находим примерно такую строку (у каждой программы свое значение параметров, но сами параметры везде одинаковы):Код<manifest android:versionCode="6342" android:versionName="1.7.0" package="com.picsel.tgv.app.ue2fileviewer"
- Заменяем эту строку на следующую:Код<manifest android:versionCode="6342" android:versionName="1.7.0" android:installLocation="auto" package="com.picsel.tgv.app.ue2fileviewer"
Что мы сделали? Добавили параметр android:installLocation="auto" между номером версии и названием пакета. - Сохраняем файл.
- Набираем в консоли латиницей код сборки .apk (вы ведь еще не закрывали консоль, нет?), ждем окончания процесса:Кодapktool b 1111\1111
В папке C:\1111\1111\ появятся новые папки: build и dist. Заходим в dist. - Подписываем приложение. Я использую для этого скрипт Auto-sign
Auto_sign.zip ( 1.53 килобайт ) Кол-во скачиваний: 289
Как пользоваться скриптом? Распакуйте содержимое внутренней папки архива "Auto-sign" в dist, переименуйте 1111.apk в update.zip, запустите sign.bat, дождитесь окончания процесса, переименуйте update_signed.zip в xxxx.apk (где xxxx - любое название, придумайте его сами).
Ну вот и все, теперь можно ставить программу (или игру) на телефон.
- Поверх оригинальной версии адаптированная вряд ли поставится. В таком случае, удалите оригинал и ставьте свою переделанную. А для того, чтобы не потерять данные при удалении, используйте Titanium Backup;
- На Android 2.2 программы на карту памяти переносятся лишь частично (около 40-50% от оригинального размера), а на Android 2.3 и выше программы могут переноситься почти целиком (до 90-95% от оригинального размера);
- CyanogenMod 6 и 7 вообще не проверяют Manifest, т.е. программы можно перемещать на карту памяти даже без согласия разработчика и выполнения данной инструкции.
- Эта инструкция написана для того, чтобы у некоторых людей (вроде меня) не было необходимости прибегать к app2sd и прочей ерунде, нагружающей флешку, батарейку и процессор.
За информацию Спасибо! Alelug с 4Пда