adb下载安装及使用

news/2024/12/1 18:35:19/

adb介绍:
Android Debug Bridge(安卓调试桥) tools。它就是一个命令行窗口,用于通过电脑端与模拟器或者是设备之间的交互。
ADB是一个C/S架构的应用程序,由三部分组成:
运行在pc端的adb client:
命令行程序”adb”用于从shell或脚本中运行adb命令。首先,“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。接下来,当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求;
运行在pc端的adb server:
ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上;
运行在设备端的常驻进程adb demon (adbd):
程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务。

adb下载及安装:
一共有两种方法:
首先第一种就是最简单的方法,只下载adb压缩包去解压即可:链接:https://pan.baidu.com/s/1SKu24yyShwg16lyIupO5VA 提取码:ih0i
(备注:如果下载放入到D盘去解压,打开dos窗口那么就要进入到D盘,然后再去执行adb命令,输入adb查看它是否安装成功)
第二种方法前提是已安装了Android Studio,它本身带有adb命令,如果配置好的Android Studio 一般都是可以直接调用adb命令的;如果不行,找到adb在SDK里的绝对路径,放入环境变量path中(绝对路径不带入adb.exe)在这里插入图片描述
在这里插入图片描述
然后输入adb version 查看版本 可以看出是否安装成功,如下就已经成功了。
在这里插入图片描述
启动 adb server 命令:adb start-server
停止 adb server 命令:adb kill-server
查询已连接设备/模拟器:adb devices
该命令经常出现以下问题:
offline —— 表示设备未连接成功或无响应;
device —— 设备已连接;
no device —— 没有设备/模拟器连接;
List of devices attached 设备/模拟器未连接到 adb 或无响应
USB连接:
在手机“设置”-“关于手机”连续点击“版本号”7 次,可以进入到开发者模式;然后可以到“设置”-“开发者选项”-“调试”里打开USB调试以及允许ADB的一些权限;连接时手机会弹出“允许HiSuite通过HDB连接设备”点击允许/接受即可;
驱动也是必须安装的,可以用豌豆荚,或者是手机商家提供的手机助手,点进去驱动器安装即可(部分电脑双击无法直接进入到驱动器里,可以使用右键找到进入点击即可)
在这里插入图片描述
在这里插入图片描述再次输入adb devices验证是否连接成功,连接成功即如下图:
在这里插入图片描述
在这里插入图片描述
也可以进行无线连接,其中非root权限也需借助USB线进行操作,完成后即可断开USB线;root用户可以进行无线连接,具体步骤可以参考网上资源。
**查看是否有root权限:**输入adb shell,然后输入su KaTeX parse error: Expected 'EOF', got '#' at position 5: 如果变为#̲则成功,如果仍为则未有root权限;恢复命令:adb unroot
查看应用列表:
查看所有应用列表:adb shell pm list packages
查看系统应用列表:adb shell pm list packages -s
查看第三方应用列表:adb shell pm list packages -3:
在这里插入图片描述
安装apk:adb install “-lrtsdg” “path_to_apk”
“-lrtsdg”:
-l:将应用安装到保护目录 /mnt/asec;
-r:允许覆盖安装;
-t:允许安装 AndroidManifest.xml 里 application 指定 android:testOnly=“true” 的应用;
-s:将应用安装到 sdcard;
-d:允许降级覆盖安装;
-g:授予所有运行时权限;
path_to_apk:apk的绝对路径。
示例安装淘宝apk:adb install -t C:data/local/tmp/taobao.apk

卸载apk:adb shell pm uninstall -k “packagename”
“packagename”:表示应用的包名,以下相同;
-k 参数可选,表示卸载应用但保留数据和缓存目录。
示例卸载 手机淘宝:adb uninstall com.taobao.taobao

清除应用数据与缓存命令:adb shell pm clear “packagename”
相当于在设置里的应用信息界面点击「清除缓存」和「清除数据」。
示例:adb shell pm clear com.taobao.taobao 表示清除 手机淘宝数据和缓存。

