adb常用命令
ADB是app测试常用的工作,说到ADB,不得不提SDK,因为ADB是存在于SDK工具包中, SDK也分Android和IOS版本,IOS需要运行在MAC系统下,这里是以Android SDK(Software Development Kit,软件开发工具包)为例来讲解的,SDK被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。Adroid_SDK提供了 Android API 库和开发工具构建,测试和调试应用程序。简单来讲,Android SDK 可以看做用于开发和运行 Android 应用的一个软件。
Android_SDK可以从网站上下载,https://android-sdk.en.softonic.com/
1 sdk环境变量配置Step1 解压SDK包
Step2设置环境变量
在桌面上右键点击”计算机”图标,选择“属性”, 选择高级系统设置->环境变量
其中,变量值 F:\soft\android_sdk修改为本机sdk包解压的目录;
Step3 在path添加路径
%ANDROID_HOME%\platform-tools;
Step4 检查sdk环境是否正常
在cmd下输入命令
adb
如果可以正常显示命令的帮助信息,则说明配置成功
2、 手机连接电脑3.1 安卓手机通过数据线连接到电脑,并且打开开发者调试模式(在手机设置里,因手机型号而位置不同,详细可以通过百度自己手机型的开发者模式);
手机是否连接上电脑,可以通过adb devices来查看,如果显示no devices attached,则表示没有连接上, 解决办法:建议在电脑和手机端各安装360手机助手
如果手机连接不上电脑,还可以通过手机模拟器来模拟手机,以夜神模拟器为例,安装模拟器在电脑上并启动,打开cmd,输入连接命令 adb connnect ip:端口号,操作如下图:
表示连接模拟器成功,一样可以使用各种adb命令
3 常见的adb命令ADB(Android Debug Bridge)工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。
1、 查看连接的设备 adb devices
该命令可以查看连接的adb的设备的情况,如果连接多个设备,均显示在结果中
2、 查看设备连接状态 adb get-state
结果可能有三种 offline 设备连接异常, device 正常 ,unknown 没有连接设备
3、 查看日志 adb logcat
查看手机日志,ctrl c结束
可查看手机四个缓冲区日志,包括radio, system,main,event ,其中radio存放通信的日志,比如通话短信等;event是表示手机按键输出等事件日志等;main指的是手机的应用软件的日志,是应用层日志输出;system是系统组件日志
如果使用logcat不指定输出哪个缓冲区的日志,默认输出main和system的日志,如果需要指定,则使用
adb logcat –b 指定缓冲区如 adb logcat –b main
也可以输出到文件 adb logcat –b main > d:\main.log
-c 清理日志
logcat 是实时日志,即在输出日志过程中,如果你操作软件,同时也会输出日志
4 adb bugreport
输出日志包括logcat日志,同时也包括功耗,cpu等信息日志
5、安装app应用
adb install d:/xxx.apk
其中xxx.apk是安装包名
6、卸载app应用
adb uninstall [-k] <packagename>
packagename是应用包名,该包名是在开发过程中确定的,可以通过命令查看要卸载的应用包名,也可以从开发人员处获取;
adb shell pm clear <packagename>
7 查看应用列表
adb shell pm list packages 查看所有的应用包名
adb shell dumpsys activity 查看当前活动的包的信息
adb shell dumpsys window | findstr mCurrentFocus 查看正在运行的包名
8、获取cpu信息
adb shell cat /proc/cpuinfo 获取cpu信息(processor 的编号是 0 到 3,表4核,采用的架构是 ARMv7 Processor rev 0 (v71))
9 手机电脑相互拷贝文件
adb push d:\pushlog /dev/log 从电脑上推送到手机
adb pull /dev/log/error.log d:\ 从手机上下载文件到电脑
10 adb root 进入root模式
11 adb shell 进入shell命令状态
Android是基于linux内核,因此在shell状态下可以使用linux的命令
查看分辨率adb shell wm size
输出电池信息adb shell dumpsys battery
adb shell dumpsys batterystats cn.mopon.film 获取cn.monpon.film应用的耗电情况
adb shell getprop ro.build.version.release 获取系统版本号
12 adb kill-server
adb start-server
重启设备
12、截屏
adb shell screencap -p /sdcard/sc.png
adb pull /sdcard/sc.png 把图片传到电脑
13、查看进程
adb shell ps
14、查看连接过的 WiFi 信息
adb shell
su
cat /data/misc/wifi/*.conf
注:需要root权限
15、获取mac地址(物理地址)
adb shell cat /sys/class/net/wlan0/address
16、查看当前内存占用
adb shell cat /proc/meminfo
16、重启手机
adb reboot
17、查看 adb 版本
adb version
18、启停服务
adb start-server 启动 adb server 命令
adb kill-server 停止 adb server 命令
windows下查看端口号
netstat –ano | findstr “5037”
Linux命令状态下查看 netstat –anp | grep 5037
19、清除应用数据与缓存
adb shell dumpsys activity activities | grep mFocusedActivity
adb shell dumpsys activity activities | ps mFocusedActivity
20、强制停止应用
adb shell am force-stop <packagename>
adb push <电脑上的文件路径> <设备里的目录>
21、查看cpu运行情况
adb shell top -m 10 -s cpu(-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量)
4 常见错误及解决办法:在输入adb命令时,显示: more than one device and emulator
解决办法:
查看设备 adb devices
C:\Users\administrator>adb devices
List of devices attached
emulator-5554 device
4dfadcb86b00cf05 device
发现还真是多个设备,那就需要为ADB命令指定设备的序列号了。
C:\Users\administrator>adb -s emulator-5554 shell
也就是如上所示,给命令加上-s的参数就可以了!
如果实际上只有一个设备或模拟器,并且查到有offline的状态;那就说明是ADB本身的BUG所导致的,就需要用如下的方法处理下了:C:\Users\administrator>adb kill-serverC:\Users\administrator>taskkill /f /im adb.exe