Ostatnio chciałem uzyskać zrzut ekranu z telefonu z systemem Android (na potrzebny wpisu na blogu) i po krótkim poszukiwaniu okazało się to dużo prostsze niż myślałem.

Krok 1: konfiguracja komputera

W sytuacji gdy używamy Linuksa, może być konieczna odpowiednia konfiguracja, opisana w tym wpisie: Dostęp do Internetu za pomocą HTC G1 z systemem Android (Proxoid). Ja przynajmniej ma tak skonfigurowanego demona UDEV, zawsze można spróbować bez tych kroków, jeżeli zadziała, to proszę o sygnał.

Dla przypomnienia, oto co trzeba zrobić:

Pierwszym elementem jest utworzenie pliku /etc/udev/rules.d/11-android.rules o następującej zawartości:

1
2
SUBSYSTEMS=="usb", SYSFS{idVendor}=="0bb4", SYSFS{idProduct}=="0c02", MODE="0666", OWNER="nazwa użytkownika"
SUBSYSTEMS=="usb", SYSFS{idVendor}=="0bb4", SYSFS{idProduct}=="0c01", MODE="0666", OWNER="nazwa użytkownika"

Aktualizacja

W przypadku jądra 2.6.32 powyższy wpis sprawiał mi problemy (telefon był ciągle wykrywany, nagle przestawał być widziany). Dopiero zmiana tego wpisu na poniższy rozwiązała problemy:

1
2
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c01", ENV{ACL_MANAGE}="1", MODE="0666", OWNER="nazwa użytkownika"
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c02", ENV{ACL_MANAGE}="1", MODE="0666", OWNER="nazwa użytkownika"

Swoją drogą, wg. komunikatów podawanych przez jądro to użycie atrybuty SYSFS nie jest zalecane przynajmniej od wersji 2.6.32, zamiast tego poleca się użycie właśnie atrybutu ATTR.

Należy wpisać swoją nazwę użytkownika po deklaracji OWNER. Teraz restart demona:

# /etc/init.d/udev restart

I można podłączać telefon. Po wydaniu poniższego polecenia powinniśmy otrzymać podobny komunikat:

# lsusb  | grep High
Bus 001 Device 017: ID 0bb4:0c02 High Tech Computer Corp.

Krok 2: Pobranie SDK dla telefonu

Ze strony Googla należy pobrać odpowiednie SDK dla telefonu kompatybilne z używanym systemem operacyjnym na komputerze biurkowym: http://developer.android.com/sdk/index.html. Pobranie SDK należy rozkopresować w jakimś katalogu.

Ja korzystam z SDK w wersji 1.6_r1.

Krok 3: Konfiguracja telefonu

Ostatnim elementem związanym z konfiguracją sprzętu jest włączenie trybu „USB debugging”. Czyli z MENU wybrać opcję Settings->Applications->Development, i zaznaczyć opcję USB debugging.

Okienko Android USB Deugging

Okienko Android USB Deugging

Krok 4: Zrzut ekranu

Po tych krokach związanych z konfiguracją telefonu i komputera pozostaje już tylko uruchominie aplikacji o nazwie Dalvik Debug Monitor i do dzieła. Czyli należy wejść do katalogu z SDK do telefonu, następnie do podkatalogu tools i uruchomić aplikację ddms.

Dalvik Debug Monitor

Dalvik Debug Monitor

Jeżeli aplikacja pomyślnie wykryje telefon (powinien pojawić się w okienku Name) to możemy z menu wybrać pozycję Device->Screen capture, co spowoduje zrobienie zrzutu ekranu telefonu. Pozostaje teraz tylko zapisać obrazek.

Źródła