说明:可以查看当前应用的activity信息
用法:运用需要查看的应用
adb shell dumpsys activity top
如果直接运行adb shell dumpsys 也是可以的,只是会把当前系统中所有应用运行的四大组件都打印出来,而且这时候打印的内容非常多,就需要用到重定向将内容导入到文件中;
adb shell dumpsys > info.txt
可以直接利用Windows中的start命令打开系统默认程序的文本内容
start info.txt
说明:可以查看指定包名应用的详细信息(相当于应用的AndroidManifest.xml中的内容)
用法:adb shell dumpsys package [pkgname]
例:adb shell dumpsys package com.tencent.mm
说明:可以查看指定进程名或者进程id的内存信息
用法:adb shell dumpsys meminfo [pname/pid]
adb shell dumpsys meminfo com.android.launcher3
说明:可以查看指定包名应用的数据库存储信息(包括存储的SQL语句)
用法:adb shell dumpsys dbinfo [packagename]
adb shell dumpsys dbinfo com.android.launcher3
可以清晰的看到应用执行过的SQL语句信息
说明:安装应用宝apk文件
用法:adb install [apk文件]
adb install D:\demo.apk
注意:如果应哟已经安装了,需要使用adb install -r [apk文件],相当于升级安装。这个命令就不多说了,非常简单
说明:卸载应用
用法:adb uninstall [packagename]
adb unstall com.driss.demo
说明:将设备中的文件到本地
用法:adb pull 设备目录文件 本地目录
adb pull /sdcard/tmp.txt D:
注意,在操作的时候可能遇到文件权限问题,用chmod改一下权限即可
说明:将本地文件放到设备中
用法:adb push 本地目录文件设备目录
adb push D:\tmp.txt /sdcard
注意,在操作的时候可能遇到文件权限问题,用chmod改一下权限即可。
说明:截屏操作
用法:adb shell screencap -p 截图文件路径
adb shell screencap -p /sdcard/tmp.png
这个命令对测试人员非常有用,有时候想快速截取手机屏幕,只要快速打开,就可以利用这个命令写一个简单的脚本,内容如下
adb shell screencap -p /sdcard/tmp.png
adb pull /sdcard/tmp.png D:
start D:\tmp.png
这样就一步到位,快速打开一个截图图片。这个是Windows中的bat命令格式。
一些恶意软件利用设备root之后,运行该命令就可以获取用户当前屏幕信息,对应盗取账号非常危险
说明:录屏操作
用法:adb shell screenrecord视频保存路径
adb shell screenrecord /sdcard/tmp.mp4
这个命令其实和上面截屏命令差不多,只不过这个是录制屏幕,对于测试人员来说更加重要,有时候想复现问题步骤,那么就可以采用这个命令进行录屏功能。
现在很多录屏软件(在5.0之前版本)可以在root之后用这个命令进行录屏功能
说明:输入文本内容
用法:adb shell input text [需要输入文本框内容]
让需要输入内容的文本框获取焦点
adb shell input text ‘HelloWorld’
这个命令也可以模拟物理按键、虚拟键盘、滑动、滚动等事件
这个命令对于需要输入一大堆信息到文本框中的情况非常有用,比如在PC端有一段内容,想输入到手机的某个搜索框中,那么可以通过把这段内容发送到手机,然后在复制操作;但是有了这个命令就非常简单,先让想要输入的文本框获取焦点,然后运行这个命令即可。
说明:设备的端口转发
用法:adb forward [(远程端)协议:端口号] 【(设备端)协议:端口号】
adb forward tcp:23946 tcp:23946
adb forward tcp:8700 jwdp:1786
说明:查看设备中可以被调试的应用的进程号。
用法:adb jdwp
adb jdwp
这个命令或许用途不是很多、但是在调试的时候还是有点用途
说明:查看当前日志信息
用法1:adb logcat -s tag
adb logcat -s fb
用法2:adb logcat |findstr [pname/pid/keyword]
adb logcat |findstr com.android.launcher3
这个命令大家都不陌生,也是重中之重,有的同学或许好奇,为啥不用AS查看日志啊,但是有时候AS不能满足需求,比如想开多个日志窗口,这时候可以打开多个cmd窗口利用这个命令查看日志信息即可,用的最多的就是 -s 参数,可以直接查看对应的 tag 日志信息,利用findstr进行信息过滤。
当然这个命令也可以直接在adb shell运行之后:
》adb shell
》logcat |grep tencent
这样可以用grep进行信息过滤
shell命令运行的前提是先运行adb shell,而这些命令和非shell命令都是互通的,所谓互通就是想要在设备中运行shell命令,就优先运行adb shell一下,比如查看当前应用信息,可以是
》adb shell
》dumpsys package [pkgname]
也可以直接在外部运行、比如清空应用数据:
adb shell pm clear [pkgname]
说明:可以在非root设备中查看指定debug模式的包名应用沙盒数据
用法:run-as [package name]
run-as com.driss.demo
在开发中有时候对一个非root手机想看debug应用的沙盒数据,那么这个命令就可以帮助进行这项操作了
说明:查看设备的进程信息,或者指定进程的线程信息
用法:ps | grep过滤内容
ps -t [pid] 查看pid对应的线程信息
ps | grep com.driss.demo
ps -t 11798
可以结合 grep 进行信息过滤
说明:清空指定包名应用的数据
用法:pm clear [packagename]
pm clear com.driss.demo
有时候想清空一个应用的数据,可能需要去页面进行操作。可以不用这么麻烦,直接用这个命令就可以了
说明:安装设备中的apk文件,功能和adb install一样
用法:pm install 【apk文件】
这个命令与adb install命令一样
说明:卸载设备中的应用,功能与adb uninstall一样
用法:pm uninstall [packagename]
pm uninstall com.driss.demo
这个命令和adb uninstall命令一样
说明:启动一个应用
用法:am start -n 【包(package)名/[包名].[活动(activity)名称]】
am start -n com.android.browser/com.android.browser.BrowserActivity
注意:可以用debug方式启动应用(am start -D -n …)。
说明:启动一个服务
用法:am startservice -n 【[包(package)名]/[包名].[服务(service)名]】
am startservice -n com.android.traffic/com.android.traffic.mainservice
和上面命令类似,启动服务
说明:发送一个广播
用法:am broadcast -a 【广播动作】
am broadcast - a android.NET.conn.CONNECTIVITY_CHANGE
和上面的命令类似,发送一个广播。有时候定义了一个广播,可能需要测试,就可以借助这个功能模拟发送一个广播
说明:查看设备的ip地址
用法:netcfg
有时候想查看设备的ip地址,去设置页面太费劲了,可以直接用这个命令即可
说明:查看设备的端口信息
用法:netstat
有时候想查看设备的端口号信息,这个命令也是非常重要的,
说明:运行Java代码
用法:app_process [运行代码目录]【运行主类】
export CLASSPATH= /data/demo.jar
exec /system/bin/app_process /data/com.driss.Main
这个命令主要用于Android中一些特殊开发场景中,想启动一个jar包,不过这个jar包有要求:需要dx命令包dex文件转化成jar包功能,实际上它不是一个正常的jar包了,而是一个包含了classes.dex文件的压缩文件了
说明:运行一个dex文件
用法:dalvikvm -cp 【dex文件】【运行主类】
dalvikvm -cp /data/demo.dex com.driss.Main
有时候为了测试一个dex文件功能可以用到这个命令,与上面的命令有很大相似之处,只是运行的文件不一样
说明:查看当前应用的CPU消耗信息
用法:top [-n/-m/-d/-s/-t]
-m //最多显示多少个进程
-n //刷新次数
-d //刷新间隔时间
-s //按哪列排序
-t //显示线程信息而不是进程
top -d 1 -m 10
这个命令在分析应用性能的时候非常有用,可以用grep过滤想要分析的应用,查看它的当前CPU使用率
说明:查看系统属性值
用法:getprop [属性值名称]
getprop ro.debuggable
这个命令可以查看设备的信息,比如设备版本号、系统属性等,还可以去修改这些系统属性。比如debug开关,让所有的应用都处于可调试状态