常用的adb命令

在平时的工作中,会经常用到adb命令,在这里稍微整理了一下。

一.概要

1.什么是adb?

adb全称为Android Debug Bridge,就是起到调试桥的作用。顾名思义,adb就是一个debug工具。

2.adb工作原理

不是很理解?那就来看看它的工作原理吧。

上图是一个简单的adb工作原理图。adb客户端服务器端程序,由上图可以看出它主要三个组件组成:Client,Server,Daemon。

(1)当你启动一个adb Client(客户端),Client首先会选确认是否已有一个adb

Server(服务器)进程在运行,如果没有,则会启动Server进程。此时,adb Server就会绑定本地的TCP端口5037,并监听adb

Client发来的命令。

(2)接着,Server将会扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备,并与之建立连接。一旦Server找到

了adb

daemon(守护程序),它将建立一个到该端口的连接,这样,我们就可以使用adb命令控制和访问模拟器或设备了。在这里,需注意的是任何模拟器或设备实例会取得两个连续的端口:一个偶数端口用来相应控制台的连接,和一个奇数端口用来响应adb连接。

3.adb的作用

借助adb工具,我们可以管理设备或手机模拟器的状态,还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。简而言之,adb就是连接Android手机和PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。

二.常用命令

这个部分主要介绍adb的使用方法和一些常用的命令。

设置adb环境:将android sdk工作目录添加到系统环境变量中,则可使用adb命令了。

1. adb devices

查看当前连接的设备(连接计算机的Android设备或者模拟器)。

2.adb install

adb install <apk文件路径>,将指定的apk安装到设备上,安装的apk包会放在/data/app目录下。

几个参数:

-r 强制安装

-d(真机,多个设备中只有一个真机时适用)

-e(模拟器,多个设备中只有一个模拟器时适用)

-s(指定设备,后接序列号)

adb –s 44a188f9 install –r test.apk(其中44a188f9即序列号,通过adb devices可获取)

3.adb uninstall

adb uninstall <apk包名>

adb uninstall –k <apk包名>

-k参数为卸载软件时保留配置和缓存文件

4.adb reboot

重启android设备

5.adb shell

通过adb shell 命令,就可以进入设备或者模拟器的shell环境了,在这个Linux shell中,我们就可以执行各种Linux命令了。

如果只想执行一条shell命令,就可以采用:adb shell [shell_command]

在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息。

6.adb shell su

前提手机已经root。获取adb shell的root权限。

使用su提权,用户命令提示符有$变成#,如果手机没有root,会提示su:permission denied。

7.adb shell ps/top

查看当前终端中的进程信息,如pid等。

8.adb shell am/pm

am全称为activity manager,可使用am命令模拟各种系统的行为,如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等。

如:adb shell am start <apk包名>/<activityName>:启动一个activity。

pm全称为package manager,利用pm命令可模拟android行为或查询设备上的应用等。

如:adb shell pm list packages

列出当前设备所有已安装的程序的包名。

说明:

管道符“|”:可以把标准的输入流与标准的输出流进行合并,或者把某个命令的标准输出流作为另一个命令的标准输入流。

exit退出shell。

由于grep为linux命令,运行单条adb shell 时并没有进入linux

shell环境,并不能用grep等其他linux命令,只能用window cmd的命令。在这里可以用findstr来代替grep,使用方法为

findstr/grep [keyword]

更详细的内容可查看 参考文献3 和 参考文献4 。

对于常用的linux命令和常用的windows 控制台命令,以后再作总结。

9.adb pull 和 adb push

adb pull <设备中的文件路径> <本地路径>:从模拟器或设备中复制文件到本地。

adb push <本地文件路径> <设备中的路径>:将本地文件或目录复制到模拟器或设备。

这里还涉及到一个权限的问题,在后续的博文中再作介绍。

10.adb shell dumpsys

Android提供的dumpsys工具用于查看感兴趣的系统服务信息与状态。

参考下表:

11.adb shell monkey

跑monkey是android自动化测试的一种手段,所谓monkey测试就是模拟用户的按键输入,触摸屏输入,手势输入等。当Monkey程序在模拟器或设备运行的时候,如果用户比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey的随机重复的方法对apk作压力测试,来测试android

