Instalowanie na karcie SD domyślnie

29

Chciałbym wiedzieć, czy istnieje sposób, aby powiedzieć Androidowi, aby domyślnie instalował aplikacje na karcie micro SD zamiast najpierw pobierać aplikacje do pamięci wewnętrznej, a następnie ręcznie przenieść je na kartę SD.

Dzięki

użytkownik2239505
źródło
szczególnie ze względu na odpowiedź @Yeradis na android.stackexchange.com/a/4976/156
GAThrawn
4
@GAThrawn Nie, to nie jest dupek tego. Pytanie, które podłączyłeś, brzmi raczej: „można przenieść aplikacje na SD”. Oto „jak określić domyślną lokalizację instalacji”. Ta sama ulica, inny dom.
Izzy

Odpowiedzi:

33

W tym artykule w HowtoGeek opisano możliwy sposób wykorzystania :

  • włączyć debugowanie USB
  • podłącz swoje urządzenie do komputera
  • wykonać polecenie adb shell pm setInstallLocation 2
    (lub nowej składni , adb shell pm set-install-location 2)
  • rozłącz, gotowe.

To polecenie ustawi domyślny cel instalacji urządzenia na karcie SD. To niekoniecznie oznacza, że wszystko się tam instaluje: tylko aplikacje obsługujące to będą tam się pojawiać, a deweloperzy mogą „unieważnić” to w swoich aplikacjach, jeśli uważają, że jest to potrzebne. Z powiązanego interfejsu API :

Zmienia domyślną lokalizację instalacji. Wartości lokalizacji:

  • 0: Auto - pozwól systemowi wybrać najlepszą lokalizację.
  • 1: Wewnętrzna - zainstaluj na wewnętrznej pamięci urządzenia.
  • 2: Zewnętrzne - zainstaluj na zewnętrznym nośniku.

Uwaga: jest to przeznaczone wyłącznie do debugowania; użycie tego może spowodować uszkodzenie aplikacji i inne niepożądane zachowanie.

Aby uzyskać więcej informacji na temat ADB i sposobu, w jaki możesz na przykład pobrać jego minimalną wersję na swój komputer (bez nadmiernej instalacji całego zestawu SDK), możesz zajrzeć na tag -wiki .


Aktualizacja: Aby uniknąć pomyłek z odpowiedzią t0mm13b , trochę luzu w procesie instalacji:

  1. znajdziesz aplikację w i zdecydujesz się ją zainstalować
  2. Po jego kliknięciu „Install” i zgodził się na terms / pozwoleń, jest pobierany do/data/local , czyli do swojego . Nie możesz tego zmienić.
  3. po zakończeniu pobierania .apkzostanie ono zainstalowane automatycznie. Gdzie to zależy od wielu rzeczy:
    • jeśli android:installLocationdeweloper nie określi właściwości w swoich aplikacjach Manifest, aplikacja zostanie zainstalowana w historii wewnętrznej. Kropka, brak innego wyboru (patrz: odwołanie do interfejsu API ).
    • jeśli android:installLocationjest ustawione na preferExternali dostępna jest pamięć zewnętrzna, przejdzie tam.
    • jeśli jest ustawiony na auto, to znowu zależy od:
      1. czy aplikacja zawiera widżety, usługi, chce zacząć od rozruchu i kilka innych rzeczy, idzie do pamięci wewnętrznej. Full stop, nie ma innego wyboru.
      2. idzie tam, gdzie wskazuje „domyślna lokalizacja instalacji” urządzeń
Izzy
źródło
może pomóc zawrzeć ostrzeżenie - nie ma gwarancji, że zadziała, zwłaszcza jeśli aplikacja ma własne widżety ... :)
t0mm13b 11.04.2013
Tak jak pisałem: tylko aplikacje obsługujące to będą tam :) Widżety, usługi itp. Mówią, że to nie obsługuje :)
Izzy
po wykonaniu polecenia adb shell pm errorInstallLocation 2 błąd: nie znaleziono urządzenia
moudrick
1
Brzmi to tak, jakbyś pominął dwa pierwsze kroki (włączenie debugowania USB i podłączenie urządzenia po tym) - lub jesteś w systemie Windows i nie zainstalowałeś odpowiednich sterowników. Proszę śledzić odpowiedni link i przejść stamtąd @moudrick.
Izzy
5

Tego nie można zmienić! Tak działa Android.

