安卓调试桥(Android Debug Bridge),是Android SDK中的一个调试工具, 使用adb可以直接 *** 作管理Android模拟器或Andriod真机设备,在开发测试过程中,起到调试的作用。
adbexe的存放路径:Android-SDKplatform-tools
adb help //查看帮助
adb version //查看adb版本号
adb devices //查看设备
adb connect IP:port //连接设备
adb disconnect //断开连接的所有设备
adb disconnect IP:port //断开连接指定设备
adb root //获取root权限
adb remount //重新挂载文件系统(默认只读,执行命令后可写)
adb install Package //安装APK
adb install -r Package //强制覆盖安装
adb install -t Package //允许降级覆盖安装
adb install -d Package //允许测试包
adb uninstall PackageName //卸载APK
adb uninstall -k (keep) PackageName //保留用户数据卸载
adb pull //将设备文件文件发送到PC
adb push //将PC文件发送到设备
adb logcat -c //清空日志
adb logcat -v threadtime >D:111log //抓日志并输出保存D:111log
adb shell screencap /sdcard/screenpng //屏幕截图(并存放sdcard目录,命名screenpng)
adb shell screenrecord /sdcard/demomp4 //录制屏幕(Android44以上可用)
adb shell dumpsys activity activities //查看activity信息
adb shell dumpsys activity |findstr mResumedActivity //获取当前activity信息
adb shell dumpsys window windows | findstr “Current” //查看当前app窗口activity
adb shell //进入设备内部
cd //切换目录
pwd //查看当前路径
ping //查看网络连接
rm //删除目录下的所有文件
cp -r /path/filename /NewPath //拷贝文件
busybox find / -name FileName //查找文件
tcpdump -i any -p -s 0 -w /data/data/1111pcap //抓取网络包
pm uninstall PackageName //卸载APK
pm path PackageName //查看APK存放位置
pm clear PackageName //清除APK缓存
dumpsys package omandroidxxx //查看APK的具体信息
dumpsys package omandroidxxx | grep version //查看APK版本
dumpsys package comtencentmm | findstr versionName //查看APK版本
am start PackageName //拉起APK
am start -n comandroidxxx/WelcomeActivity //直接拉起APK的指定WelcomeActivity
am start -a androidintentactionVIEW -d >
首先我们来解决第一个问题如何快速查找adb,当我们出现 "adb不是内部或外部命令,也不是可运行的程序或批处理文件"时表示我们的adb 未配置此时由于可能自己未注意自己的sdk放在哪个目录哪个地方而导致可能自己会在我的电脑中使用全局搜索这样的速度并不快速也很拖沓
接下来是 *** 作步骤:首先打开Android studio ->选择file其次选择setting->在输入框中输入Android sdk 在右上方即可看见 Android SDK Location 这里面的路劲便是最快速找到 adb的相关路径
此时有人会说了 我要的是adb路劲你这特么给我sdk 几个意思嗯~~~大部分的adb都在Android\Sdk\platform-tools里面或者叫做Android_Studio \sdk\platform-tools\
打开命令提示符(视窗键 + R)-->输入cmd-->输入adb,也可以打开AndroidStudio - >打开终端窗口---->输入adb,提示"adb不是内部或外部命令,也不是可运行的程序或批处理文件",错误信息如下:
1 android 22以后,adbexe是放在SDK的platform-tools目录下面的,找到adb存放的路径,把adb绝对路径复制下来上面结尾我已经告诉各位adb具体位置和方法了 再次不在说明贴图自己看
2 此电脑/计算机/我的电脑(右击)→属性→高级系统设置→高级→环境变量也可以Windows开始键+ Pause Break →属性→高级系统设置→高级→环境变量
3接下来是添加adb,你的路劲\ Android \ sdk \ platform-tools \前面添加;,如果不添加;, 请插了自己的双眼
如果\ Android \ sdk \ platform-tools \前面有;号就不用添加了这些步骤都完成了我们可以再次打开提示窗进行上一步的 *** 作查看是否成功
相信大家都知道 手机只有root 才能删除 手机自带的 系统应用,那么今天我们就用adb来 *** 作一下如何 不用root 也能删除,为啥要删除这些东西呢还不是国内手机瞎几把应用自启和广告等问题,我看着不爽啊!那么接下来就告诉各位如何 adb命令删除 手机系统:
1、激活开发者模式,打开 USB debug。
2、连接电脑,打开 cmd 窗口。
3、adb shell 进入 shell 模式。
4、获取要卸载的应用的包名:
adb shell pm list packages
这个命令的意思就是列出系统安装所有 APP 的安装包名称,然后,逐一查找需要删除的 APP 安装包名称,一般以 com 开头;
5、拿到APP安装包名称之后,接下来就是卸载应用了,命令如下:
这个命令的意思就是将用户 0 的 packageName 应用卸载掉。
-k 表示保存数据,如不需要,可去掉 -k,--user 指定用户 id,Android 系统支持多个用户,默认用户只有一个,id=0。
6、对于不常用或以后可能会用到的APP,可以使用 disable 进行禁用,需要时再 enable 即可(感谢 船老 ),命令如下:
至此,系统预置的应用就被卸载了。
弄完以后整个人焕然一新 啊神清气爽 ,本人第一次写文章 大部分都是网上看的和 大佬指教的欢迎各位指教
你先input 看下 有哪些命令,是否存在 tap swipe 等。若存在则:
tap 点击 , 移动则 swipe
如 你要模拟点 x , y
adb shell input tap x y
很早就想整理一下自己平时常用的一些adb命令,不仅为了便于以后查找,而且整理的过程自己又重新复习了一遍,但是当我开始在度娘一搜的时候,发现很多人已经写的非常详细了,尤其是当我发现了这篇adb概括
心中一句NND,怎么可以写的这么详细,瞬间没了想写这篇文章的欲望,如果你点了链接发现确实很全,那么恭喜你可以关掉这篇了,哈哈哈。
我就不这么想的,虽然很全,但不是我常用的,因人而异,所以我就权当记笔记+替这哥们宣传了。
– adb devices , 获取设备列表及设备状态
设备的状态有 3 种
device , 设备连接正常
offline , 设备离线,连接出现异常
unauthorized 设备为进行授权,需要在设备上是否允许调试对话框进行授权
offline情况解决办法,先执行adb kill-server 命令,再执行adb start-server 命令,再尝试adb devices 查看列表,如果还是offline,来来来,使用必杀技,重启大法。
当电脑连接多个android设备并可用时,所有的adb命令都需要指定设备后执行(当然你也可以移除多余的设备)
adb -s <设备名称> install/uninstall/shell/pull/push等命令
– adb install app在pc硬盘路径,选中app直接拖入即可
常见的错误情况
INSTALL_FAILED_TEST_ONLY, 安装的app的debug版本的,未签名,adb install -t 路径即可安装
INSTALL_FAILED_DUPLICATE_PACKAGE, 已经安装相同包名的app, 先卸载再安装
– adb uninstall app的包名,卸载app
adb pull 将 Android 设备上的文件或者文件夹复制到本地
adb pull sdcard/Android/111txt E:\
小技巧,可以将本地路径指定为桌面,方便查看, 在桌面按住shift键,鼠标右键选择在此处打开命令行窗口,直接输入adb pull sdcard/Android/111txt 执行,就可将111txt复制到桌面。
前提是设备已经获取root权限
adb root
adb remount
adb push 将pc上文件复制到android设备中,修改room原生应用时比较频繁使用,如settingsapk, launcher3apk
– adb shell pm 命令
adb shell pm list package 列出android设备上的所有app
adb shell pm list package -s 列出android设备上的系统级别app
adb shell pm list package -3 列出android设备上的第三方app(用户安装的)
adb shell pm list package -f 列出app包名及对应的apk名及存放位置
adb shell pm list package -i 列出app包名及其安装来源(应用市场名称)
adb shell pm dump app包名 列出app的相关信息,类似获取Manifest文件内容
-查看前台 Activity
adb shell dumpsys activity activities “| grep mFocusedActivity”
-adb shell am 命令
最常用的就是启动指定的activity和发送指定的广播
启动指定的activity
*** 作指令 adb shell am start -n 包名/类名
注:如果启动activity时,出现如下错误
javalangSecurityException: Permission Denial: starting Intent { flg=0x10000000 > > cmp=commediatekengineermode/ioGpio } from null (pid=3083, uid=2000) not exported from uid 1001
解决办法,1、如果是你自己可控的app,那么找到你要调用的activity在manifestxml中,增加
1
配置即可, android:name="" 可以为空字符串。
2、如果是不可控的app,例如我调用的系统原生app,那么你就洗洗睡吧,别折腾了,除非你修改源码和上边一样 *** 作,重新push替换原来的app。
启动默认浏览器打开一个网页
adb shell am start -a androidintentactionVIEW -d
先停止目标应用,再启动
adb shell am start -s comandroidcamera/Camera
启动相机
adb shell am start -n comandroidcamera/Camera
启动设置
adb shell am start -n comandroidsettings/comandroidsettingsSettings
启动Wifi设置
adb shell am start -n comandroidsettings/comandroidsettingswifiWifiSettings
启动蓝牙设置
adb shell am start -n comandroidsettings/comandroidsettingsbluetoothBluetoothSettings
其它的类似只要你能在manifest中找到配置的,都可以通过这种方法来调用
发送指定的广播
*** 作指令 adb shell am broadcast -a 广播名 --ei/es/ez 参数名 参数值 --ei/es/ez 参数名 参数值
–ei integer 值
–es String 值
–ez boolean 值
–ef float 值
–el long 值
例如之前写的
Android60 源码修改之Setting列表配置项动态添加和静态添加, 当中就通过发送广播来接收增加配置列表项
adb shell am broadcast -a cndynamicaddsettingcategoryitem --es location “0-2” --es title “红” --es intent “comandroidsettingsSCHEDULE_POWER_ON_OFF_SETTING”
-adb shell input keycode 指令
HOME 键 adb shell input keycode 3
返回键 adb shell input keycode 4
打开浏览器 adb shell input keycode 64
-adb shell wm 指令
屏幕分辨率 adb shell wm size
屏幕密度 adb shell wm density
adb shell wm density 320/480/640 可修改屏幕密度查看效果,对应Launcher图标会缩放
adb shell ifconfig 命令
IP 地址 adb shell ifconfig “| grep Mask”
WIFI 地址 adb shell ifconfig wlan0
状态栏和导航栏的显示隐藏
命令:
adb shell settings put global policy_control
可由如下几种键及其对应的值组成,格式为 key1=value1:key2=value2。
key 含义
immersivefull 同时隐藏
immersivestatus 隐藏状态栏
immersivenavigation 隐藏导航栏
immersivepreconfirms 同时显示
这些键对应的值可则如下值用逗号组合:
value 含义
apps 所有应用
所有界面
packagename 指定应用
packagename 排除指定应用
例如:
adb shell settings put global policy_control immersivefull=
表示设置在所有界面下都同时隐藏状态栏和导航栏。(重启也不会失效,恢复需调用下面的命令)
adb shell settings put global policy_control immersivepreconfirms=
表示恢复显示
adb shell settings put global policy_control immersivestatus=compackage1,compackage2:immersivenavigation=apps,-compackage3
表示设置在包名为 compackage1 和 compackage2 的应用里隐藏状态栏,在除了包名为 compackage3 的所有应用里隐藏导航栏
adb shell am force-stop app 关闭APP
adb shell pm clear APP app进程被杀死,且会清楚所有数据
1:查找手机安装应用的包名:adb shell pm list packages -f
2:查看系统盘符:adb shell df
3:查看Log 1:adb shell 2: logcat | grep "abc"
4:删除应用:1:adbremount 2:adb shell 3:cdsystem/app 4:rm apk
5:安装APK: adbinstall -r apk 或者 adb pushapk /system/app
6:查看APP启动的时间指令
adb shell am start -W -ncomandroiddialer/DialtactsActivity (W是大写)执行命令后APP会自 动启动,其中ThisTime即是本次 App启动所花费的时间。
7:查看包名中当前所在进程信息:adb shell ps | grep +包名
8:查看Activity运行的任务栈:adb shell dumpsys activity
9:查看键值:adb logcat | grep intercep -i
10:查看模块所占有的CPU资源:adb shell top -d 2 -m 10
11:查看可用系统的权
$ adb shell
# pm list permissions
12:模拟按键的输入:adb shell input keyevent + 键值
eg: adb shell input keyevent 82 表示menu
adb shell input keyevent 3 表示home
adb shell input keyevent 19 表示up
adb shell input keyevent 20 表示down
adb shell input keyevent 21 表示left
adb shell input keyevent 22 表示right
adb shell input keyevent 66 表示enter
adb shell input keyevent 4 表示back
13:模拟滑动输入:adb shell input touchscreen <x1> <y1> <x2> <y2>
eg: adb shell input touchscreen swipe 18 665 18 350
14:启动一个Activity : adb shell am start -n 包名+类名
15:录制屏幕:adb shell screenrecord /sdcard/demomp4
16:重新启动:adb reboot
17:Monkey的基本用法下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:
$ adb shell monkey -p yourpackagename -v 500
如果跑桌面或者systemUi的monkey的话:
adb shell monkey -v -v -p 桌面包名 --pct-touch 50 --pct-motion 30 --pct-syskeys 20 --throttle 300 -s 200 200000
18:查找第三方应用的详细信息:
adb shell dumpsys package +第三方包名(comtxznetwebchat)
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可以在任务管理中找到adbexe; 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/testtxt 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, 如 comUCMobile/mainUCMobile
eg:adb shell su disable comUCMobile/mainUCMobile
同时我们在手机上发现,UC浏览器的图标不见了
让一个apk从禁用状态恢复过来
其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 comUCMobile/mainUCMobileeg:
adb shell su enable comUCMobile/mainUCMobile
同时我们从手机上发现,UC浏览器的图标又出现了。
查看一个apk所在的路径
adb shell pm path comUCMobile
查看手机中装的所有的包
屏幕开始录像并且储存到/sdcard中,同时名字为demomp4
录屏设置时长10s,命名为demomp4
注意:现在仅支持一部分手机录屏,不支持的手机会出现以下提示
解决方法:
安装了scrcpy之后,只需要输入如下命令,即可录取指定设备的屏幕
scrcpy -s device --render-expired-frames -Nr /demopm4
--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才能启动;
启动华为系统相机
打开音乐播放器
播放指定音乐:
先停止目标应用,再启动
等待应用完成启动
启动网页(androidintentactionVIEW具体参考Android官网)
结束应用
input
模拟输入,向获得焦点的EditText控件输入内容
返回主界面
发送一个点击 *** 作的指令,参数是<x> <y>坐标
从左往右滑动屏幕, /从 100 100 经历300毫秒滑动到 200 200
长按 *** 作,在 100 100 位置长按 1000毫秒
Android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文件夹中,它是一个非常强大的命令行工具,通过这个工具你能够与你的android设备进行交互,被称为Android 调试桥。
它是一种客户端-服务器程序,包括以下三个组件:
adb shell 命令
adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下
monkey命令
当您启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它会启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。
然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接。请注意,每个模拟器都使用一对按顺序排列的端口 - 用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口。例如:
模拟器 1,控制台:5554
模拟器 1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557
依此类推
如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。
服务器与所有设备均建立连接后,您便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此您可以从任意客户端(或从某个脚本)控制任意设备。
要在通过 USB 连接的设备上使用 adb,您必须在设备的系统设置中启用 USB 调试 (位于 开发者选项 下)。
在搭载 Android 42 及更高版本的设备上,“开发者选项”屏幕默认情况下处于隐藏状态。如需将其显示出来,请依次转到 设置 > 关于手机 ,然后点按 版本号 七次。返回上一屏幕,在底部可以找到 开发者选项 。
在某些设备上,“开发者选项”屏幕所在的位置或名称可能有所不同。
执行 adb devices 验证设备是否已连接。如果已连接,您将看到设备名称以“设备”形式列出。
一般情况下,adb 通过 USB 与设备进行通信,但您也可以在通过 USB 完成一些初始设置后,通过 WLAN 使用 adb,如下所述。
如果 adb 连接断开:
如果有多个设备在运行,您在发出 adb 命令时必须指定目标设备。为此,请使用 devices 命令获取目标设备的序列号。获得序列号后,请结合使用 -s 选项与 adb 命令来指定序列号。如果您要发出很多 adb 命令,可以将 $ANDROID_SERIAL 环境变量设为包含序列号。如果您同时使用 -s 和 $ANDROID_SERIAL , -s 会替换 $ANDROID_SERIAL 。
$ adb -s emulator-5555 install helloWorldapk
注意 :如果您在多个设备可用时发出命令但未指定目标设备,adb 会生成错误。
如果有多个可用设备,但只有一个是模拟器,请使用 -e 选项将命令发送至该模拟器。同样,如果有多个设备,但只连接了一个硬件设备,请使用 -d 选项将命令发送至该硬件设备。
使用 forward 命令设置任意端口转发,将特定主机端口上的请求转发到设备上的其他端口。以下示例设置了主机端口 6100 到设备端口 7100 的转发:
>adb forward tcp:6100 tcp:7100
您可以使用 pull 和 push 命令将文件复制到设备或从设备复制文件。与 install 命令(仅将 APK 文件复制到特定位置)不同,使用 pull 和 push 命令可将任意目录和文件复制到设备中的任何位置。
如需从设备中复制某个文件或目录(及其子目录),请使用以下命令:
adb pull remote local
如需将某个文件或目录(及其子目录)复制到设备,请使用以下命令:
adb push loca remote
adb kill-server
您可以使用 shell 命令通过 adb 发出设备命令,也可以启动交互式 shell。如需发出单个命令,请使用 shell 命令,如下所示:
adb [-d |-e | -s shell shell_command
在 adb shell 中,您可以使用 Activity 管理器 ( am ) 工具发出命令以执行各种系统 *** 作,如启动 Activity、强行停止进程、广播 intent、修改设备屏幕属性,等等。在 shell 中,相应的语法为:
您也可以直接从 adb 发出 Activity 管理器命令,无需进入远程 shell。例如:
adb shell am start -a androidintentactionVIEW
以上就是关于ADB常用命令大全全部的内容,包括:ADB常用命令大全、adb怎么设置双击锁屏、adb查找以及删除手机系统应用 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)