app的稳定性。

如下为测试腾讯新闻apk的一个简单实例:

说明:第一个-s指定设备,如果只连接了一台设备,可不用该参数。

-p <apk包名>只允许系统启动指定的app,如果不指定,将允许系统启动设备中的所有app,也可指定多个包。

--throttle <毫秒数> 指定用户操作(事件)间的时延。

--ignore-crashes 指定当应用程序崩溃时,Monkey依然发送事件,直到事件计数完成。

--ignore-timeouts 当应用程序发生ANR错误时,Monkey依然会发送事件,直到事件计数完成。

第2个-s,用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

-v 用于指定反馈信息级别,总共分为level 0、level 1、level 2三个级别,级别越高,输出的日志越详细。

最后的数字(这里是500):表示Monkey程序模拟500次随机用户操作事件。

>输出测试结果到D:\monkeylog.txt

更详细的参数可查看 参考文献5 。

部分测试结果如下:

对于测试结果的分析,通过搜索关键词来定位错误,主要包括以下四个方面:

1)ANR(Application Not

Response):程序无响应,一般主线程超过5秒没处理就会出现ANR错误。通过搜索ANR关键词来定位关键的事件信息。除了导出日志外,还可以将/data/anr/目录下的trace.txt文件导出,用来定位分析问题。使用>adb

pull /data/anr/trace.txt d:\ 将trace.txt文件导出到d盘。

2)ForceClosed或其他异常退出信息:通过搜索Fatal关键词来定位。

3)崩溃问题:通过搜索Exception关键词来定位。

4)发生异常后,通过搜索Crash关键词来定位到详细的堆栈信息。

 12.kill

kill用来中止一个进程。

比如我们在跑monkey的时候,怎么强制关闭monkey呢,可以用kill <monkey进程PID>

说明:另开启一个cmd,找到monkey的pid号,然后杀掉即可。

参考文献:

1.Android调试桥: http://www.iteye.com/topic/260042

2.Android性能分析工具dumpsys的使用: http://www.open-open.com/lib/view/open1405061994872.html

3.adb shell 中的am pm命令: http://www.android100.org/html/201312/09/4957.html

4.adb shell 启动应用程序的方法: http://blog.chinaunix.net/uid-26997997-id-3350449.html

