ADB常用命令合集ADB(AndroidDebugBridge)说明:下面一些命令需要有root权限才能执行成功快速启动dos窗口执行adb:1.adb.exe所在路径添加到系统环境变量中2.配置快捷键启动dos进入C:\WINDOWS\system32目录下,找到cmd.exe.右击菜单发送到-桌面快捷方式。在桌面上右击快捷方式到cmd.exe-属性-快捷方式页-光标高亮快捷键-按下自定义快捷键(如:Ctrl+Alt+Z)任何情况下,按下Ctrl+Alt+Z启动dos窗口就可以执行adb命令了-----------查看设备连接状态系列-----------adbget-serialno获取设备的ID和序列号serialNumberadbdevices查询当前计算机上连接那些设备(包括模拟器和手机),输出格式:[serialNumber][state]adbget-state查看模拟器/设施的当前状态.说明:序列号[serialNumber]——由adb创建的一个字符串,这个字符串通过自己的控制端口type-consolePort唯一地识别一个模拟器/设备实例。一个序列号的例子:emulator-5554-----------发送命令到设备系列-----------adb[-d|-e|-sserialNumber]command-d发送命令给usb连接的设备-e发送命令到模拟器设备-sserialNumber发送命令到指定设备如启动手机设备shell:adb-dshelladbforwardlocalremote发布端口,可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:adbforwardtcp:5555tcp:8000adbreboot重启手机adbremount将system分区重新挂载为可读写分区adbkill-server终止adb服务进程adbstart-server重启adb服务进程adbroot已root权限重启adb服务adbwait-for-device在模拟器/设备连接之前把命令转载在adb的命令器中adbjdwp查看指定的设施的可用的JDWP信息.可以用forwardjdwp:pid端口映射信息来连接指定的JDWP进程.例如:adbforwardtcp:8000jdwp:472jdb-attachlocalhost:8000adbshellam命令可以启动应用程序adbshellinputtextstring向设备输入文本(光标所在的文本框)adbshellinputkeyeventevent_code向设备发送按键事件如:在编辑短信时,往文本框输入文本:adbshellinputtexthello向手机发送键值回Home:adbshellinputkeyevent3event_code参考view/KeyEvent.java中的KEYCODE_*publicstaticfinalintKEYCODE_SOFT_LEFT=1;publicstaticfinalintKEYCODE_SOFT_RIGHT=2;publicstaticfinalintKEYCODE_HOME=3;publicstaticfinalintKEYCODE_BACK=4;publicstaticfinalintKEYCODE_CALL=5;publicstaticfinalintKEYCODE_ENDCALL=6;-----------安装卸载系列-----------adbinstall[-l][-r]file-pushthispackagefiletothedeviceandinstallit('-l'meansforward-locktheapp)('-r'meansreinstalltheapp,keepingitsdata)adbuninstall[-k]package-removethisapppackagefromthedevice('-k'meanskeepthedataandcachedirectories)如:adbinstalld:\hello.apkadbunstallcom.huawei.hello说明:如果带-r选项重新安装apk时,安装在/data/local/tmp/目录下,手机重启后还是使用原来的apk.-----------文件操作系列-----------adbpushlocalremote-copyfile/dirtodeviceadbpullremotelocal-copyfile/dirfromdevice-----------基本linuxshell命令系列-----------adbshell[command]ls列出目录下的文件和文件夹cd切换目录rm删除目录和文件cat查看文件内容ps可以看那个进程再跑ps-x[PID]查看单个进程的状态top可以看那个进程的占用率最高su切换到root用户kill[pid]杀死一个进程chmod777file修改该文件为可执行权限详细使用情况可以登录一台Linux服务器在shell下查看帮助手册,mancommand-----------查看系统状态和信息系列-----------adbshellprocrank查询各进程内存使用情况adbshellservicelist查看services信息adbshellcat/proc/meminfo查看当前的内存情况adbshellcat/proc/cpuinfo查看CPU信息(硬件)adbshellcat/proc/iomem查看IO内存分区adbshellgetprop列出系统所有属性adbshellgetprop|findstrgsm列出包含gsm的属性adbshellsetpropkeyvalue修改系统属性adbshellsqlite3可以执行sql语句查看数据库信息,具体使用情况待调查-----------Log系列-----------adblogcat[filter-spec]-Viewdevicelog1~~~~~~~~~~~查看可用日志缓冲区:adblogcat-bradio—查看缓冲区的相关的信息.adblogcat-bevents—查看和事件相关的的缓冲区.adblogcat-bmain—查看主要的日志缓冲区2~~~~~~~~~~~过滤日志输出:过滤器语句按照下面的格式描tag:priority...,tag表示是标签,priority是表示标签的报告的最低等级adblogcat*:W显示优先级为warning或更高的日志信息adblogcatActivityManager:IMyApp:D*:S日志的标签是系统部件原始信息的一个简要的标志。(比如:“View”就是查看系统的标签).优先级有下列集中,是按照从低到高顺利排列的:V—Verbose(lowestpriority)D—DebugI—InfoW—WarningE—ErrorF—FatalS—Silent(highestpriority,onwhichnothingiseverprinted)如果你电脑上运行logcat,相比在远程adbshell端,你还可以为环境变量ANDROID_LOG_TAGS:输入一个参数来设置默认的过滤exportANDROID_LOG_TAGS=ActivityManager:IMyApp:D*:S需要注意的是ANDROID_LOG_TAGS过滤器如果通过远程shell运行logcat或用adbshelllogcat来运行模拟器/设备不能输出日志.3~~~~~~~~~~~控制日志输出格式:日志信息包括了许多元数据域包括标签和优先级。可以修改日志的输出格式,所以可以显示出特定的元数据域。可以通过-v选项得到格式化输出日志的相关信息.brief—Displaypriority/tagandPIDoforiginatingprocess(thedefaultformat).process—DisplayPIDonly.tag—Displaythepriority/tagonly.thread—Displayprocess:threadandpriority/tagonly.raw—Displaytherawlogmessage,withnoothermetadatafields.time—Displaythedate,invocationtime,priority/tag,andPIDoftheoriginatingprocess.long—Displayallmetadatafieldsandseparatemessageswithablanklines.当启动了logcat,你可以通过-v选项来指定输出格式:[adb]logcat[-vformat]下面是用thread来产生的日志格式:adblogcat-vthread需要注意的是你只能-v选项来规定输出格式option.4~~~~~~~~~~~Logcat命令列表-bbuffer加载一个可使用的日志缓冲区供查看,比如event和radio.默认值是main。具体查看ViewingAlternativeLogBuffers.-c清楚屏幕上的日志.-d输出日志到屏幕上.-ffilename指定输出日志信息的filename,默认是stdout.-g输出指定的日志缓冲区,输出后退出.-ncount设置日志的最大数目count.,默认值是4,需要和-r选项一起使用。-rkbytes每kbytes时输出日志,默认值为16,需要和-f选项一起使用.-s设置默认的过滤级别为silent.-vformat设置日志输入格式,默认的是brief格式,要知道更多的支持的格式,参看ControllingLogOutputFormatadbbugreport-returnallinformationfromthedevicethatshouldbeincludedinabugreport.adbshelldmesg查询内核缓冲区信息adbshelldumpstate各类信息,比如进程信息,内存信息,进程是否异常,kernnel的log等adbshelldumpcrashadbshelldumpsys查询所有service的状态-----------其他-----------模拟器使用镜像sdcard用SDK里的mksdcard工具来创建FAT32磁盘镜像并在模拟器启动时加载它。这样创建镜像:?mksdcardsizefile,比如我要创建一个64M的SD卡模拟文件,文件路径是在D:\workspace\sdcard.imgmksdcard64000000D:\workspace\sdcard.imgEmulator–sdcardD:\workspace\sdcard.img或者在eclipse的run菜单的openrundialog对话框中配置启动参数。#topUsage:top[-mmax_procs][-niterations][-ddelay][-ssort_column][-t][-h]-mnumMaximumnumberofprocessestodisplay.-nnumUpdatestoshowbeforeexiting.-dnumSecondstowaitbetweenupdates.-scolColumntosortby(cpu,vss,rss,thr).-tShowthreadsinsteadofprocesses.-hDisplaythishelpscreen.*********simpleselection******************selectionbylist*********-Aallprocesses-Cbycommandname-Nnegateselection-