Разобрался, почему приложения не хотят ставиться на SD-карточку. Оказалось, что просто пока таких приложений ещё пока нет, но ставить их на карточку всё равно уже можно, только с небольшим вывертом. Перенёс несколько штук из телефона на карту. Расскажу, как.
I. Получение доступа к шеллу от телефона.
Длинный способ -- поставить (на "большой компьютер") и настроить adb. Короткий -- поставить на телефон Terminal Emulator. Описываю оба.
ADB
(0) Поставьте Android SDK.
(1) Пропишите себя в группу plugdev:sudo /usr/sbin/usermod -a -G plugdev $USER
(2) Пропишите настройки для udev (эти -- для Nexus One):# cat << EOF > /etc/udev/rules.d/90-android.rules
SUBSYSTEM=="usb|usb_device", SYSFS{idVendor}=="18d1", MODE="0660", GROUP="plugdev"
SUBSYSTEM=="usb|usb_device", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", SYMLINK+="android_adb"
SUBSYSTEM=="usb|usb_device", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", SYMLINK+="android_fastboot"
EOF
(3) Перелогиньтесь и проверьте, что вы в группе plugdev (id | grep plug
)
(4) На телефоне поставьте галочку на Settings -> Applications -> Development -> USB debugging
(5) Подключите телефон к компу посредством USB шнурка, смотрите, появился ли нужный девайс (ls -l /dev/andr*
)
(6) Запустите adb shell:adb shell
Если вам выдали доллар -- это шелл от телефона (не рутовый, конечно).
Альтернативный вариант -- поставить на телефон Terminal Emulator, и нижеперечисленные команды делать уже в нём.
II. Инсталляция на SD card.
(1) В шелле телефона пишем:pm getInstallLocation
в ответ получим0 [auto]
Это значит, что приложения будут сами выбирать, куда им ставиться. Но таких приложений, у которых в манифесте указано, куда они хотят ставиться, ещё нет. Поэтому в этом режиме "авто" всё будет ставиться в память телефона. Но это можно изменить
(2) В шелле телефона пишем:pm setInstallLocation 2
Это значит, что хотим непременно на SD card.
(3.1) Теперь можно пойти в Settings -> Applications -> Manage Applications, там ткнуть в любое приложение и нажать на (уже теперь не-серую) кнопочку "Move to SD card". Таким же образом перенести все "толстые" приложения. Не рекомендуется переносить на карточку часто используемые приложения, живые обои и т.п.
(3.2) Также можно пойти и в Маркет, где что-нибудь себе поставить. Ставиться оно будет сразу на SD card.
(4) "И увидел он, что это хорошо". Закончив работы по п. 3, надобно опять пойти в шелл телефона и восстановить там старое значение параметра InstallLocation:pm setInstallLocation 0
Деньги, как всегда, шлите мне по почте конвертами и бандеролями.
Android 2.2: adb; install to SD card
О, ништяк. У тебя какой тел? У меня Hero с 1.5 Это крайне фиговый способ, о такие костыли можно все ноги себе переломать. Вместо Terminal Emulator кошернее использовать ConnectBot, он помимо ssh умеет и локальную консоль. У меня есть ConnectBot, но я не знал, что он умеет и локально. Указание авторства само собой подразумевается. |