扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、adb devices 获取模拟器或物理手机设备
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了石景山免费建站欢迎大家使用!
2、adb install 安装软件
adb -s emulator-5554 install E:\CalculatorOfTwoNum.apk 连接了多个设备
adb install -r E:\CalculatorOfTwoNum.apk 覆盖安装已有的软件
adb install E:\CalculatorOfTwoNum.apk只有一个设备且未安装
3、adb uninstall 卸载软件
adb -s emulator-5554 uninstall com.example.calculatoroftwonum 卸载指定设备的软件
adb -s emulator-5554 shell pm uninstall -k com.example.calculatoroftwonum 保留配置及缓存
4、adb pull 把文件从手机设备发送到本地计算机
adb pull /sdcard/tmp/error.data d:/
adb -s emulator-5554 pull /sdcard/tmp/error.data d:/ 连接了多个设备个
5、adb push 把文件从本地计算机发送到手机设备
adb -s emulator-5554 push d:/example/error.data /sdcard/pass
6、adb shell ls 显示当前目录的所有内容
7、adb shell 查看手机安装的应用
su root
cd /data/data
ls
8、adb shell dumpsys battery 查看电量信息
9、adb shell dumpsys wifi 查看无线网络信息
10、adb shell dumpsys power 查看电源信息
11、adb shell dumpsys telephony.registry 查看电话相关信息
12、adb shell cat /proc/cpuinfo 查看CPU硬件信息
13、adb shell cat /proc/meminfo 查看内存信息
14、adb shell cat /proc/iomen 查看I/O内存分区的信息
15、adb shell cat /system/build.prop | findstr "ro.product.model" 获取手机型号
16、adb shell cat /proc/cpuinfo | findstr "Processor" 获取手机处理器信息
17、adb shell cat /proc/meminfo | findstr "MemTotal" 获取手机内存信息
18、adb shell dumpsys windows | findstr "Display" 获取手机屏幕分辨率信息
19、adb shell getprop ro.build.version.release 获取系统版本信息
20、adb shell cat /proc/version 获取内核版本信息
21、adb shell getprop gsm.operator.alpah 获取运营商信息
22、adb shell getprop gsm点虐 work.type 获取网络类型信息
23、adb shell dumpsys iphonesubinfo | findstr "Devices ID" 获取手机串号信息
24、adb shell df 获取系统分区信息
25、adb shell dmesg 获取linux内核环形缓冲区信息
26、adb shell dumpstate 获取系统当前状态
27、adb get-serialno 获取设备序列号
28、adb get-state 获取设备当前状态
29、adb logcat 查看日志信息
adb logcat *:W 输出优先级大于警告级的信息
adb logcat -b main 查看主缓冲区信息
30、adb bugreport 查看启动过程日志
31、adb jdwp 列出指定设备的IDWP相关进程的ID
32、adb start-server 启动adb服务
33、adb kill-server 关闭adb服务
34、adb forward 将本机的端口重定向到模拟器或者设备端口上
adb forward tcp:2211 tcp:5566
35、am 模拟系统行为
adb shell am start -n com.sec.android.app.camera/.Camera 启动照相功能
adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei "level"5 --ei "scale" 100 向手机发送模拟手机低电环境的信息
36、pm 模拟行为或者查询设备上的应用
adb shell pm list packages
37、向模拟器发送短信、打电话
20181021141213.png 20181021141213.png 20181021141252.png 20181021141252.png
cmd telnet localhost 5554
20181021141306.png 20181021141306.png
network speed 14.4:20 设定网速
network delay 5 设定网络延时5毫秒
network capture start/stop 开始/停止数据包的捕获
windows scale 0.5 修改模拟器大小比例
quit退出
39、android list targets 查看模拟器的Android系统版本
40、android create avd 创建模拟器
android create avd --name Android4.4.2 --target 2 --abi armeabi-v7a
41、android move avd -n Android4.4.2 -r mytestdev4.4.2 重命名模拟器
42、android list avd 查看模拟器列表
43、android delete avd -n hhh 删除模拟器
44、emulator -avd Android4.4.2 启动模拟器
Android 调试桥 (adb) ,可与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:
客户端: 用于发送命令。客户端在开发机器上运行。可以通过发出 adb 命令从命令行终端调用客户端。(可以通过它对Android应用进行安装、卸载、调试)
PC上的手机助手基本都是通过adb命令去完成的。有时候装了这类手机助手的话,它自带的adb程序可能会与Android SDK下的adb程序产生冲突,5037端口被占用,导致adb命令无法连接到设备。Windows下通过netstat -ano|findstr "5037"
守护程序 (adbd): 用于在设备上运行命令。守护程序在每个设备上作为后台进程运行
执行adb shell ps | grep adbd, 可以找到该后台进程,Windows使用findstr替代grep.
adb nodaemon server
服务器(Service): 用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行
adb服务启动后,Windows可以在任务管理中找到adb.exe; linux ps -ef | gref adb 可以查看service
一般都是通过这样子的格式 adb [-d|-e|-s 设备序列号] 子命令
通常只有一台设备就忽略 [-d|-e|-s ] 这一部分
这里介绍一些常用的命令:
获取设备列表及设备状态
获取设备的状态
注意:设备的状态有 3 钟,device , offline , unknown
device:设备正常连接
offline:连接出现异常,设备无响应
unknown:没有连接设备
结束 adb 服务
启动 adb 服务
注意:通常两个命令一起用,有时候我们开启server会失败,这是因为我们装了的手机助手,豌豆荚或者其他软件自带有自己的adb,导致端口冲突开启失败。一般在连接出现异常,使用 adb devices 未正常列出设备, 设备状态异常时使用 kill-server,然后运行 start-server 进行重启服务。
打印 Android 的系统日志
打印 dumpsys、dumpstate、logcat 的输出,也是用于分析错误输出比较多
打印日志后重定向到一个文件中
安装应用,覆盖安装是使用 -r 选项
注意:有些adb版本无法支持安装中文的apk
查看手机应用包名
查看应用对应的apk文件在手机上的安装位置则可以在上面的命令后加-f参数
卸载应用,后面跟的参数是应用的包名,请区别于 apk 文件名
'-k' means keep the data and cache directories , -k 选项,卸载时保存数据和缓存目录
将 Android 设备上的文件或者文件夹复制到本地
adb pull /sdcard/test.txt C:\Users\Administrator\Desktop\log
推送本地文件至 Android 设备
获取连接到的手机的序列号
获取设备的连接状态
等待设备连接成功
该命令将会阻塞一直到默认连接的那部机器状态变为device,也就是连接成功。
其实adb shell命令就是调用的是Android设备中的system/bin目录下的命令。
Android的内核本身就是Linux,所以Android本身也支持Linux命令,但是因为是手机系统,所以进行了一定的删减,部分命令不支持,而不支持的部分,我们可以通过安装busybox这个软件进行。
如何在手机中执行Shell命令?
每次都加上adb shell来进行命令的发送与执行
先通过adb shell进入手机Shell执行状态,然后直接输入Linux命令。
使一个apk处于禁用状态,相当于卸载了:
其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 com.UCMobile/.main.UCMobile
eg:adb shell su disable com.UCMobile/.main.UCMobile
同时我们在手机上发现,UC浏览器的图标不见了
让一个apk从禁用状态恢复过来
其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 com.UCMobile/.main.UCMobileeg:
adb shell su enable com.UCMobile/.main.UCMobile
同时我们从手机上发现,UC浏览器的图标又出现了。
查看一个apk所在的路径
adb shell pm path com.UCMobile
查看手机中装的所有的包
屏幕开始录像并且储存到/sdcard中,同时名字为demo.mp4
录屏设置时长10s,命名为demo.mp4
注意:现在仅支持一部分手机录屏,不支持的手机会出现以下提示
解决方法:
安装了scrcpy之后,只需要输入如下命令,即可录取指定设备的屏幕
scrcpy -s device --render-expired-frames -Nr ./demo.pm4
--render-expired-frames:尽可能最大帧率
-N:不在PC端展示
-r:录制mp4/mkv文件
关闭设备请求,开启设备
设备关机以及重启
pm(package manager)可以获取一些安装到Android设备上的app的信息
pm list packages 用法:list packages [ options] filter
获取所有的应用的包名
列出系统应用
列出第三方应用
查看它们的关联文件
adb shell pm list package -f
查看软件包的安装来源
pm dump 包名 很多dump信息
安装应用
apk如果在电脑用 adb install
如果在Android设备上用 adb shell pm install
卸载应用,同adb uninstall ,后跟包名
清除应用数据
am(activity manager,字面意思就跟activity有关,大家都知道Android的界面都是由一个个activity显示的)
启动一个Activity
获取到package和launch_activity
AndroidSDK中aapt工具,检索命令结果,可以获取到package和launch_activity
这里涉及到一个点,如何找到程序的入口,首先你要知道是哪个activity才能启动;
启动华为系统相机
打开音乐播放器
播放指定音乐:
先停止目标应用,再启动
等待应用完成启动
启动网页(android.intent.action.VIEW具体参考Android官网)
结束应用
input
模拟输入,向获得焦点的EditText控件输入内容
返回主界面
发送一个点击操作的指令,参数是x y坐标
从左往右滑动屏幕, /从 100 100 经历300毫秒滑动到 200 200
长按操作,在 100 100 位置长按 1000毫秒
ADB(Android Debug Bridge)是Android
提供的一个通用的调试工具,借助这个工具,我们可以很好的调试开发的程序,adb.exe在你安装的android的sdk开发包platform-tools目录下。
ADB是一个C/S架构的应用程序,由三部分组成:
1)adb client, 运行在PC上(为DDMS,即IDE工作)
2)adb daemon(守护进程),运行于Emulator(为与Emulator中的VM交互工作);
3)adb server(服务进程),运行在PC(任务管理器上有),管理着adb client和adb
daemon的通信。
server与client通信的端口是是5037,adb
server会与emulator交互的,使用的端口有两个,一个是5554专门用于与Emulator实例的连接,那么数据可以从Emulator转发给IDE控制台了,另一个则是5555,专门与adb
daemon连接为后面调试使用。
adb使用方法:
adb [-d|-e|-s ]
当你发出一个命令,系统启用Android客户端。客户端并不与模拟器实例相关,所以如果双服务器/设备是运行中的,你需要用-d选项去为应被控制的命令确定目标实例。关于使用这个选项的更多信息,可以查看模拟器/设备实例术语控制命令。
1、查询模拟器/设备实例
在发布adb命令之前,有必要知道什么样的模拟器/设备实例与adb服务器是相连的。可以通过使用 devices
命令来得到一系列相关联的模拟器/设备
adbdevices
2、安装应用到模拟器/设备:
你可以使用adb从你的开发电脑上复制一个应用程序,并且将其安装在一个模拟器/设备实例。
像这样做,使用install命令。这个install命令要求你必须指定你所要安装的.apk文件的路径:
adbinstall
例如:Weibo_4.1.1.apk是在我的C盘中,
C:\adbinstallweibo_4.1.1-apk
3、卸载应用程序:
adbuninstall
注意:卸载软件时,卸载的是包名,后面跟的是包的名字,而不是.APK.
4、从模拟器/设备中拷入或拷出文件:
可以使用adbpull、push命令将文件从模拟器/设备中拷贝出来或从电脑拷入。
adbpull
用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑
adbpush
用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)
5、启动Linux命令界面shell
adbshell
Android本来就是一个linux操作系统,通过上面的命令,就可以进入设备或模拟器的shell环境中,所以大部分都是linux的命令,如mkdir,ls,netstat,mount
等。
主要介绍几个Android特有的。
Getprop:返回Android的所有系统属性。
Getevent:打印所有的键盘和触摸事件
Logcat:输出日志
LS:用于显示目录内容
6、查看bug报告:
adb bugreport
7、记录无线通讯日志:
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
adb shell
logcat -b radio
8、获取设备的ID和序列号:
adb get-product
adb get-serialno
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流