adb命令详解
来源:互联网 发布:淘宝一键装修免费软件 编辑:程序博客网 时间:2024/05/16 07:26
ADB是一个功能强大的命令行工具。通过它可以直接和模拟器或真机进行交互。它是一个具有客户端和服务器端的程序,它主要由三个部分组成:
1:客户端,它运行在你的开发机上,你可以通过执行adb命令来唤起一个客户端。其他的工具例如:ADT插件以及DDMS也可以创建一个ADB客户端。
2:服务端,它运行在你的后台进程,这个服务管理客户端和运行在你模拟起或真机上的守护进程。
3:守护进程,它运行在每台模拟器或真机的后台进程。
当你启动一个adb客户端的时候,客户端会首先检测是否已经有adb 服务进程运行,如果没有运行,那么它会首先启动一个服务进程,当服务进程启动后,服务进程绑定本地的5037端口,并且监听所有来自adb 客户端的命令,所有的adb客户端通过5037与adb 服务端进行交互。
服务端之后与所有运行的模拟器或真机建立链接,它通过一组范围从5555 到5585的奇数的端口检索到所有的模拟器或真机。每一台模拟器或真机需要获取一对连续的端口,偶数端口用于控制台的链接,奇数端口用于adb的链接。
当然,如果你用Eclipse开发,并且也安装了ADT插件,那么你没必要通过adb命令行与模拟器或真机交互,ADT插件已经完美的将adb整合进了Eclipse IDE.当然在此还是提倡多使用adb命令行,这样的话比较方便自定义一些debug方法,同时也可以更好的理解其工作原理。
adb命令参数详解:
1 root@ithouge-OptiPlex-780:~# adb --help 2 Android Debug Bridge version 1.0.29 3 4 -d - directs command to the only connected USB device 5 returns an error if more than one USB device is present. 6 -e - directs command to the only running emulator. 7 returns an error if more than one emulator is running. 8 -s - directs command to the USB device or emulator with 9 the given serial number. Overrides ANDROID_SERIAL 10 environment variable. 11 -p - simple product name like 'sooner', or 12 a relative/absolute path to a product 13 out directory like 'out/target/product/sooner'. 14 If -p is not specified, the ANDROID_PRODUCT_OUT 15 environment variable is used, which must 16 be an absolute path. 17 devices - list all connected devices 18 connect [:] - connect to a device via TCP/IP 19 Port 5555 is used by default if no port number is specified. 20 disconnect [[:]] - disconnect from a TCP/IP device. 21 Port 5555 is used by default if no port number is specified. 22 Using this command with no additional arguments 23 will disconnect from all connected TCP/IP devices. 24 25 device commands: 26 adb push - copy file/dir to device 27 adb pull [] - copy file/dir from device 28 adb sync [ ] - copy host->device only if changed 29 (-l means list but don't copy) 30 (see 'adb help all') 31 adb shell - run remote shell interactively 32 adb shell - run remote shell command 33 adb emu - run emulator console command 34 adb logcat [ ] - View device log 35 adb forward - forward socket connections 36 forward specs are one of: 37 tcp: 38 localabstract: 39 localreserved: 40 localfilesystem: 41 dev: 42 jdwp: (remote only) 43 adb jdwp - list PIDs of processes hosting a JDWP transport 44 adb install [-l] [-r] [-s] [--algo --key --iv ] 45 - push this package file to the device and install it 46 ('-l' means forward-lock the app) 47 ('-r' means reinstall the app, keeping its data) 48 ('-s' means install on SD card instead of internal storage) 49 ('--algo', '--key', and '--iv' mean the file is encrypted already) 50 adb uninstall [-k] - remove this app package from the device 51 ('-k' means keep the data and cache directories) 52 adb bugreport - return all information from the device 53 that should be included in a bug report. 54 55 adb backup [-f ] [-apk|-noapk] [-shared|-noshared] [-all] [-system|-nosystem] [] 56 - write an archive of the device's data to . 57 If no -f option is supplied then the data is written 58 to "backup.ab" in the current directory. 59 (-apk|-noapk enable/disable backup of the .apks themselves 60 in the archive; the default is noapk.) 61 (-shared|-noshared enable/disable backup of the device's 62 shared storage / SD card contents; the default is noshared.) 63 (-all means to back up all installed applications) 64 (-system|-nosystem toggles whether -all automatically includes 65 system applications; the default is to include system apps) 66 ( is the list of applications to be backed up. If 67 the -all or -shared flags are passed, then the package 68 list is optional. Applications explicitly given on the 69 command line will be included even if -nosystem would 70 ordinarily cause them to be omitted.) 71 72 adb restore - restore device contents from the backup archive 73 74 adb help - show this help message 75 adb version - show version num 76 77 scripting: 78 adb wait-for-device - block until device is online 79 adb start-server - ensure that there is a server running 80 adb kill-server - kill the server if it is running 81 adb get-state - prints: offline | bootloader | device 82 adb get-serialno - prints: 83 adb status-window - continuously print device status for a specified device 84 adb remount - remounts the /system partition on the device read-write 85 adb reboot [bootloader|recovery] - reboots the device, optionally into the bootloader or recovery program 86 adb reboot-bootloader - reboots the device into the bootloader 87 adb root - restarts the adbd daemon with root permissions 88 adb usb - restarts the adbd daemon listening on USB 89 adb tcpip - restarts the adbd daemon listening on TCP on the specified port 90 networking: 91 adb ppp [parameters] - Run PPP over USB. 92 Note: you should not automatically start a PPP connection. 93 refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1 94 [parameters] - Eg. defaultroute debug dump local notty usepeerdns 95 96 adb sync notes: adb sync [ ] 97 can be interpreted in several ways: 98 99 - If is not specified, both /system and /data partitions will be updated.100 101 - If it is "system" or "data", only the corresponding partition102 is updated.103 104 environmental variables:105 ADB_TRACE - Print debug information. A comma separated list of the following values106 1 or all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp107 ANDROID_SERIAL - The serial number to connect to. -s takes priority over this if given.108 ANDROID_LOG_TAGS - When used with the logcat option, only these debug tags are printed.
//查看所有当前通过USB设备连接的设备
root@ithouge-OptiPlex-780:~# adb devicesList of devices attachedemulator-5554 device0288424641407417 deviceHT9CRP810308 device
//指定某一个模拟器或真机
root@ithouge-OptiPlex-780:~/图片# adb -s emulator-5554 shell#
//打印日志
root@ithouge-OptiPlex-780:~# adb logcat
//上传一个文件
root@ithouge-OptiPlex-780:~/图片# adb push ./sina_login.png /mnt/sdcard/DCIM/Camera/sina_login.png129 KB/s (5676 bytes in 0.042s)
//上传一个目录
root@ithouge-OptiPlex-780:~/图片# adb push ./emo /mnt/sdcard/DCIM/Camera/emopush: ./emo/a1e6.png -> /mnt/sdcard/DCIM/Camera/emo/a1e6.pngpush: ./emo/a1d7.png -> /mnt/sdcard/DCIM/Camera/emo/a1d7.pngpush: ./emo/a1c2.png -> /mnt/sdcard/DCIM/Camera/emo/a1c2.pngpush: ./emo/a1b3.png -> /mnt/sdcard/DCIM/Camera/emo/a1b3.pngpush: ./emo/a1e2.png -> /mnt/sdcard/DCIM/Camera/emo/a1e2.pngpush: ./emo/a1b2.png -> /mnt/sdcard/DCIM/Camera/emo/a1b2.pngpush: ./emo/a1e3.png -> /mnt/sdcard/DCIM/Camera/emo/a1e3.pngpush: ./emo/a1a1.png -> /mnt/sdcard/DCIM/Camera/emo/a1a1.pngpush: ./emo/a1e4.png -> /mnt/sdcard/DCIM/Camera/emo/a1e4.pngpush: ./emo/a1b4.png -> /mnt/sdcard/DCIM/Camera/emo/a1b4.pngpush: ./emo/a1e5.png -> /mnt/sdcard/DCIM/Camera/emo/a1e5.pngpush: ./emo/a1c7.png -> /mnt/sdcard/DCIM/Camera/emo/a1c7.pngpush: ./emo/a1d2.png -> /mnt/sdcard/DCIM/Camera/emo/a1d2.pngpush: ./emo/a1c6.png -> /mnt/sdcard/DCIM/Camera/emo/a1c6.pngpush: ./emo/a1a7.png -> /mnt/sdcard/DCIM/Camera/emo/a1a7.pngpush: ./emo/a1d3.png -> /mnt/sdcard/DCIM/Camera/emo/a1d3.pngpush: ./emo/a1c5.png -> /mnt/sdcard/DCIM/Camera/emo/a1c5.pngpush: ./emo/a1c4.png -> /mnt/sdcard/DCIM/Camera/emo/a1c4.pngpush: ./emo/a1c3.png -> /mnt/sdcard/DCIM/Camera/emo/a1c3.pngpush: ./emo/a1d4.png -> /mnt/sdcard/DCIM/Camera/emo/a1d4.pngpush: ./emo/a1c1.png -> /mnt/sdcard/DCIM/Camera/emo/a1c1.pngpush: ./emo/a1b7.png -> /mnt/sdcard/DCIM/Camera/emo/a1b7.pngpush: ./emo/a1a4.png -> /mnt/sdcard/DCIM/Camera/emo/a1a4.pngpush: ./emo/a1d6.png -> /mnt/sdcard/DCIM/Camera/emo/a1d6.pngpush: ./emo/a1b6.png -> /mnt/sdcard/DCIM/Camera/emo/a1b6.pngpush: ./emo/a1d5.png -> /mnt/sdcard/DCIM/Camera/emo/a1d5.pngpush: ./emo/a1b1.png -> /mnt/sdcard/DCIM/Camera/emo/a1b1.pngpush: ./emo/a1a3.png -> /mnt/sdcard/DCIM/Camera/emo/a1a3.pngpush: ./emo/a1b5.png -> /mnt/sdcard/DCIM/Camera/emo/a1b5.pngpush: ./emo/a1e7.png -> /mnt/sdcard/DCIM/Camera/emo/a1e7.pngpush: ./emo/a1d1.png -> /mnt/sdcard/DCIM/Camera/emo/a1d1.pngpush: ./emo/a1e1.png -> /mnt/sdcard/DCIM/Camera/emo/a1e1.pngpush: ./emo/a1a6.png -> /mnt/sdcard/DCIM/Camera/emo/a1a6.pngpush: ./emo/a1a5.png -> /mnt/sdcard/DCIM/Camera/emo/a1a5.pngpush: ./emo/a1a2.png -> /mnt/sdcard/DCIM/Camera/emo/a1a2.png35 files pushed. 0 files skipped.130 KB/s (222845 bytes in 1.671s)
//下载一个文件
root@ithouge-OptiPlex-780:~/图片# adb pull /mnt/sdcard/DCIM/Camera/IMG_20121130_102210.jpg ./IMG_20121130_102210.jpg280 KB/s (24741 bytes in 0.086s)
//下载一个目录,这里不用设置递归参数-R,而且空目录没有下载下来
root@ithouge-OptiPlex-780:~/图片# adb pull /mnt/sdcard/GigaTalk ./GigaTalkpull: building file list...pull: /mnt/sdcard/GigaTalk/589f6f99f0613ef6a8a901a2db7d533a/avatars/a1a5fc19-d490-48f7-ac19-7837c15b7a24 -> ./GigaTalk/589f6f99f0613ef6a8a901a2db7d533a/avatars/a1a5fc19-d490-48f7-ac19-7837c15b7a24pull: /mnt/sdcard/GigaTalk/589f6f99f0613ef6a8a901a2db7d533a/avatars/cce75fea-0c50-4f07-8ec8-039ff811b625 -> ./GigaTalk/589f6f99f0613ef6a8a901a2db7d533a/avatars/cce75fea-0c50-4f07-8ec8-039ff811b625pull: /mnt/sdcard/GigaTalk/589f6f99f0613ef6a8a901a2db7d533a/avatars/1189208a-f353-4227-b038-50cd9c6622bb -> ./GigaTalk/589f6f99f0613ef6a8a901a2db7d533a/avatars/1189208a-f353-4227-b038-50cd9c6622bbpull: /mnt/sdcard/GigaTalk/589f6f99f0613ef6a8a901a2db7d533a/avatars/8615019451733 -> ./GigaTalk/589f6f99f0613ef6a8a901a2db7d533a/avatars/86150194517334 files pulled. 0 files skipped.37 KB/s (32886 bytes in 0.846s)
//安装APK
root@ithouge-OptiPlex-780:/home/ithouge/APK/Bigram/2.5.6# adb install BigramPaid.apk1872 KB/s (30541229 bytes in 15.930s) pkg: /data/local/tmp/BigramPaid.apkFailure [INSTALL_FAILED_INSUFFICIENT_STORAGE]
//指定安装到SD卡
root@ithouge-OptiPlex-780:/home/ithouge/APK/Bigram/2.5.6# adb install -s BigramPaid.apk2262 KB/s (30541229 bytes in 13.180s) pkg: /sdcard/tmp/BigramPaid.apkSuccess
//再次安装,提示错误信息:已安装
root@ithouge-OptiPlex-780:/home/ithouge/APK/Bigram/2.5.6# adb install -s BigramPaid.apk2322 KB/s (30541229 bytes in 12.839s) pkg: /sdcard/tmp/BigramPaid.apkFailure [INSTALL_FAILED_ALREADY_EXISTS]
//重新安装,保留原有数据,允许共用包名及数字签名
root@ithouge-OptiPlex-780:/home/ithouge/APK/Bigram/2.5.6# adb install -r BigramPaid.apk2526 KB/s (30541229 bytes in 11.806s) pkg: /data/local/tmp/BigramPaid.apk
以下是安装APK过程中常见的一些错误信息。
int INSTALL_FAILED_ALREADY_EXISTS 程序已经存在int INSTALL_FAILED_CONFLICTING_PROVIDER 存在同名的内容提供者int INSTALL_FAILED_DEXOPT dex优化验证失败int INSTALL_FAILED_DUPLICATE_PACKAGE 已存在同名程序int INSTALL_FAILED_INSUFFICIENT_STORAGE 没有足够的存储空间int INSTALL_FAILED_INVALID_APK 无效的APKint INSTALL_FAILED_INVALID_URI 无效的链接int INSTALL_FAILED_MISSING_SHARED_LIBRARY 需求的共享库已丢失int INSTALL_FAILED_NO_SHARED_USER 要求的共享用户不存在int INSTALL_FAILED_OLDER_SDK 系统版本过旧int INSTALL_FAILED_REPLACE_COULDNT_DELETEint INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 需求的共享用户签名错误int INSTALL_FAILED_UPDATE_INCOMPATIBLE 版本不能共存int INSTALL_PARSE_FAILED_BAD_MANIFEST 错误的MANIFEST配置文件int INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME 错误的包名int INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID 错误的共享用户int INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING 证书编码无效int INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES证书不一致int INSTALL_PARSE_FAILED_MANIFEST_EMPTY MANIFEST配置文件为空int INSTALL_PARSE_FAILED_MANIFEST_MALFORMED MANIFEST配置文件非法int INSTALL_PARSE_FAILED_NOT_APK 不是有效的APK文件int INSTALL_PARSE_FAILED_NO_CERTIFICATES 无认证证书int INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION 异常int INSTALL_SUCCEEDED 安装成功int REPLACE_EXISTING_PACKAGE 包名已存在
//'-k' 保留数据以及缓存目录
root@ithouge-OptiPlex-780:/home/ithouge/APK/Bigram/2.5.6# adb uninstall com.gigabud.bigramSuccess
//重新加载/system 分区
root@ithouge-OptiPlex-780:/home/ithouge/APK/Bigram/2.5.6# adb remountremount succeeded
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 【adb】adb shell 命令详解
- adb.exe 命令详解
- adb shell 命令详解
- adb shell 命令详解
- adb shell 命令详解
- adb shell 命令详解
- adb shell 命令详解
- adb shell 命令详解
- adb shell 命令详解
- adb shell 命令详解
- adb shell命令详解
- adb shell 命令详解
- adb shell 命令详解
- adb shell 命令详解
- adb shell 命令详解
- adb操作命令详解
- adb命令详解
- adb命令详解
- [Android Samples视频系列之ApiDemos] App
- Java设计模式之五(单例模式详解)
- Android应用程序内存优化
- JSF 应用程序的生命周期
- jquery+uploadify+springmvc文件上传
- adb命令详解
- 定时器实现方式
- C++深浅拷贝构造函数
- Windows8 各版本区别详解【核心版、Pro专业版、Enterprise企业版、RT版】
- 双网卡配置实现一个账号多人共享上网
- GestureFlip
- ZOJ 1694 Shredding Company(简单DFS)
- wifi详解(一)
- 五种开源协议的比较