[Android] Domyślna instalacja aplikacji na karcie pamięci

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!
Jest to wpis nadesłany do nas przez jednego z Czytelników – bartholomaios – dzękujemy!

Zachęcony ostatnimi wydarzeniami w serwisie Ubuntu-pomoc postanowiłem napisać jakiś artykuł aby pokazać, że nam zależy na tym serwisie… przez kilka ostatnich dni poszukiwałem tematu, przeszukałem swoją listę Ubuntu TODO i nie znalazłem tam żadnego godnego uwagi i w miarę łatwego (szybkiego) w rozwiązaniu zagadnienia. Ostatnio jednak bawiłem się moim Androidem i doskwierał mi problem małej ilości miejsca na programy, które koniecznie chciały znajdować się w pamięci telefonu, a nie na karcie SD. W sieci znalazłem rozwiązanie mojego problemu, ale opisane na system Windows, dlatego postanowiłem opisać dla Was jak zrobić to z naszego ulubionego systemu. Rozwiązanie to ustawia domyślne miejsce instalacji programów na karcie SD.

Uwaga! Opisane rozwiązanie działa na Androidach 2.2 i nowszych, przy czym nie umożliwia przeniesienia wszystkich aplikacji, ale również nie wymaga rootowania systemu.

Na poczatek potrzebujemy pobrać pakiet Java JDK (ja mam zainstalowaną 6):

sudo apt-get install openjdk-6-jdk

Następnie pobieramy i instalujemy Google’s Android SDK, potrzebujemy tylko Android Debug Bridge, który się znajduje w wersji SDK Tools zatem wystarczy nam SDK Tools Only. Po pobraniu rozpakowujemy w katalogu domowym a następnie:

cd android-sdk-linux/tools
~/android-sdk-linux/tools$ ./android

W otwartym oknie zaznaczamy Android SDK Platform-tools i klikamy Install packages… . Akceptujemy regulamin i po chwili mamy ściągnięty i zainstalowany dodatek. Możemy wyłączyć naszego managera.


Przejdźmy do telefony w telefonie: Ustawienia -> Aplikacje -> Dla programistów -> Debugowanie USB.
Pozwoli nam to wpływać na aplikacje zainstalowane na telefonie z komputera, po wykonaniu całej tej czynności możemy odznaczyć tą opcję dla bezpieczeństwa.

Wracamy do komputera i:

cd android-sdk-linux/platform-tools
~/android-sdk-linux/platform-tools$ sudo ./adb start-server

Rezultat:

* daemon not running. starting it now on port 5037 *
* daemon started successfully *

Następnie sprawdzamy, czy nasze urządzenie jest wykrywane:

~/android-sdk-linux/platform-tools$ ./adb devices

Rezultat:

List of devices attached
7837788e433c    device		// powinniśmy zobaczyć nasze urządzenie

Na koniec:

~/android-sdk-linux/platform-tools$ ./adb shell pm setInstallLocation 2
~/android-sdk-linux/platform-tools$ ./adb kill-server

Gotowe.

Żeby cieszyć się większą ilością miejsca trzeba wejść w ustawienia aplikacji i przegrać je na kartę SD, tak jak wspominałem wcześniej nie wszystkie aplikacje można przegrać na kartę, nie zaleca się również przegrywania aplikacji które mają uruchomione widget’y.

W razie gdy byśmy chcieli cofnąć całą operacje, trzeba powtórzyć wszystkie kroki zamieniając przedostatnią linijkę w terminalu na:

~/android-sdk-linux/platform-tools$ ./adb shell pm setInstallLocation 0
Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • RafciX

    Warto zwrócić uwagę na to, że całą tą operację można wykonać z poziomu samego urządzenia z Androidem ;)
    Wystarczy ściągnąć emulator terminala (ja polecam ten) i wpisać w nim odpowiednie polecenia.
    -Aby ustawić domyślne miejsce instalacji na kartę SD należy wpisać:
    pm setInstallLocation 2
    -Aby ustawić domyślne miejsce instalacji apek na to, wybrane przez system (pamięć wewnętrzna) należy wpisać:
    pm setInstallLocation 0

    W sumie skoro na Ubuntu-pomoc są tez artykuły o Androidzie to w wolnym czasie musiałbym posłać mini-poradnik jak uzyskać na telefonie/tablecie z Androidem internet przez kabel USB :D

    • http://www.ubuntu-pomoc.org Łukasz Schmidtke

      A czy nie wymaga to przypadkiem roota? :)

      • RafciX

        No nie :P
        Skoro na komputerze nie trzeba root’a to w emulatorze terminala na Androidzie też nie trzeba root’a ;) Polecenie „adb shell” uruchamia na urządzeniu powłokę, do której mamy dostęp z poziomu naszego terminala (zauważyłem to np. po tym, że zarówno na Androidzie jak i na komputerze mam na początku znak # oraz działają takie same polecenia).
        W związku z tym, że nie wiem, czy czy czasem nie chodzi Ci o to, czy internet na urządzeniu z Androidem wymaga root’a to informuję Cię, że nie wymaga. Oczywiście na komputerze uprawnienia root’a są potrzebne, aby uaktywnić routing, ale na tablecie/telefonie z Androidem nie są potrzebne, a samo połączenie internetowe można stworzyć przy pomocy pewnej apki i ustawień (apka służy do tego, aby dostać się do tych ustawień, ponieważ tak normalnie to są one niedostępne). Taki mały opis tego jak ja to robię :D Oczywiście w związku z tym, że jestem leniwy przygotowałem sobie krótkie skrypty do tego :P

        • http://www.gry.ubuntu-pomoc.org mentorious

          Nic skomplikowanego w tym nie ma (tj. udostępnianiu połączenia), od 2.3 wzwyż włączasz Tethering w ustawieniach i po podłączeniu kabla Ubuntu wykrywa automatycznie połączenie po kablu ;)

          Inna sprawa z wifi, ale tez za wiele roboty nie ma prócz ręcznej edycji ewentualnych haseł i ręcznego dhcp.

    • Maciek

      Rozumiem ,że chodzi o udostępnianie internetu po kablu ? W Androidzie 2.3.5 działa to bez problemu , podpinasz kabel , odznaczasz opcje i działa . Działa nawet ruter Wi-Fi :)

      • RafciX

        No właśnie też mały problem leży w tym, że nie wiem od której wersji Androida to działa :P Ja na tablecie mam wersję 3.2 i też chodzi superowo. A tam… troche poczytam i będę wiedział.
        Coś mi się wydaje, że z powodu szkoły najszybciej ten artykuł poślę w weekend ;)

    • Norbijas

      Witam jak wylaczyc terminal czy zakonczyc sesje.

    • Norbijas

      zrestartowalem komorke a inny sposob?Spr gdzie instaluje programy.

  • Norbijas

    z pozycji telefonu nic nie dziala na zmiane instalacji cna karte sd

  • Norbijas

    poprosze o jakies wskazowki do instalacji tego programu sdk w zipie na windows bez problemu zainstalowalem a tu jakies problemy.

  • Norbijas

    po rozpakowaniu programem ark i wpisaniu komendy w terminalu nie znajduje katalogu.