Zrzut ekranu telefonu z Androidem

Ostatnio stałem się szczęśliwym posiadaczem telefonu Samsung Galaxy ACE, poznaję więc tajniki Androida. Na marginesie muszę napisać, że telefon i sam Android bardzo pozytywnie mnie zaskoczyły. Telefon kosztował mnie mniej, niż warta jest moja używana Nokia E72 (której aktualnie się pozbywam, bo przejściach z nieuczciwym kupującym na Allegro), a potrafi dużo więcej. Do jakości wykonania także nie można się przyczepić, z zakupu więc jestem bardzo zadowolony.

Do rzeczy jednak. Ponieważ mam zacięcie programistyczne, rozgryzam różne narzędzie okołoprogramistyczne. Ponieważ zostałem ostatnio zainspirowany do zajęcia się problemem zrzutów ekranu, które jakoby wymagały „rootowania” urządzenia, postanowiłem przyjrzeć się, jakie możliwości daje Android SDK, który mam zainstalowany na swoim Ubuntu. Krótka lektura, pozwoliła odnaleźć w katalogu tools (podkatalogu Android SDK, rzecz jasna) program ddms (Dalvik Debug Monitor). Po uruchomieniu go i podpięciu telefonu przez USB (musi być włączony tryb debugowania), mogłem zaznaczyć nazwę mojego urządzenia, a następnie wybrać Device/Screen Capture. Ta czynność wystarcza, żeby na ekranie komputera pojawił się wykonany właśnie zrzut ekranu:

Oczywiście program ddms występuje także w Android SDK dla innych systemów operacyjnych (np. Windows). Dla użytkowników Ubuntu istotna może być natomiast informacja, że aby telefon był poprawnie obsługiwany, to urządzenie musi mieć właściwe prawa dostępu. Ja dopisałem regułę udev:

SUBSYSTEM==”usb”, ATTR{idVendor}==”04e8″, ATTR{idProduct}==”689e”, MODE=”0666″, GROUP=”plugdev”

w pliku /etc/udev/rules.d/51-android.rules. Aby uzyskać identyfikatory producenta i produktu wymienione wyżej, wystarczy wydać komendę lsusb i odnaleźć właściwą linię:

Bus 002 Device 007: ID 04e8:689e Samsung Electronics Co., Ltd

Powyższeej modyfikacji nie robiłem oczywiście tylko po to, żeby zrobić testowy zrzut ekranu. Jest ona konieczna, żeby bezpośrednio ze środowiska programistycznego uruchamiać programy na telefonie i je debugować.

Aktualizacja:

Jak zauważył kolega Pyciu we wpisie zrzut ekranu można zrobić bajecznie prosto – trzymając „wstecz” wystarczy wcisnąć środkowy przycisk. Zrzut zapisywany jest na karcie pamięci. Nie wiem czy działa to w każdym telefonie, ale na Galaxy Ace sprawdza się rewelacyjnie.