5.Monkey压力测试详解: http://blog.csdn.net/huangbiao86/article/details/8490743

  • ADB 鍛戒护
    绛旓細鏌ヨ璁惧 adb devices 鏌ヨ鎵嬫満涓殑鐢ㄦ埛 adb shell pm list users 鏌ョ湅璁惧涓婄殑搴旂敤鍖呭悕锛歛db shell pm list packages adb shell pm list packages 鎵撳嵃璁惧/妯℃嫙鍣ㄤ笂鐨勬墍鏈夎蒋浠跺寘 adb shell pm list packages -f 杈撳嚭鍖呭拰鍖呯浉鍏宠仈鐨勬枃浠 adb shell pm list packages -d 鍙緭鍑虹鐢ㄧ殑鍖...
  • adb.exe鏄粈涔堣繘绋 adb.exe鍛戒护璇﹁В
    绛旓細瀵逛簬windows xp鐢ㄦ埛, 闇瑕佸厛瀹夎usb椹卞姩 android_usb_windows.zip, 鐒跺悗濡傛灉浣犲彧鎵撶畻浣跨敤adb鑰屼笉鎯充笅杞芥暣涓猻dk鐨勮瘽, 鍙互涓嬭浇杩欎釜鍗曠嫭鐨刟db宸ュ叿鍖 adb_win.zip 涓嬭浇鍚庤В鍘, 鎶婇噷闈 adb.exe 鍜 AdbWinApi.dll 涓や釜鏂囦欢鏀惧埌绯荤粺鐩樼殑 windows/system32 鏂囦欢澶归噷灏卞彲浠ヤ簡 鐜板湪璇翠笅ADB甯哥敤鐨鍑犱釜鍛戒护 鏌ョ湅璁惧 * ...
  • 甯哥敤鐨刟db鍛戒护
    绛旓細渚嬪锛氭ā鎷熷櫒 1锛屾帶鍒跺彴锛5554 妯℃嫙鍣 1锛宎db锛5555 妯℃嫙鍣 2锛屾帶鍒跺彴锛5556 妯℃嫙鍣 2锛宎db锛5557 渚濇绫绘帹 濡備笂鎵绀猴紝鍦ㄧ鍙 5555 澶勪笌 adb 杩炴帴鐨勬ā鎷熷櫒涓庢帶鍒跺彴鐩戝惉绔彛涓 5554 鐨勬ā鎷熷櫒鏄悓涓涓傛湇鍔″櫒涓庢墍鏈夎澶囧潎寤虹珛杩炴帴鍚庯紝鎮ㄤ究鍙互浣跨敤 adb 鍛戒护璁块棶杩欎簺璁惧銆傜敱浜庢湇鍔...
  • 鐢佃剳涓鐨刟db鏄粈涔鍛戒护?濡備綍杩愯?
    绛旓細5. 瀹夎鎵嬫満椹卞姩绋嬪簭锛氬湪鐢佃剳涓婁笅杞藉苟瀹夎鎵嬫満椹卞姩绋嬪簭锛岀‘淇濈數鑴戝彲浠ユ甯歌瘑鍒墜鏈恒6. 杩炴帴鎵嬫満涓庣數鑴戯細浣跨敤USB鏁版嵁绾垮皢鎵嬫満涓庣數鑴戣繛鎺ャ7. 鎵撳紑鍛戒护鎻愮ず绗︼細鍦ㄧ數鑴戜笂鎸変笅Win R缁勫悎閿紝杈撳叆cmd骞舵寜涓嬪洖杞﹂敭锛屽嵆鍙墦寮鍛戒护鎻愮ず绗︺8. 杩愯ADB鍛戒护锛氬湪鍛戒护鎻愮ず绗︿腑杈撳叆adb devices鍛戒护锛屾鏌ユ槸鍚︽垚鍔熻繛鎺...
  • 濡備綍鐢adb鎵撳紑usb璋冭瘯?
    绛旓細1. 纭繚浣犲凡缁忓皢鎵嬫満杩炴帴鍒拌绠楁満涓婏紝骞朵笖璁$畻鏈轰笂宸茬粡瀹夎浜咥DB宸ュ叿銆2. 鎵撳紑鍛戒护鎻愮ず绗︼紙Windows锛夋垨缁堢锛圡ac/Linux锛夈3. 瀵艰埅鍒癆DB鐩綍銆傞氬父鎯呭喌涓嬶紝ADB宸ュ叿浣嶄簬C:\Program Files\Android\sdk\platform-tools鐩綍涓嬨傚鏋滀笉鍦ㄨ鐩綍涓嬶紝浣犻渶瑕侀鍏堝皢鎵嬫満杩炴帴鍒拌绠楁満涓婏紝鐒跺悗杩愯 adb 鍛戒护鏉ュ鑸埌...
  • adb鏋勬垚鍜屽伐浣滃師鐞嗗拰甯哥敤鍛戒护
    绛旓細adb鏋勬垚 adb宸ヤ綔鍘熺悊 鑾峰彇鍖呭悕鍜岀晫闈㈠悕銆愬簲鐢ㄣ戞枃浠朵紶杈 鑾峰彇app鍚姩鏃堕棿 鍛戒护鏍煎紡 adb shell am start -w 鍖呭悕/鍚姩鍚 鎴 adb shell am start -W -n package/activity 鍋滄APP搴旂敤鍛戒护锛歛db shell am force-stop package 渚嬶細鍚姩 com.android.settings绋嬪簭骞朵笖杩涘叆涓荤晫闈紙.setttin...
  • adb 甯哥敤鍛戒护
    绛旓細褰撴垜浠緭鍏 adb 鎴 adb help 锛堢敤浜庢煡鐪 adb 甯姪鍐呭锛夋椂浼氳緭鍑哄涓嬪唴瀹广傚垪鍑烘潵鐨勫唴瀹规瘮杈冨锛岀瑪鑰呮寫閫変簡鍑犱釜鍛戒护鍦ㄤ笅鏂囧仛浜嗙畝鍗曡鏄庛俛db bugreport 浣跨敤鐢ㄤ簬鐢熸垚 bug 鏂囦欢鐨勫懡浠ゃ傜敓鎴愮殑鏂囦欢鍙互缁撳悎鐫涓婅堪鐨 adb pull 浣跨敤锛屾妸鐢熸垚鍑烘潵鐨勫畨鍗撶郴缁熻涓烘槸鍑虹幇浜嗙殑bug鏃ュ織鏂囦欢锛屽鍑哄埌鐢佃剳绔紝杩涜鏌ョ湅...
  • 姣斾簹杩煶涔愬姪鎵adb鍛戒护
    绛旓細浠ヤ笅鏄瘮浜氳开闊充箰鍔╂墜甯哥敤鐨凙DB鍛戒护锛1銆佸惎鍔ㄦ瘮浜氳开闊充箰鍔╂墜锛歛dbshellamstart-ncom.iflytek.auto.iflyosmusic/.activity.MainActivity銆2銆佹殏鍋滈煶涔愭挱鏀撅細adbshellambroadcast-acom.iflytek.auto.iflyosmusic.ACTION_MUSIC_PAUSE銆3銆佹仮澶嶉煶涔愭挱鏀撅細adbshellambroadcast-acom.iflytek.auto.iflyosmusic.ACTION_...
  • 甯哥敤鐨瀹夊崜鎵嬫満adb鍛戒护鎬荤粨
    绛旓細寰堟棭灏辨兂鏁寸悊涓涓嬭嚜宸卞钩鏃甯哥敤鐨涓浜adb鍛戒护,涓嶄粎涓轰簡渚夸簬浠ュ悗鏌ユ壘,鑰屼笖鏁寸悊鐨勮繃绋嬭嚜宸卞張閲嶆柊澶嶄範浜嗕竴閬,浣嗘槸褰撴垜寮濮嬪湪搴﹀涓鎼滅殑鏃跺,鍙戠幇寰堝浜哄凡缁忓啓鐨勯潪甯歌缁嗕簡,灏ゅ叾鏄綋鎴戝彂鐜颁簡杩欑瘒adb姒傛嫭 蹇冧腑涓鍙ND,鎬庝箞鍙互鍐欑殑杩欎箞璇︾粏,鐬棿娌′簡鎯冲啓杩欑瘒鏂囩珷鐨勬鏈,濡傛灉浣犵偣浜嗛摼鎺ュ彂鐜扮‘瀹炲緢鍏,閭d箞鎭枩浣犲彲浠ュ叧鎺夎繖绡...
  • 鎶鏈垎浜 | App娴嬭瘯鏃甯哥敤鐨刟db鍛戒护浣犻兘鎺屾彙浜嗗摢浜涘憿?
    绛旓細鏈嶅姟绔笌鎵鏈 Android 璁惧寤虹珛杩炴帴鍚庯紝灏卞彲浠ヤ娇鐢 adb 鍛戒护鏉ヨ闂繖浜涜澶囦簡銆傛湇鍔$浼氱鐞嗗凡缁忓缓绔嬬殑杩炴帴锛屽苟澶勭悊鏉ヨ嚜 adb 瀹㈡埛绔殑鍛戒护銆侫ndroid 鐪熸満鍙互閫氳繃 USB 杩炴帴鍒 adb锛岃繛鎺ユ椂闇瑕佸湪璁惧鐨勭郴缁熻缃腑鍚敤 USB 璋冭瘯锛堜綅浜庡紑鍙戣呴夐」涓嬶級锛屽惎鍔 USB 璋冭瘯鍚庯紝璁惧涓鐨 adb 瀹堟姢杩涚▼灏变細琚惎鍔紝...
  • 扩展阅读:安卓手机adb工具 ... 测试人员adb常用命令 ... 安卓常用adb命令大全 ... adb进入recovery命令 ... 20个常用linux命令 ... adb命令卸载软件 ... adb常用的20个命令 ... adb常用命令monkey ... adb直接命令恢复出厂 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网