扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
① 启动tcpip监听
成都创新互联公司专注于克山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供克山营销型网站建设,克山网站制作、克山网页设计、克山网站官网定制、微信平台小程序开发服务,打造克山网络公司原创品牌,更为您提供克山网站排名全网营销落地服务。
- 命令:adb tcpip 5000
② 物理数据线链接Android手机,用adb shell命令进入设备操作界面,查找手机的物理网卡ip地址
1|shell@hammerhead:/$ ifconfig | grep Mask
inet addr:127.0.0.1 Mask:255.0.0.0
inet addr:100.97.230.77 Mask:255.255.255.252
inet addr:192.168.43.1 Bcast:192.168.43.255 Mask:255.255.255.0
③ 退出shell
- 命令:exit
shell@hammerhead:/$ exit
④ 第二步开启手机热点共享,连接设备
adb connect 192.168.43.1:5000
- 成功了就可以显示 你的 ip 地址:端口
connected to xxx.xxx.xxx.xxx:xxxx
注意:
这时候请断开数据线连接,否则就会出现2个连接对应同一台设备的情况。
⑤ 弹出设备
命令:adb disconnect 192.168.43.1:5000
①开启手机和电脑蓝牙连接 - 电脑添加蓝牙设备
- 蓝牙图片 “右键” 添加蓝牙设备
- 添加手机 - 添加成功后 - 再次右键“蓝牙图标” - 选择加入个人域
- 右键 选择“链接时使用” - “接入点”
② 启动tcpip监听
命令:adb tcpip 5000
③ 物理数据线链接Android手机,用adb shell命令进入设备操作界面,查找手机的物理网卡ip地址
1|shell@hammerhead:/$ ifconfig | grep Mask
inet addr:127.0.0.1 Mask:255.0.0.0
inet addr:100.97.230.77 Mask:255.255.255.252
inet addr:192.168.43.1 Bcast:192.168.43.255 Mask:255.255.255.0
④ 退出shell
- 命令:exit
shell@hammerhead:/$ exit
⑤ 第二步开启手机热点共享,连接设备
adb connect 192.168.43.1:5000
- 成功了就可以显示 你的 ip地址:端口
connected to xxx.xxx.xxx.xxx:xxxx
注意:
- 这时候请断开数据线连接,否则就会出现2个连接对应同一台设备的情况。
⑥ 弹出设备
命令:adb disconnect 192.168.43.1:5000
第一步:手机连接电脑
第二部:找到手机的开发者选项把USB调试打开(不同手机USB调试的打开方式不一样)
第三部:安装驱动
(PS:正常这三步就可以了,有的手机需要下载鲁大师,或者是豌豆荚等来链接手机,,个人经验请多指教)
在平时的工作中,会经常用到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调试桥:
2.Android性能分析工具dumpsys的使用:
3.adb shell 中的am pm命令:
4.adb shell 启动应用程序的方法:
5.Monkey压力测试详解:
adb全称(Android Debug Bridge),它是一个通用命令行工具,它可以做为Android与PC端连接的一个桥梁,所以adb又称为Android调试桥,用户可以通过adb在电脑上对Android设备进行全面操作,比如安装和调试应用,操作文件的传输等。
首先用户启动一个adb客户端时,此客户端先检查是否存在已运行的adb服务器进程。如果没有,它将启动一个服务器进程,当服务器进程启动时,adb服务器就会绑定本地的TCP端口5037并监听adb客户端发来的命令,使用的adb客户端都使用端口5037与adb服务器进行对话的。接着服务器将所有运行中的模拟器或设备实例进行连接。它通过扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备。一旦服务器找到了adb守护程序,将建立一个到该端口的连接。
客户端发送的命令分为三种:
输出状态:
adb install安装原理过程:
Android系统的日志分为两部分:底层的Linux内核日志输出到/proc/kmsg, Android日志输出到/dev/log。Android的Log等级通常有六类,按照日志级别由低到高分别是:Verbose、Debug、Info、Warning、Error、Assert。
ADB连接Android设备的三种方法
连接方式有三种方法:
一、WiFi连接(手机与pc同一个局域网下)
二、USB数据线连接
此种连接要有相应的驱动才行(应该安装phoenixsuit就可以通过数据线来通过adb连接设备,有的不用安装
三、串口连接
使用串口设备与电脑连接。
USB 数据线连接
通过 USB 连接来正常使用 adb 需要保证几点:
硬件状态正常,包括 Android 设备处于正常开机状态,USB 连接线和各种接口完好。未识别到设备的话,有可能需要安装phoenixsuit软件,专门用来升级之类的用驱动。
确保Android 设备的开发者选项和 USB 调试模式已开启:
「设置」-「开发者选项」-「Android 调试」查看。开发者选项,点允许usb调试,然后就可以连上电脑了
如果在设置里找不到开发者选项,在「设置」-「关于手机」连续点击「版本号」7 次。
cmd框键入#adb devices命令查看设备连接情况
表示连接上手机了
无线连接(需要借助 USB 线)
除了可以通过 USB 连接设备与电脑来使用 adb,也可以通过无线连接,一定范围内摆脱 USB 连接线的限制啦!
操作步骤:
将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。将设备与电脑通过 USB 线连接。
应确保连接成功(可运行 adb devices 看是否能列出该设备)。
让设备在 5555 端口监听 TCP/IP 连接:
开发者选项,点允许usb调试
如果连接不了,请确认 Android 设备与电脑是连接到了同一个 WiFi,然后再次执行 adb connect 那一步;
如果还是不行的话,通过 adb kill-server 重新启动 adb 然后从头再来一次试试。
断开无线连接
连不上可以试试下面方法。
解决办法
第一步:Android设备开启USB调试,并且通过USB线连接到电脑。
第二步:在终端执行以下命令”adb tcpip 5555“。
第三步:在终端执行以下命令”adb connect 192.168.1.110“(192.168.1.110为Android设备的IP地址)。此时拔出USB线,应该就可以adb通过wifi调试Android设备。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流