Android四大组件有Activity,Service服务,Content Provider内容提供,BroadcastReceiver广播接收器,具体不做多讲,常用的有以下:
查看前台 Activity命令:adb shell dumpsys activity activities | findstr “packagename”
查看正在运行的 Services命令:adb shell dumpsys activity services “packagename” 其中参数不是必须的,指定 “packagename” 表示查看与某个包名相关的 Services,不指定表示查看所有 Services。
查看应用详细信息命令:adb shell dumpsys package “packagename”
调起 Activity命令格式:adb shell am start [options]
例如:adb shell am start -n com.tencent.mm/.ui.LauncherUI表示调起微信主界面
在这里插入图片描述
调起 Service命令格式:adb shell am startservice [options]
例如:adb shell am startservice -n
com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorService 表示调起微信的某 Service。
强制停止应用命令:adb shell am force-stop “packagename”
例如强制停止淘宝:adb shell am force-stop com.taobao.taobao

模拟按键指令:adb shell input keyevent keycode 不同的 keycode有不同的功能:

keycode含义
3HOME 键
4返回键
5打开拨号应用
6挂断电话
26电源键
27拍照(需要在相机应用里)
61Tab键
64打开浏览器
67退格键
80拍照对焦键
82菜单键
85播放/暂停
86停止播放
92向上翻页键
93向下翻页键
111ESC键
112删除键
122移动光标到行首或列表顶部
123移动光标到行末或列表底部
124插入键
164静音
176打开系统设置
207打开联系人
208打开日历
209打开音乐
220降低屏幕亮度
221提高屏幕亮度
223系统休眠
224点亮屏幕
231打开语音助手
276如果没有 wakelock 则让系统休眠

滑动解锁:如果锁屏没有密码,是通过滑动手势解锁,那么可以通过 input swipe 来解锁。
命令:adb shell input swipe 300 1000 300 500
(其中参数 300 1000 300 500 分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标。)
点击内容
adb shell input tap
该命令是用于向设备发送一个点击操作的指令,参数是 坐标
adbshell input tap 100 100
输入文本:在焦点处于某文本框时,可以通过 input 命令来输入文本。
命令:adb shell input text *** (***即为输入内容)

打印日志
Android 的日志分为如下几个优先级(priority):
V —— Verbose(最低,输出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F—— Fatal
S —— Silent(最高,啥也不输出)
按某级别过滤日志则会将该级别及以上的日志输出。
比如,命令:adb logcat *:W 会将 Warning、Error、Fatal 和 Silent 日志输出。
(注: 在 macOS 下需要给 :W 这样以 作为 tag 的参数加双引号,如 adb logcat “:W”,不然会报错 no matches found: :W。)

adb logcat打印当前设备上所有日志
adb logcat *:W过滤打印严重级别W及以上的日志
adb logcat l findstr ***> F:\log.txt把仅含***的日志保存到F盘的log.txt文件中
adb logcat -c清除屏幕上的日志记录
adb logcat -c && adb logcat -s ActivityManager l grep "Displayed”客户端程序启动时间获取日志
adb logcat > F:\log.txt打印当前设备上所有日志保存到F盘的log.txt文件中
adb logcat l findstr ***打印过滤仅含***的日志
adb logcat l findstr ***> F:\log.txt把仅含***的日志保存到F盘的log.txt文件中

按 tag 和级别过滤日志:命令:adb logcat ActivityManager:I MyApp:D *:S
表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)。
日志格式可以用:adb logcat -v 选项指定日志输出格式。
日志支持按以下几种 :默认格式brief、process、tag、raw、time、long
指定格式可与上面的过滤同时使用。比如:adb logcat -v long ActivityManager:I *:S
清空日志:adb logcat -c
内核日志:adb shell dmesg

