Rozmowa z telefonem przez terminal
Wstęp
Tworząc aplikacje na telefony, czasem pojawia się pytanie „Jak usunąć plik z Androida” albo „Gdzie jest AppData na Androidzie”. Na szczęście wraz z Visual Studio mamy dostępne takie narzędzie jak ADB (Android Debug Bridge), które pozwala na wywoływanie komend shellowych bezpośrednio na telefonie.
Jestem rootem…
Przede wszystkim musisz uruchomić narzędzie adb z opcją root’a. Uruchom adb z menu Visual Studio: Tools -> Android -> Android ADB Command Prompt
. Oczom Twoim ukaże się piękne okienko konsolowe. Ale to nie jest zwykła konsola, ta wersja ma dostęp do adb. Teraz, aby uruchomić adb w trybie root’a, wpisz poniższe polecenie:
adb root
W tym momencie możesz dostać kilka odpowiedzi:
- nie można tego zrobić ze względu na jakiś błąd, np: „adb: unable to connect for root: no devices/emulators found” – co znaczy, że nie znaleziono żadnego urządzenia – wtedy po prostu uruchom emulator lub podłącz fizyczne urządzenie do kompa
- serwer już chodzi jako root („adbd is already running as root”)
- zrestartowano serwer w trybie roota (w tej sytuacji możesz nie otrzymać żadnego komunikatu)
Jeśli nie możesz zrootować telefonu
Nie każdą wersję emulatora można zrootować. Te z opcją GooglePlay z jakiegoś powodu nie są rootowalne. Dlatego też, jeśli otrzymałeś taki komunikat, musisz się upewnić, że nie masz w emulatorze opcji Google Play. Z menu Visual Studio wybierz: Tools -> Android -> Android Device Manager
Z tego managera wyedytuj emulator, którego chcesz używać
Wszystko rozbija się o to, żeby telefon nie miał opcji Google Play. Pozostaw to puste:
Gdy odznaczysz tę opcję i klikniesz OK, manager zainstaluje nowe urządzenie bez Google Play Store. Takie urządzenie będziesz już mógł rootować za pomocą komendy adb root
tak jak wyżej.
Połączenie z telefonem
Gdy już udało Ci się uruchomić serwer adb w trybie roota, możesz teraz „połączyć się” z jego shellem. Po prostu wpisz polecenie:
adb shell
Jeśli masz kilka urządzeń, będziesz musiał podać nazwę konkretnego. Najpierw pobierz te nazwy poleceniem:
adb devices -l
To polecenie pokaże Ci pełną listę podłączonych urządzeń, np:
List of devices attached
emulator-5554 device product:sdk_gphone_x86 model:Android_SDK_built_for_x86 device:generic_x86 transport_id:5
Teraz możesz połączyć się z konkretnym urządzeniem, podając jego nazwę:
adb -s emulator-5554 shell
lub jego transport_id:
adb -t 5 shell
Jeśli wszystko poszło ok, powinieneś zobaczyć taką lub podobną zachętę:
generic_x86:/ #
UWAGA!
Jeśli zamiast hasha (#) widzisz dolar ($), to znaczy, że nie jesteś zalogowany jako root i coś poszło nie tak. Sprawdź, czy wykonałeś wszystkie kroki jeszcze raz.
W tym momencie możesz bawić się shellem na swoim emulatorze.
Jak usunąć plik?
Jeśli znasz chociaż troszeczkę polecenia Linuxa… liznąłeś go kiedykolwiek, to już jest dobrze. Jeśli kojarzysz polecenia takie jak ls
, czy cd
, to nie powinieneś mieć więcej pytań. Po prostu czuj się jak na Linuchu. Jeśli jednak jesteś zielony w te klocki, to lepiej żebyś ogarnął podstawy pracy z konsolą Linuxa. Kilka podstawowych poleceń w zupełności wystarczy:
- ls – skrót od LIST, a więc listuje wszystkie „foldery” będące na tym poziome
- cd – tak jak w Windows – Change Directory – przechodzi do wskazanego „folderu”
- rm – usuwa podany plik
I to wszystko… Hulaj dusza, piekła nie ma!
Gdzie pliki z mojego programu?
Pliki programu powinieneś umieszczać w odpowiednim katalogu z Environment.SpecialFolder. W taki sposób też prosto możesz poznać dokładną ścieżkę do takiego katalogu:
string targetDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); //tutaj przykład do LocalAppData
Jeśli masz problem lub znalazłeś błąd w artykule, podziel się w komentarzu