Debugowanie USB

Dziś chciałbym napisać o bardzo ważnej kwestii w programowaniu na androida, mianowicie o testowaniu aplikacji na fizycznym urządzeniu. Często ułatwia nam to życie, gdy testujemy bardziej wymagające aplikacje, na przykład korzystające z kamery urządzenia. Kolejną niewątpliwą zaletą debugowania przez USB jest oszczędność czasu. O ile w przypadku słabszych komputerów użytkowanie symulatora androida może być obciążające, o tyle proces wdrożenia na fizyczny telefon jest zwykle prosty i niezwykle krótki. Przejdźmy więc do rzeczy. 1. Konfiguracja telefonu - napiszę tu jedynie o doświadczeniach ze swoimi urządzeniami, jednak w większości powinno być bardzo podobnie. Pierwszym krokiem jest wejście w ustawienia Interesuje nas zakładka "Opcje programistyczne". Dodam jeszcze, że w starszych telefonach z serii XPERIA, spotkałem się z tym, że zakładka ta występowała nie bezpośrednio w ustawieniach, lecz dopiero po przejściu w zakładkę "Aplikacje". W opcjach programistycznych zaznaczamy "Debugowanie USB". Można sobie także zaznaczyć opcję "Zostaw włączony", gdy jesteśmy w fazie np. dopinania jakiejś aplikacji na ostatni guzik i często sprawdzamy zmiany. Znowu przy zagadnieniach związanych z geolokacją, przyda nam się opcja "Pozorowanie lokacji". Warto zapoznać się z resztą możliwości w tej zakładce. 2. Konfiguracja komputera - podłączamy telefon do komputera kablem dostarczonym nam przez producenta. W przypadku telefonów z serii XPERIA (wiem też o HTC) powinien wyświetlić się komunikat, że potrzebne sterowniki znajdują się na karcie telefonu i pytanie o ich instalację. Trzeba je zainstalować. W przypadku innych telefonów, sterowniki należy najpierw ściągnąć i dopiero zainstalować. To w zasadzie jest już wszystko. Od tej pory, kiedy podłączymy telefon do komputera, system znajdzie go, a w powiadomieniach telefonu powinniśmy mieć informację o włączonym trybie debugowania i znajomą ikonkę androida. 3. Wdrażanie projektu na telefon - tutaj sprawa jest już najprostsza. Jeżeli poprawnie wykonaliśmy powyższe instrukcje, czas teraz odpalić Eclipse z pluginem ADT. Algorytm jest taki sam jak zwykle, klikamy na projekcie prawym przyciskiem myszy, wybieramy Run as a następnie Android Application. Niezwykle ważne jest, aby wersja Androida, któremu dedykujemy aplikację była zgodna z posiadaną przez nas na telefonie, gdyż Eclipse dynamicznie przydziela odpowiednim projektom odpowiednie urządzenia. Stąd też gdy podłączymy telefony z systemem 2.3.3 i 4.0.3, oraz stworzymy dwa takie projekty, to każdy z nich będzie widział tylko "swoj" telefon. Powinniśmy zobaczyć coś takiego : Znaczy to, że wszystko poszło po naszej myśli. Zaznaczamy nasze urządzenie, możemy też zaznaczyć okienko "Use same device for future launches", aby przy każdej kompilacji nie wybierać urządzenia ponownie (choć w Eclipse to różnie działa) i cieszymy się zwiększonym komfortem pracy :-) - napiszę tu jedynie o doświadczeniach ze swoimi urządzeniami, jednak w większości powinno być bardzo podobnie. Pierwszym krokiem jest wejście w ustawienia

Komentarze

Wujcio

