赞
踩
在测试APP时,我们常常会用到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调试授权,重新打开开发者模式。
常用命令
adb version
adb devices
- 如果在电脑D盘下面有个a.apk文件,只需要一行命令就安装到手机上:
- adb install d:/a.apk
-
- 如果已经安装了这个程序,可以通过以下命令覆盖安装:adb install -r d:/a.apk
-
- 保留数据和缓存文件,重新安装 apk
- adb install -r a.apk
-
- 安装包在android设备中
- adb shell pm install apk在移动端的路径
- adb uninstall 包名
-
- 卸载软件但是保留配置和缓存文件:
- adb uninstall -k 包名
-
- 如果机器上有多个模拟器或真机,需要使用-s命令行参数指定具体的模拟器或真机。例如,下面的命令分别在模拟器和真机上安装、重新安装和卸载应用程序。
- 在emulator-5554模拟器上安装ebook.apk
- adb -s emulator-5554 install ebook.apk
-
- 在真机上安装ebook.apk
- adb -s HT9BYL904399 install ebook.apk
-
- 在emulator-5554模拟器上重新安装ebook.apk
- adb -s emulator-5554 install -r ebook.apk
-
- 在真机上重新安装ebook.apk
- adb -s HT9BYL904399 install -r ebook.apk
-
- 在emulator-5554模拟器上卸载ebook.apk(不保留数据和缓冲目录)
- adb -s emulator-5554 uninstall ebook包名
-
- 在真机上卸载ebook.apk(保留数据和缓冲目录)
- adb -s HT9BYL904399 uninstall -k ebook包名
包名(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 应用包名
- 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.png
- adb shell /system/bin/screencap -p /sdcard/a.png
-
- 2.使用adb进行屏幕录像
- adb shell screenrecord /sdcard/a.mp4
- 通过ctrl+c停止录制,你可以在sdcard目录下查看。妈妈再也不担心我到处找录制视频的软件了。
- 进入shell
- adb shell
-
- 退出shell
- exit
- 获取序列号
- 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
-
- 查看permissions
- adb shell pm list permissions
-
- 查看系统的危险权限dangerous permissions
- adb shell pm list permissions -d -g
- adb kill-server
- adb start-server
- 场景:比如希望移动adb文件夹,或者adb命令得不到想要的内容时
- 列出当前进程
- adb shell ps | findstr 包名
-
- 杀死某个包的进程
- adb shell am force-stop 包名
- 获取内存:
- adb shell dumpsys meminfo 包名
-
- 获取cpu:
- adb shell dumpsys cpuinfo | findstr 包名
-
- adb shell top -n 1 | findstr 包名
-
- 获取流畅度相关:
- adb shell dumpsys gfxinfo 包名
如果想在模拟器或真机上运行已安装的应用程序,除了直接在模拟器或真机上操作外,还可以使用如下的命令直接运行程序。
activity的获取方式见14条。
- 在emulator-5554模拟器上运行ebook.apk
- adb -s emulator-5554 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main
-
- 在真机上运行ebook.apk
- adb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main
-
- 其中Main是ebook.apk的主Activity。相当于Windows应用程序的主窗体或Web应用程序的主页面。am是shell命令。
- 1.查看当前显示的activity
- adb 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
netstat -ano|findstr "8080"
最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。