龙空技术网

ADB命令集锦,你知道吗?

自动化测试老莫 218

前言:

现时小伙伴们对“javaadb”都比较关切,我们都需要知道一些“javaadb”的相关资讯。那么小编在网络上汇集了一些对于“javaadb””的相关知识,希望你们能喜欢,各位老铁们快快来了解一下吧!

前言

在测试APP时,我们常常会用到adb命令来协助测试,那么adb命令到底是什么?有什么用?怎么用?

今天我就整理了一些工作中常用的adb知识点,希望对大家有所帮助。

ADB学习全攻略

ADB是什么?

adb即Android Debug Bridge(安卓调试桥)。它就是一个命令行窗口,用于电脑端与模拟器或者真实设备交互。

常用操作有:

把文件发送到android设备,或从android拖拽文件到本地

在android设备上安装/卸载应用

启动应用

把APP的日志导出到本地

截屏、录像

思考:

上面说的这几点能否有其他方式替代,若有,区别是什么?

ADB怎么使用?

1、adb是无需安装的。找度娘搜索adb,然后下载工具压缩包,解压并添加环境变量,然后就可以在dos环境下使用了。

2、之后,用usb连接电脑和手机(或模拟器),并开启Android 设备的开发者选项和 USB 调试模式。

3、此时就可以在dos窗口输入cmd devices 命令检查是否可以正常使用了。

常见问题

adb devices 没有设备:可借助驱动精灵检查手机驱动,驱动安装好之后重启电脑。

adb devices unauthorized :解决办法:将手机设置->辅助功能->开发者模式->撤销usb调试授权,重新打开开发者模式。

常用命令

1、查看adb版本

adb version
2、查询pc链接的所有android 设备
adb devices
3、装包
如果在电脑D盘下面有个a.apk文件,只需要一行命令就安装到手机上:adb install d:/a.apk 如果已经安装了这个程序,可以通过以下命令覆盖安装:adb install -r d:/a.apk 保留数据和缓存文件,重新安装 apkadb install -r a.apk 安装包在android设备中adb shell pm install apk在移动端的路径
4、卸载包
adb uninstall 包名 卸载软件但是保留配置和缓存文件:adb uninstall -k 包名 如果机器上有多个模拟器或真机,需要使用-s命令行参数指定具体的模拟器或真机。例如,下面的命令分别在模拟器和真机上安装、重新安装和卸载应用程序。在emulator-5554模拟器上安装ebook.apkadb -s emulator-5554 install ebook.apk 在真机上安装ebook.apkadb -s HT9BYL904399 install ebook.apk 在emulator-5554模拟器上重新安装ebook.apkadb -s emulator-5554 install -r ebook.apk 在真机上重新安装ebook.apkadb -s HT9BYL904399 install -r ebook.apk 在emulator-5554模拟器上卸载ebook.apk(不保留数据和缓冲目录)adb -s emulator-5554 uninstall ebook包名 在真机上卸载ebook.apk(保留数据和缓冲目录)adb -s HT9BYL904399 uninstall -k ebook包名
5、包管理,如何知道一个app包名呢

包名(Package name)在Android系统中是判断一个App的唯一标识,不同的App可以有同样的名字,但是它的包名不可以相同。

例如我们可以自己编译生成一个App也叫“微信”,但是我们的App的包名不能为com.tencent.mm

(微信的包名为这个),如果指定的包名和微信一致,那么手机上只允许安装这两个App中的其中一个。说到这很多人就会有疑问,如果有人恶意做了一个和微信内容一模一样的App,名字和包名都和微信一样,那怎么分辨呢?Android中为了防止这样的情况,还做了一个叫签名的东西,微信的签名一般我们是没有的,所以就可以通过签名来标识出这款App到底是谁的了。