Bardzo podoba mi się twoja strona i twoja praca jaką w nią wkładasz z tego powodu polecam ją swoim znajomym którzy stawiają pierwsze kroki w Androidzie więc postaram się przybliżyć ci pewną kwestię o której mógłbyś tutaj napisać i z którą pewnie nie miałeś styczności (niestety ja miałem) bo nie posiadałeś jakiegoś badziewia z Androidem a ja niestety miałem taki problem. Czasami występuję sytuacja że jest problem z instalacją sterowników o których piszesz a występuję to na przykład jeśli posiada się jakieś rzadkie urządzenie(z tego co zauważyłem to jest częste w przypadku starych tabletów) bądź w przypadku jakby ktoś na jakiejś płytce z prockiem stawiał Androida(to tak mi z głowy przyszło że tam pewnie by taki problem wystąpił). Problem objawia się tym że sterowniki zwyczajnie nie pasują do urządzenia. W takiej sytuacji ja musiałem zrobić to co było na tej stronie - http://developer.android.com/tools/extras/oem-usb.html a dokładnie "Caution: You may make changes to android_winusb.inf file found inside usb_driver\ (for example, to add support for other devices), however, this will lead to security warnings when you install or upgrade the driver. Making any other changes to the driver files may break the installation process.". Sprawdziłem w Windowsie jak jest widoczne moje urządzenie i dopisałem odpowiednią cześć do pliku ze sterownikami. Jakbyś był bardziej zainteresowany tematem to tu jest więcej o pisaniu sterowników dla USB http://msdn.microsoft.com/en-us/library/windows/hardware/ff540283%28v=vs.85%29.aspx . Moje badziewne urządzenie udało mi się dopiero za szóstym razem podłączyć(za pierwszym razem robiłem z jakiegoś poradnika i byłem zdziwiony że nie działa a ostatnia próba z wyżej wymienionych była około 3 miesiące później a ta dowodzi że wszystko jest do rozwiązania tylko zależy ile czasu na to poświecimy) a masa ludzi jeszcze sobie z tym nie poradziła i pewnie sobie nie poradzi. Z ciekawości jeszcze dodam że wokół podpinania tabletów niektórych tabletów do kompa powstały legendy i baśnie a także zabobony.

TNTeener

Mam problem. Nie dawno dostałem HTC Explorer A310e. Wziąłem kabel USB, podłączam do kompa, instaluje sterowniki a eclipse - wykrywa tylko AVD (Jaja se jakieś ze mnie robi). W SDK Managerze zainstalowałem "Google USB Driver". Na telefonie jest Android 2.3.5 a w projekcie 2.3.3. To przez to może być? Debugowanie USB mam oczywiście włączone. Możecie mi pomóc?

Mateusz Koza

W niektórych telefonach Google USB Driver nie jest wymagany. W zasadzie ostatnio zauważyłem nawet, że instalacja sterowników nie zawsze jest potrzebna :D Skoro na telefonie jest android w wersji wyższej, niż wybierasz w projekcie, to nie powinno to także stwarzać problemu. A zainstalowałeś HTC Sync? Spójrz tutaj http://stackoverflow.com/questions/10991143/usb-debugging-not-working-on-htc-explorer,

TNTeener

Zainstalowałem HTC Sync ale nic nie pomogło.. :(

TNTeener

Poradziłem sobie. W run configurations ustawiłem "Launch active devices or AVD/s" na "Active devices" i zadziałało. Dziękuje za pomoc.

Erneriusz

Żeby w eclipse były widoczne telefony Samsunga (na pewno samsung galaxy gio) to trzeba zainstalować Samsung Kies (instalują się wraz z nim sterowniki do telefonu)

name

Nie trzeba Kiesa, wystarczy sam driver. Do ściągnięcia ze strony Samsunga.

Piotr

Sorki za zamieszanie - wystarczyło odinstalować właśnie apkę z telefonu, która pochodziła z innego komputera

Siwym

Mam taki problem. W satrej wersji adt widziało mojego Galaxy tab2. Niestety dysk mi padł i ściągnąłem nową wersję. Tylko nie widzi ani tabletu nie tel (ARC S) mało tego nie chce mi się uruchomić żadne urządzenie wirtualne. Oczywiście wszystkie sterowniki mam zainstalowane.