Wszystkie pliki do pobrania z Google Play trafiają do wewnętrznego systemu plików, a następnie z:

  • Ustawienia> Zarządzaj aplikacjami
  • Stuknij we wspomnianą aplikację, sprawdź, czy przycisk Przenieś na kartę SD jest włączony, możesz to zrobić.

Jeśli przycisk Przenieś na kartę SD jest wyłączony lub wyszarzony, prawdopodobnie uniemożliwia to działanie aplikacji - na przykład własnych widżetów na ekranie głównym.

Zobacz także tę odpowiedź na odpowiednim pasku bocznym po prawej stronie tej strony. :)

t0mm13b
źródło
1
Jesteś pewien, t0mm13b? Czy nie było komendy ADB adb shell pm setInstallLocation 2(np. SDCard), jak opisano tutaj ?
Izzy
1
Deweloper może określić to w Manifeście, aby dać aplikacji możliwość przeniesienia na kartę SD. android:installLocation="auto"Nie widziałem adb shell pm setInstallLocation 2, prawdopodobnie w tym przypadku
podajesz
1
Nie, t0mm13b - patrz moja odpowiedź i powiązany artykuł. Ustawia to domyślną lokalizację instalacji urządzenia . Więc jeśli Manifestmówi „auto”, to właśnie tam idzie. Jeśli Manifestmówi inaczej niż „auto”, idzie tam, gdzie Manifestmówi. Zobacz także: Referencje API , także tutaj dla pm set-install-locationkomendy (nowa składnia).
Izzy
1
Izzy - co określiłem w AndroidManifest android:installLocation- w rzeczywistości włącza Przenieś na kartę SD z ustawień zarządzania aplikacją ... niektórzy deweloperzy nie określają go i renderują przycisk, ale przyznaję - nigdy nie widziałem polecenia adb
t0mm13b
1
Ach, teraz rozumiem - inny punkt skupienia: Mówiłeś „jeśli aplikacja nie jest przeznaczona do zainstalowania na SD, nie możesz tego zrobić” - podczas gdy ja skupiałem się na tym, dokąd ona idzie domyślnie, chyba że określono inaczej . Ale proszę sprawdź pierwsze 4 wiersze odpowiedzi, mówią coś innego. Masz jednak rację: najpierw pobierane jest pobieranie/data/local , a następnie aplikacja jest instalowana. Ale w zależności od ustawień i manifestu jest on instalowany albo wewnętrznie, albo bezpośrednio na zewnątrz. // Jeśli chcesz szczegółowo to omówić: pamiętasz nasz pub, hmm, czat? :)
Izzy
4

Zainstaluj „Terminal Emulator dla Androida” w telefonie komórkowym i otwórz

$ su
# pm get-install-location
0[auto]
# pm set-install-location 2
# pm get-install-location
2[external]
Abhilash
źródło
2
ciekawe, ale musisz mieć root, aby to zadziałało
Robert S. Barnes
-2

Przejdź do „Zarządzaj aplikacjami”, a następnie wybierz kartę „Wszystkie” i znajdź „Sklep Google Play”. Stuknij w to, a następnie naciśnij przycisk „Odinstaluj aktualizacje”. Następnie przejdź do Sklepu Play, wszystkie aplikacje zostaną zainstalowane na karcie SD. Tak zrobiłem na moim QMobile A110 (Android 4.2).

zulqarnain
źródło
1
Myślę, że brakuje Ci środkowego kroku gdzieś, gdzie ustawiłeś domyślną lokalizację instalacji na kartę SD i nawet wtedy nie zawsze działa to w ten sposób dla każdej aplikacji.
Enigma,
-3

Rzecz w tym, że możesz zmienić domyślny katalog instalacyjny, jeśli Twój telefon jest zrootowany. Pobierz Lucky Patcher i stuknij w narzędzia, w których można znaleźć opcję zmiany domyślnego directort instalacji. ** Nie rób tego dla Androida 4 lub nowszego, ponieważ może to spowodować nieodwracalne zmiany. **

Vibhor
źródło
2
Według Android Version Market Share 2016 97,7% wszystkich użytkowników Androida używa Androida 4.0 lub nowszego w dniu opublikowania tej odpowiedzi, dlatego Lucky Patcher może powodować nieodwracalne zmiany u prawie wszystkich obecnych użytkowników Androida.
karel
2
Jakie by to były „nieodwracalne zmiany”? Nie zauważyłem ich na moich urządzeniach Kitkat :) Ale jak zauważył @karel: Jeśli uważasz, że nie należy go używać, dlaczego go polecasz?
Izzy