查看设备情况
查看设备信息型号命令:adb shell getprop ro.product.model
电池状况命令:adb shell dumpsys battery
屏幕分辨率命令:adb shell wm size
如果使用命令修改过,那输出可能是:
Physical size: 1080x1920
Override size: 480x1024
表明设备的屏幕分辨率原本是 1080px * 1920px,当前被修改为 480px * 1024px。
屏幕密度命令:adb shell wm density
如果使用命令修改过,那输出可能是:
Physical density: 480
Override density: 160
表明设备的屏幕密度原来是 480dpi,当前被修改为 160dpi。
显示屏参数:adb shell dumpsys window displays
输出示例:
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
Display: mDisplayId=0
init=1080x1920 420dpi cur=1080x1920 app=1080x1794 rng=1080x1017-1810x1731
deferred=false layoutNeeded=false
其中 mDisplayId 为 显示屏编号,init 是初始分辨率和屏幕密度,app 的高度比 init 里的要小,表示屏幕底部有虚拟按键,高度为 1920 - 1794 = 126px 合 42dp。
android_id查看命令:adb shell settings get secure android_id
查看Android 系统版本:adb shell getprop ro.build.version.release
查看设备ip地址:adb shell ifconfig | grep Mask或者adb shell netcfg
查看CPU 信息命令:adb shell cat /proc/cpuinfo
查看内存信息命令:adb shell cat /proc/meminfo
更多硬件与系统属性
设备的更多硬件与系统属性可以通过如下命令查看:adb shell cat /system/build.prop
单独查看某一硬件或系统属性:adb shell getprop <属性名>

属性名含义
ro.build.version.sdkSDK 版本
ro.build.version.releaseAndroid 系统版本
ro.product.model型号
ro.product.brand品牌
ro.product.name设备名
ro.product.board处理器型号
persist.sys.isUsbOtgEnabled是否支持 OTG
dalvik.vm.heapsize每个应用程序的内存上限
ro.sf.lcd_density屏幕密度
rro.build.version.security_patchAndroid 安全补丁程序级别

修改设置
修改设置之后,运行恢复命令有可能显示仍然不太正常,可以运行 adb reboot 重启设备,或手动重启。
修改设置的原理主要是通过 settings 命令修改 /data/data/com.android.providers.settings/databases/settings.db 里存放的设置值。
修改分辨率命令:adb shell wm size 480x1024 恢复原分辨率命令:adb shell wm size reset
修改屏幕密度命令:adb shell wm density 160 表示将屏幕密度修改为 160dpi;恢复原屏幕密度命令:adb shell wm density reset
修改显示区域命令:adb shell wm overscan 0,0,0,200 四个数字分别表示距离左、上、右、下边缘的留白像素,以上命令表示将屏幕底部 200px 留白。恢复原显示区域命令:adb shell wm overscan reset
关闭 USB 调试模式命令:adb shell settings put global adb_enabled 0 需要手动恢复:「设置」-「开发者选项」-「Android 调试」

状态栏和导航栏的显示隐藏:adb shell settings put global policy_control
可由如下几种键及其对应的值组成,格式为 =:=。

key含义
immersive.full同时隐藏
immersive.status隐藏状态栏
immersive.navigation隐藏导航栏
immersive.preconfirms?

这些键对应的值可则如下值用逗号组合:

value含义
apps所有应用
*所有界面
packagename指定应用
-packagename排除指定应用

举例:adb shell settings put global policy_control immersive.full=* 表示设置在所有界面下都同时隐藏状态栏和导航栏。
举例:adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3 表示设置在包名为 com.package1 和 com.package2 的应用里隐藏状态栏,在除了包名为 com.package3 的所有应用里隐藏导航栏。
恢复正常模式:adb shell settings put global policy_control null