1、看源代码。当有源代码的时候,可以到工程目录下的 “AndroidManifest.xml”文件下查看package这一项。 2、adb命令查看列出手机装的所有 app 的包名:adb shell pm list packages  3.列出系统应用的所有包名:adb shell pm list packages -s  4.列出除了系统应用的第三方应用包名:adb shell pm list packages -3 5.推测一个包中可能带有的关键字:adb shell dumpsys activity | findstr mFocusedActivity 6.清除应用数据与缓存adb shell pm clear 应用包名
6、文件相关
1、接收电脑文件语法:adb push local remote案例:adb push d:/a.txt /sdcard/  把电脑 D 盘下的 a.txt 文件推送到手机 sdcard 目录下 2、上传文件到电脑语法:adb pull remote local案例:adb pull /sdcard/a.txt d:/   上传位于/sdcard/目录下的 a.txt 文件到电脑的 D 盘根目录下1.截屏adb shell screencap /sdcard/a.pngadb shell /system/bin/screencap -p /sdcard/a.png 2.使用adb进行屏幕录像adb shell screenrecord /sdcard/a.mp4通过ctrl+c停止录制,你可以在sdcard目录下查看。妈妈再也不担心我到处找录制视频的软件了。

7、截屏、录屏

1.截屏adb shell screencap /sdcard/a.pngadb shell /system/bin/screencap -p /sdcard/a.png 2.使用adb进行屏幕录像adb shell screenrecord /sdcard/a.mp4通过ctrl+c停止录制,你可以在sdcard目录下查看。妈妈再也不担心我到处找录制视频的软件了。
8、shell
进入shelladb shell 退出shellexit
9、手机信息收集
获取序列号adb get-serialno 获取 MAC 地址adb shell  cat /sys/class/net/wlan0/address 查看设备型号adb shell getprop ro.product.model 查看 Android 系统版本adb shell getprop ro.build.version.release 查看屏幕分辨率adb shell wm size 查看屏幕密度adb shell wm density 查看permissionsadb shell pm list permissions  查看系统的危险权限dangerous permissionsadb shell pm list permissions -d -g
10、adb服务器杀死和启动
adb kill-server获取内存:adb shell dumpsys meminfo 包名 获取cpu:adb shell dumpsys cpuinfo | findstr 包名 adb shell top -n 1 | findstr 包名 获取流畅度相关:adb shell dumpsys gfxinfo 包名adb start-server场景:比如希望移动adb文件夹,或者adb命令得不到想要的内容时
11、与进程相关:
列出当前进程adb shell ps | findstr 包名 杀死某个包的进程adb shell am force-stop 包名
12、与性能相关的一些内容
获取内存:adb shell dumpsys meminfo 包名 获取cpu:adb shell dumpsys cpuinfo | findstr 包名 adb shell top -n 1 | findstr 包名 获取流畅度相关:adb shell dumpsys gfxinfo 包名
13、app的启动停止

如果想在模拟器或真机上运行已安装的应用程序,除了直接在模拟器或真机上操作外,还可以使用如下的命令直接运行程序。

activity的获取方式见14条。

在emulator-5554模拟器上运行ebook.apkadb -s emulator-5554 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main 在真机上运行ebook.apkadb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main 其中Main是ebook.apk的主Activity。相当于Windows应用程序的主窗体或Web应用程序的主页面。am是shell命令。
14、与Activity操作等相关
1.查看当前显示的activityadb shell dumpsys activity | findstr "mFocusedActivity"结果: mFocusedActivity: ActivityRecord{93a4f9 u0 com.youdao.note/.activity2.MainActivity t36}注意:我们只需要这一部分:com.youdao.note/.activity2.MainActivity即包名+activity   2.找到当前手机内的top Activity:adb shell dumpsys activity top | findstr ACTIVITY 3.启动某一个Activity:adb shell am start activity路径adb shell am start com.youdao.note/.activity2.MainActivity
15、查看8080端口是哪个应用占用
netstat -ano|findstr "8080"

感谢每一个认真阅读我文章的人!!!

如果下面这些资料用得到的话可以直接拿走:

1、自学开发或者测试必备的完整项目源码与环境

2、测试工作中所有模板(测试计划、测试用例、测试报告等)

3、软件测试经典面试题

4、Python/Java自动化测试实战.pdf

5、Jmeter/postman接口测试全套视频获取

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。需要的找我。

标签: #javaadb