常用adb命令总结

摘要:
前言:我想很早就整理出一些常用的adb命令,这不仅是为了方便以后的搜索,也是为了自己回顾整理过程。但当我开始在榴莲搜索时,我发现很多人已经写得非常详细,特别是当我发现adb摘要中的句子NND非常详细,我失去了写这篇文章的欲望时,如果你单击链接并发现它确实完整,恭喜你可以关闭这篇文章。哈哈哈。我不这么认为。虽然它是完整的,但并不常用。这因人而异,所以我有权做笔记并替换

前言

很早就想整理一下自己平时常用的一些adb命令,不仅为了便于以后查找,而且整理的过程自己又重新复习了一遍,但是当我开始在度娘一搜的时候,发现很多人已经写的非常详细了,尤其是当我发现了这篇adb概括

心中一句NND,怎么可以写的这么详细,瞬间没了想写这篇文章的欲望,如果你点了链接发现确实很全,那么恭喜你可以关掉这篇了,哈哈哈。
常用adb命令总结第1张

我就不这么想的,虽然很全,但不是我常用的,因人而异,所以我就权当记笔记+替这哥们宣传了。

  • 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 的所有应用里隐藏导航栏。

参考链接

Android 常用 adb 命令总结

ADB命令大全

免责声明:文章转载自《常用adb命令总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇css3弹性盒子go mod 拉取私有仓库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

VSCode 前端常用插件集合

1.Auto Close Tag  自动闭合HTML/XML标签  2.Auto Rename Tag  自动完成另一侧标签的同步修改 3.Beautify  格式化代码,值得注意的是,beautify插件支持自定义格式化代码规则   4.Bracket Pair Colorizer  给括号加上不同的颜色,便于区分不同的区块,使用者可以定义不同括号...

2017.1.24学习记录

---恢复内容开始--- 一: 安装openjtag驱动,usb串口驱动,安装oflash,recureCRT软件。 二: 2.1 通过openjtag通过cmd.exe烧写bin文件,通过jlink烧写bin文件。烧写u-boot.bin 小心:用nandflash烧写时选块0 2.2 注意nand flash(openjtag)与nor flash(j...

Uniapp 之小程序版本更新检查——uni.getUpdateManager()

在开发小程序的时候,版本更新在所难免。所以,我们希望每次打开的小程序的时候,都可以进行版本检测。如果有新版本,那么,就更新,并且让用户能够重启,并应用新版本。 实现 开门见山,uni-app官方网站给了我们实现方法。以下是代码示例。 const updateManager =uni.getUpdateManager(); updateManager.on...

DDOS hulk,rudy

HULK (HTTP Unbearable Load King) HULK HULK是另一个DOS攻击工具,这个工具使用UserAgent的伪造,来避免攻击检测,可以通过启动500线程对目标发起高频率HTTP GET FLOOD请求,牛逼的是每一次请求都是独立的,可以绕过服务端的缓存措施,让所有请求得到处理。HULK是用Python语言编写,对获得源码...

利用m3u8下载ts并合并成一个完整视频 下载 blob视频

方法一:手机模式调试查MP4连接 方法二:Blob格式视频下载 1,引入 1,在网页中,如果看到自己喜欢的视频,想下载下来,在控制台一步步的找到这个元素之后,发现格式是blob格式的,就很尴尬, 下面详细介绍如何进行下载。 下载 blob视频, 如何下载网站中的blob:https:// 视频 2,步骤 2.1,打开控制台 在NetWork这一栏,对...

ffmpeg简介

1. ffmpeg下载 ffmpeg是一个开源软件,可以在官方平台下载。可以下载源码到具体平台编译,也可以直接下载某平台已编译好的软件。 http://ffmpeg.org/download.html ffmpeg的使用资料也在官网下载。文档是html格式的英文文档,可以使用谷歌打开,打开时谷歌翻译,拿来做参考还可以。 2. ffmpeg软件组件 ffmp...