实用功能
截图保存到电脑:adb exec-out screencap -p > sc.png
然后将 png 文件导出到电脑:adb pull /sdcard/sc.png
录制屏幕:录制屏幕以 mp4 格式保存到 /sdcard:adb shell screenrecord /sdcard/filename.mp4 需要停止时按 Ctrl-C,默认录制时间和最长录制时间都是 180 秒。
如果需要导出到电脑:adb pull /sdcard/filename.mp4
挂载、查看连接过的 WiFi 密码、开启/关闭 WiFi、设置系统日期和时间都需要root权限,不做多说。

使用 Monkey 进行压力测试:Monkey 可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试。
简单用法:adb shell monkey -p < packagename > -v 500 表示向 指定的应用程序发送 500 个伪随机事件。

查看进程:adb shell ps
查看实时资源占用情况:adb shell top
查看进程 UID:adb shell dumpsys package | grep userId=

欢迎添加软件测试技术交流群:189126020 ,一起交流分享知识,共同进步


http://www.ppmy.cn/news/210045.html

相关文章

QT 应用程序打包

QT 应用程序打包 一、简述 记--Windows环境将应用程序打包成一个exe应用&#xff0c;以便给没有Qt环境的用户使用。 打包工具&#xff1a;Windows使用windeployqt&#xff0c;Ubuntu使用linuxdeployqt (linuxdeployqt xxx可执行文件 -appimage)。 步骤&#xff1a;使用windepl…

微信小程序的下载安装

微 信 小 程 序 \color{purple}{微信小程序} 微信小程序 微信小程序&#xff0c;简称小程序&#xff0c;英文名Mini Program&#xff0c;是一种不需要下载安装即可使用的应用&#xff0c;它实现了应用“触手可及”的梦想&#xff0c;用户扫一扫或搜一下即可打开应用。 下 载 \…

微擎安装小程序应用

不经常用微擎模块,今天突然让我来搭建一个小程序,于是在同事的帮助下完成了任务,但是这样就算完成了吗?不,简单记录下自己搭建的过程,记录一下,也可以跟大家分享分享. 1.把安装的小程序应用后台代码上传到服务器上,具体目录为根目录下的addons目录下,上传完成后登录微擎后台显…

夏普电视android应用程序,教你解决夏普电视出现的“应用程序未安装”问题

本帖最后由 SunMi 于 2018-1-17 17:16 编辑 智能电视之所以叫智能电视&#xff0c;是因为其能与智能手机一样&#xff0c;通过安装软件让电视获取更多的软件&#xff0c;进行更多的智能化操作。但是不少用户反映&#xff0c;夏普电视在安装程序失败&#xff0c;显示“应用程序…

APK安装流程:点击下载应用了解安装的全过程

一讲到APK安装流程&#xff0c;它有四种安装方式&#xff1a; 系统应用和预制应用安装&#xff0c;开机时完成&#xff0c;没有安装界面&#xff0c;在PKMS的构造函数中欧冠完成安装网络下载应用安装&#xff0c;通过应用商店来完成&#xff0c;调用PackageManager.installPac…

应用程序安装流程

https://maoao530.github.io/2017/01/18/package-install/ 本文介绍APK的安装流程。 一、安装流程图 APK安装流程&#xff0c;总体可以下图流程&#xff0c;用ProcessOn画的&#xff0c;凑合看&#xff1a; 从上图我们可以看到apk安装到最后都会调用到这个flow&#xff1a; PM…

pr安装缺少VCRUNTIME140.dll怎么办?这三个修复方案可以解决

在我们安装pr的时候&#xff0c;遇到缺少VCRUNTIME140.dll怎么办&#xff1f;vcruntime140.dll是一个Windows动态链接库&#xff0c;其主要功能是为C/C编译的程序提供运行时支持。这些库包括输入/输出函数、数学函数、字符串函数等等。因此&#xff0c;如果您的计算机缺少vcrun…

PyTorch 深度学习 || 专题一:神经网络基础

神经网络基础 神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向–深度学习的基础。学习神经网络不仅可以让你掌握一门强大的机器学习方法&#xff0c;同时也可以更好地帮助你理解深度学习技术。 神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器…