常用adb命令总结
前言
很早就想整理一下自己平时常用的一些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/111.txt E:\
小技巧,可以将本地路径指定为桌面,方便查看, 在桌面按住shift键,鼠标右键选择在此处打开命令行窗口,直接输入adb pull sdcard/Android/111.txt 执行,就可将111.txt复制到桌面。
前提是设备已经获取root权限
adb root
adb remount
adb push 将pc上文件复制到android设备中,修改room原生应用时比较频繁使用,如settings.apk, launcher3.apk
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时,出现如下错误
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 > > cmp=com.mediatek.engineermode/.io.Gpio } from null (pid=3083, uid=2000) not exported from uid 1001解决办法,1、如果是你自己可控的app,那么找到你要调用的activity在manifest.xml中,增加
<action android:name="android.intent.action.MAIN" />
配置即可, android:name="" 可以为空字符串。
2、如果是不可控的app,例如我调用的系统原生app,那么你就洗洗睡吧,别折腾了,除非你修改源码和上边一样操作,重新push替换原来的app。
启动默认浏览器打开一个网页
adb shell am start -a android.intent.action.VIEW -d http://testerhome.com
先停止目标应用,再启动
adb shell am start -s com.android.camera/.Camera
启动相机
adb shell am start -n com.android.camera/.Camera
启动设置
adb shell am start -n com.android.settings/com.android.settings.Settings
启动Wifi设置
adb shell am start -n com.android.settings/com.android.settings.wifi.WifiSettings
启动蓝牙设置
adb shell am start -n com.android.settings/com.android.settings.bluetooth.BluetoothSettings
其它的类似只要你能在manifest中找到配置的,都可以通过这种方法来调用
- 发送指定的广播
操作指令 adb shell am broadcast -a 广播名 --ei/es/ez 参数名 参数值 --ei/es/ez 参数名 参数值
--ei integer 值
--es String 值
--ez boolean 值
--ef float 值
--el long 值
例如之前写的Android6.0 源码修改之Setting列表配置项动态添加和静态添加, 当中就通过发送广播来接收增加配置列表项
adb shell am broadcast -a cn.dynamic.add.settingcategoryitem --es location "0-2" --es title "红" --es intent "com.android.settings.SCHEDULE_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 含义
- 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.preconfirms=*
表示恢复显示
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命令总结的更多相关文章
- 分享一个常用Adb命令
分享一个常用Adb命令 首先 首先感谢@xuxu的常用adb命令,收益良多,但是已经不能满足于我,所以补充了下. 再者 好久没发帖了,最近论坛老司机们都在讨论/总结,我就用这个干货回报吧. 最后 基于 ...
- Android 常用 adb 命令
查看原文:http://blog.csdn.net/u010818425/article/details/52266593 (一)基础操作 安装app adb install -r xxx.apk / ...
- Android 常用 adb 命令总结
Android 常用 adb 命令总结 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命 ...
- adb环境配置+常用adb命令+Logcat命令的用法+手动进行文件比对的方法+批量挪bug
1. adb环境配置:下载adb环境变量包:打开计算机属性-高级系统设置-环境变量:新建变量adb,值为刚才的环境变量包路径:编辑path值,在最后面加上;%adb%;确定就妥了 2. 常用adb命令 ...
- [原创]Android 常用adb命令总结
[原创]Android 常用adb命令总结 1 adb介绍 1.1 adb官方网站及下载 官方网站下载安装:http://adbshell.com/downloads 1.2 adb安装是否成功检查? ...
- 『与善仁』Appium基础 — 4、常用ADB命令(一)
目录 1.启动和关闭ADB服务 2.查看ADB版本 3.指定adb server的网络端口 4.查询已连接设备/模拟器 5.获取安卓系统版本 6.为命令指定目标设备 7.发送文件到手机 8.从手机拉取 ...
- Android的常用adb命令
第一部分:1. ubuntu下配置环境anroid变量:在终端执行 sudo gedit /etc/profile 打开文本编辑器,在最后追加#setandroid environment2. 运行E ...
- 【转】Android 常用 adb 命令总结
原文地址:http://testerhome.com/topics/2565 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Andr ...
- APP测试时常用adb命令
ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(手机),故在其实工作可以给我们 ...
随机推荐
- bossplayersCTF 1: Vulnhub Walkthrough
主机扫描: http://10.10.202.130/ <!--WkRJNWVXRXliSFZhTW14MVkwaEtkbG96U214ak0wMTFZMGRvZDBOblBUMEsK--> ...
- ORA-07217 environment variable cannot be evaluated
问题描述:还是rman的问题,一个很沙雕的问题,改了半天,准备是要做数据库的全备,和归档的备份 1.连接rman进行备份,这里要保持数据库为mount状态,因为要对数据库全备 [oracle@orcl ...
- 使用Navicat Keygen激活(破解)Navicat Premium 12
1.到Navicat官网下载使用版本进行安装,具体操作不再详述.Navcat官网下载链接:http://www.navicat.com.cn/download/navicat-premium : 2. ...
- 初学Manjaro
近期,看有朋友在使用Manjaro系统,感觉这个系统挺不错,于是我也安装了Manjaro,学习一下!!!! Manjaro下载地址:https://manjaro.org/download/ Manj ...
- 3.Redux学习3----redux-saga
redux-saga和redux-thunk功能差不多,都是为了避免直接在组件生命周期函数中做异步操作,便于自动化测试,便于拆分管理. 首先要下包 npm i redux-saga 第零步:在acti ...
- win10环境下为mongoDB创建用户并认证登录
一.配置mongoDB的bin目录到环境变量中的path;例如:D:\DatabaseService\MongoDB\Server\4.0\bin 二.cmd打开控制台,然后输入mongo回车,可以进 ...
- weblogic启动节点服务java.lang.ClassCastException:com.octestring.vde.backend.BackendRoot cannot be cast to com.octestring.vde.backend.standard.BackendStandard类型转换异常
weblogic启动节点服务器报错,java.lang.ClassCastException:com.octestring.vde.backend.BackendRoot cannot be cast ...
- Serverless 实战——使用 Rendertron 搭建 Headless Chrome 渲染解决方案
为什么需要 Rendertron? 传统的 Web 页面,通常是服务端渲染的,而随着 SPA(Single-Page Application) 尤其是 React.Vue.Angular 为代表的前端 ...
- MongoDB(三):数据库操作、集合操作
1. 数据库操作 看完前面的文章,大家应该把环境搭建好了,下面我们就开始学习MongoDB的一些基本操作了. 首先我们要了解的一些要点: MongoDB将数据存储为一个文档,数据结构由键值对(key= ...
- vue应用调试工具 vue-devtools安装
方法一:chrome直接访问下面地址下载安装:(需要翻墙) https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejigli ...