【原创】Android开发之ADB及ADB SHELl命令的应用
adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。
adb是Android SDK里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的android设备(如G1手机). 它的主要功能有:
* 运行设备的shell(命令行)
* 管理模拟器或设备的端口映射
* 计算机和设备之间上传/下载文件
* 将本地apk软件安装至模拟器或android设备
ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.
查看帮助:adb help
一、ADB命令
1、显示当前运行的全部模拟器
adb devices
2、对某一模拟器执行命令
adb –s 模拟器编号 命令
3、安装应用程序:
adb install –r 路径+应用名称(记得加上后缀)
4、卸载应用(暂时没成功)
adb uninstall
5、从电脑发送文件至设备
adb push <本地路径> <设备路径>
(在adb shell中通过pwd查看路径)
6、从手机至电脑
adb pull <设备路径> <本地路径>
7、获取管理员权限
adb root
8、获取设备的ID和序列号
adb get-product //个人表示使用没效果
adb get-serialno
9、无线调试
首先用数据线连接手机和电脑 执行以下命令
adb tcpip 5555
接下来断开数据线
查看手机ip地址
执行命令:adb connect 192.168.1.105:5555
即可远程调试设备
如果需要恢复到USB数据线,可以在命令行输入adb usb
我们也可以现在款adbwireless软件进行远程调试
10、重启、关机、进入recovery模式
重启 adb reboot
关机
进入recovery模式 adb reboot recovery
11、屏幕录像
开始录像 adb shell screenrecord /sdcard/demo.mp4
结束录像 ctrl+c
12、屏幕截图
截图 adb shell screencap -p /sdcard/1.png
复制到本地电脑 adb shell pull /sdcard/1.png 本地路径
二、ADB SHELL常用命令
输入adb shell命令后即可使用Linux系统下的一些命令像ls、cd、cat、mkdir等等
1、ls命令
2、列出安装程序列表
pm list packages
3、查看一个apk所在的路径
pm path 包名
4、
三、ADB HELP
1: Android Debug Bridge version 1.0.31
2:
3: -a - directs adb to listen on all interfaces for a connection
4: -d - directs command to the only connected USB device returns an error if more than one USB device is present.
5: -e - directs command to the only running emulator.returns an error if more than one emulator is running.
6: -s <specific device> - directs command to the device or emulator with the given serial number or qualifier. Overrides ANDROID_SERIAL environment variable.
7: -p <product name or path> - simple product name like 'sooner', or a relative/absolute path to a product
8: out directory like 'out/target/product/sooner'.
9: If -p is not specified, the ANDROID_PRODUCT_OUT
10: environment variable is used, which must
11: be an absolute path.
12: -H - Name of adb server host (default: localhost)
13: -P - Port of adb server (default: 5037)
14: devices [-l] - list all connected devices
15: ('-l' will also list device qualifiers)
16: connect <host>[:<port>] - connect to a device via TCP/IP
17: Port 5555 is used by default if no port number is specified.
18: disconnect [<host>[:<port>]] - disconnect from a TCP/IP device.
19: Port 5555 is used by default if no port number is specified.
20: Using this command with no additional arguments
21:
22: will disconnect from all connected TCP/IP devices.
23:
24: device commands:
25: adb push <local> <remote> - copy file/dir to device
26: adb pull <remote> [<local>] - copy file/dir from device
27: adb sync [ <directory> ] - copy host->device only if changed
28: (-l means list but don't copy)
29: (see 'adb help all')
30: adb shell - run remote shell interactively
31: adb shell <command> - run remote shell command
32: adb emu <command> - run emulator console command
33: adb logcat [ <filter-spec> ] - View device log
34: adb forward --list - list all forward socket connections.
35: the format is a list of lines with the following format:
36: <serial> " " <local> " " <remote> "\n"
37: adb forward <local> <remote> - forward socket connections
38: forward specs are one of:
39: tcp:<port>
40: localabstract:<unix domain socket name>
41: localreserved:<unix domain socket name>
42: localfilesystem:<unix domain socket name>
43: dev:<character device name>
44: jdwp:<process pid> (remote only)
45: adb forward --no-rebind <local> <remote>
46: - same as 'adb forward <local> <remote>' but fails
47: if <local> is already forwarded
48: adb forward --remove <local> - remove a specific forward socket connection
49: adb forward --remove-all - remove all forward socket connections
50: adb jdwp - list PIDs of processes hosting a JDWP transport
51:
52: adb install [-l] [-r] [-s] [--algo <algorithm name> --key <hex-encoded key> --iv <hex-encoded iv>] <file>
53: - push this package file to the device and install it
54: ('-l' means forward-lock the app)
55: ('-r' means reinstall the app, keeping its data)
56: ('-s' means install on SD card instead of internal storage)
57: ('--algo', '--key', and '--iv' mean the file is encrypted already)
58: adb uninstall [-k] <package> - remove this app package from the device
59: ('-k' means keep the data and cache directories)
60: adb bugreport - return all information from the device
61: that should be included in a bug report.
62:
63: adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all]
64: [-system|-nosystem] [<packages...>]
65: - write an archive of the device's data to <file>
66: .
67: If no -f option is supplied then the data is written
68: to "backup.ab" in the current directory.
69: (-apk|-noapk enable/disable backup of the .apks themselves
70: in the archive; the default is noapk.)
71: (-obb|-noobb enable/disable backup of any installed apk expansion
72: (aka .obb) files associated with each application; the default
73: is noobb.)
74: (-shared|-noshared enable/disable backup of the device's
75: shared storage / SD card contents; the default is noshared.)
76: (-all means to back up all installed applications)
77: (-system|-nosystem toggles whether -all automatically includes
78: system applications; the default is to include system apps)
79: (<packages...> is the list of applications to be backed up. If
80: the -all or -shared flags are passed, then the package
81: list is optional. Applications explicitly given on the
82: command line will be included even if -nosystem would
83: ordinarily cause them to be omitted.)
84:
85: adb restore <file> - restore device contents from the <file> backup archive
86:
87: adb help - show this help message
88: adb version - show version num
89:
90: scripting:
91: adb wait-for-device - block until device is online
92: adb start-server - ensure that there is a server running
93: adb kill-server - kill the server if it is running
94: adb get-state - prints: offline | bootloader | device
95: adb get-serialno - prints: <serial-number>
96: adb get-devpath - prints: <device-path>
97: adb status-window - continuously print device status for a specified device
98: adb remount - remounts the /system partition on the device read-write
99: adb reboot [bootloader|recovery] - reboots the device, optionally into the bootloader or recovery program
100: adb reboot-bootloader - reboots the device into the bootloader
101: adb root - restarts the adbd daemon with root permissions
102: adb usb - restarts the adbd daemon listening on USB
103: adb tcpip <port> - restarts the adbd daemon listening on TCP on the specified port networking:
104: adb ppp <tty> [parameters] - Run PPP over USB.
105: Note: you should not automatically start a PPP connection.
106: <tty> refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
107: [parameters] - Eg. defaultroute debug dump local notty usepeerdns
108:
109: adb sync notes: adb sync [ <directory> ]
110: <localdir> can be interpreted in several ways:
111:
112: - If <directory> is not specified, both /system and /data partitions will be updated.
113:
114: - If it is "system" or "data", only the corresponding partition
115: is updated.
116:
117: environmental variables:
118: ADB_TRACE - Print debug information. A comma separated list of the following values
119: 1 or all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp
120: ANDROID_SERIAL - The serial number to connect to. -s takes priority over this if given.
121: ANDROID_LOG_TAGS - When used with the logcat option, only these debug tags are printed.