Talks on adb - Day 2 (pdf version)

8
Talks on adb Talks on adb Day 2 Day 2 [email protected] [email protected] 2010.07 2010.07

description

adb, debugging

Transcript of Talks on adb - Day 2 (pdf version)

Page 1: Talks on adb - Day 2 (pdf version)

Talks on adbTalks on adb

Day 2Day 2

[email protected]@tmax.co.kr2010.072010.07

Page 2: Talks on adb - Day 2 (pdf version)

DebuggerDebugger

Java DebuggingJava DebuggingJava DebuggingJava Debugging

Android Android

Debugging ToolsDebugging Tools

adb (Day 2)adb (Day 2)

Page 3: Talks on adb - Day 2 (pdf version)

adb Architectureadb Architecture

Development Machine Target Machine

Client

adb.exeADT plugin

DDMS

Device/Emulator

emulator.exeadbd (daemon)

on 5554 (console)

on 5555 (adb)

Dev.Host

Server

adb.exe

on 5555 (adb)

on 5037 USB

Page 4: Talks on adb - Day 2 (pdf version)

adb Commandsadb Commands

OptionsOptions--dd--ee--s <serialNumber>s <serialNumber>

Ports and NetworkingPorts and Networkingforward <local> <remote>forward <local> <remote>

ScriptingScripting--s <serialNumber>s <serialNumber>

GeneralGeneraldevicesdevices

DebugDebuglogcatlogcatjdwpjdwp

DataData

ScriptingScriptingwaitwait--forfor--devicedevice

ServerServerstartstart--serverserverkillkill--serverserver

ShellShellshellshell

DataDatainstallinstallpushpushpullpull

Page 5: Talks on adb - Day 2 (pdf version)

adb Commands adb Commands 사용사용 시나리오시나리오

adb shelladb shell

#ls /data/app#ls /data/app(DDMS File Explorer)(DDMS File Explorer)

adb pull adb pull

Extract .apkExtract .apk

Page 6: Talks on adb - Day 2 (pdf version)

adb devicesadb devices

Server (ADB_HOST mode)Server (ADB_HOST mode)>adb fork>adb fork--server serverserver server1. adb_commandline()1. adb_commandline()2. adb_main()2. adb_main()

ClientClient>adb devices>adb devices1. adb_commandline()1. adb_commandline()2. adb_query(“host:devices”)2. adb_query(“host:devices”)2. adb_main()2. adb_main()

fdevent like UDS pairsfdevent like UDS pairsusb_init()usb_init()local client initlocal client initclient socket thread start to 5555, 5557, ...client socket thread start to 5555, 5557, ...install_listener()install_listener()

socket_loopback_serversocket_loopback_server on 5037on 5037fdevent_loop()fdevent_loop()

2. adb_query(“host:devices”)2. adb_query(“host:devices”)_adb_connect(_adb_connect(““host:versionhost:version””))_adb_connect(_adb_connect(““host:host:devices”devices”))

connect to 5037connect to 5037write length & service stringwrite length & service string

read response coderead response coderead length & response stringread length & response string

이미지를 표시할 수 없습니다 . 컴퓨터 메모리가 부족하여 이미지를 열수 없거나 이미지가 손상되었습니다 . 컴퓨터를 다시시작한 후 파일을 다시 여십시오 . 여전히 빨간색 x가 나타나면 이미지를 삭제한 다음 다시 삽입해야 합니다 .

3

3. 3. handle_host_requesthandle_host_request()()list_transportslist_transports()()write to reply_fdwrite to reply_fd

Page 7: Talks on adb - Day 2 (pdf version)

adb shell lsadb shell ls

Server (ADB_HOST mode)Server (ADB_HOST mode)>adb fork>adb fork--server serverserver server1. adb_commandline()1. adb_commandline()2. adb_main()2. adb_main()

ClientClient>adb shell ls>adb shell ls1. adb_commandline()1. adb_commandline()2. adb_connect(“shell:ls”)2. adb_connect(“shell:ls”)2. adb_main()2. adb_main()

fdevent like UDS pairsfdevent like UDS pairsusb_init()usb_init()local client initlocal client initclient socket thread start to 5555, 5557, ...client socket thread start to 5555, 5557, ...install_listener()install_listener()

socket_loopback_serversocket_loopback_server on 5037on 5037fdevent_loop()fdevent_loop()

2. adb_connect(“shell:ls”)2. adb_connect(“shell:ls”)connect to 5037connect to 5037write transport_typewrite transport_type

write length & service stringwrite length & service string

이미지를 표시할 수 없습니다 . 컴퓨터 메모리가 부족하여 이미지를 열수 없거나 이미지가 손상되었습니다 . 컴퓨터를 다시시작한 후 파일을 다시 여십시오 . 여전히 빨간색 x가 나타나면 이미지를 삭제한 다음 다시 삽입해야 합니다 .

3

3. 3. handle_host_requesthandle_host_request()()acquire_one_transportacquire_one_transport()()asocketasocket-->transport is changed>transport is changed

Page 8: Talks on adb - Day 2 (pdf version)

Interaction with EmulatorInteraction with Emulator

Console on 5554Console on 5554>telnet localhost 5554>telnet localhost 55541. Commands1. Commands

eventevent

adb on 5555adb on 55551. redirect host port(5555 or 5557 1. redirect host port(5555 or 5557

or ...) to guest(10.0.2.15:5555)or ...) to guest(10.0.2.15:5555)slirp_redir()slirp_redir()

eventeventgeo, gsm, smsgeo, gsm, smsnetwork, powernetwork, power

goldfish_device_set_irqgoldfish_device_set_irq

......

2. Play!2. Play!smssms send 01011111111 Hello!send 01011111111 Hello!

slirp_redir()slirp_redir()2. ping to adb server2. ping to adb serveremulator: sent '0012host:emulator:5555' emulator: sent '0012host:emulator:5555'

to ADB serverto ADB server2. adb_connect(“shell:ls”)2. adb_connect(“shell:ls”)

connect to 5037connect to 5037write transport_typewrite transport_type

write length & service stringwrite length & service string

smssms send 01011111111 Hello!send 01011111111 Hello!gsm call 01011111111gsm call 01011111111gsm accept 01011111111gsm accept 01011111111