其他分享
首页 > 其他分享> > ADB常用命令及其用法大全

ADB常用命令及其用法大全

作者:互联网

前言:
本文主要记述ADB的常用命令,关于ADB用法大全,可参考文末链接


ADB简介:

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。安卓调试桥 (Android Debug Bridge, adb),是一种可以用来操作手机设备或模拟器的命令行工具。它存在于 sdk/platform-tools 目录下。虽然现在 Android Studio 已经将大部分 ADB 命令以图形化的形式实现了,但是了解一下还是有必要的。
注: 有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。

小技巧:记不住ADB命令?
ADB 命令的插件 adb-idea

在这里插入图片描述

查看当前连接设备:

adb devices

  
  
  • 1
adb -s 设备号 其他指令

  
  
  • 1

举例:
adb -s devicel install xxx.apk

查看顶部Activity:

adb shell dumpsys activity | findstr "mFocusedActivity"

  
  
  • 1
adb shell dumpsys activity | grep "mFocusedActivity"

  
  
  • 1

查看日志:

adb logcat

  
  
  • 1

安装apk文件:

adb install xxx.apk

  
  
  • 1
adb install -r xxx.apk

  
  
  • 1
adb install -r -t xxx.apk

  
  
  • 1

卸载App:

adb uninstall com.zhy.app

  
  
  • 1
adb uninstall -k com.zhy.app

  
  
  • 1

传递文件:

adb push 文件名 手机端SDCard路径

  
  
  • 1

例如:
adb push 帅照.jpg /sdcard/

adb pull /sdcard/xxx.txt

  
  
  • 1

查看手机端安装的所有app包名:

adb shell pm list packages

  
  
  • 1

启动Activity:

adb shell am start 包名/完整Activity路径

  
  
  • 1

例如:
adb shell am start com.zhy.aaa/com.zhy.aaa.MainActivity

adb shell am start com.zhy.aaa/com.zhy.aaa.MainActivity -e name zhy

  
  
  • 1
adb shell am start -a "android.intent.action,VIEW" -d "https://www.google.com"

  
  
  • 1

发送广播:

adb shell am broadcast -a "broadcastactionfilter"

  
  
  • 1

-如果需要携带参数(携带一个Intent,key为name):

adb shell am broadcast -a "broadcastactionfilter" -e name zhy

  
  
  • 1

启动服务:

adb shell am startservice "com.zhy.aaa/com.zhy.aaa.MyService"

  
  
  • 1

屏幕截图:

adb shell screencap /sdcard/screen.png

  
  
  • 1

录制视频:

可以使用screenrecord[options] filename命令来录制屏幕视频,例如:

adb shell screenrecord /sdcard/demo.mp4

  
  
  • 1

针对Android小白的常用ADB细致讲解操作:

一.链接ADB:

启动ADB的2种方式:

  1. 直接进入sdk/platform-tools目录:
    然后在命令行中输入adb devices来验证设备是否连接。
    缺点:每次进入platform-tools目录很麻烦。
  2. 将adb地址写入环境变量**(即配置adb为环境变量)**
export PATH=$PATH:<path to Android SDK>/platform-tools

  
  
  • 1

然后在命令行中输入source ~/.bash_profile或者source ~/.zshrc来更新配置文件。

  1. 先进入环境变量:
    在这里插入图片描述
    在这里插入图片描述
  2. 选择系统变量下的Path再选择编辑(你也可以选择新建,注意添加分号;)
    在这里插入图片描述
    在这里插入图片描述
    然后去寻找你的Android SDK文件夹下的platform-tools,进入该文件夹并在地址栏复制当前路径
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    最后,新建并添加复制好的路径即可。
    在这里插入图片描述

注意:Android SDK,你可在安卓官网去下载,或者如果你拥有AndroidStudio也会下载过它,它可存放在资源管理器下的任意位置。你知晓它的存放位置即可。

上方的A5R7N18202000063是我的手机设备序列号(手机不同,设备序列号也就不同),device是设备状态。
设备的3种状态:
offline ———设备未连接到adb或者没有响应
device———设备已连接到ADB
no device ———未连接到模拟器/设备

二. 安装和卸载

  1. 安装:
    我们可以使用adb install [option] <path> 命令来将电脑上的一个APP安装到手机上,例如:
    adb install crime.apk
    注意:有时候apk文件不在你的启动cmd的路径下,记得添加apk文件在你电脑上的path路径。
adb -s A5R7N18202000063 install crime.apk

  
  
  • 1

即可安装成功crime.apk文件了。

  1. 覆盖安装:
    如果你当前要操作的手机设备已经安装了你想要安装的APP,你再去执行安装命令(即重复安装),就会报错:Failure [INSTALL_FAILED_ALREADY_EXISTS].解决方案为:覆盖安装:加上**-r**(replace)来替换当前已安装的应用。
adb install -r crime.apk

  
  
  • 1
  1. 卸载:
    卸载一个当前设备上的某个APP的命令为:adb uninstall [option]<packagename>,前提是你得直到你想要卸载的APP的包名。
    注意:卸载APP知道它的包名;从电脑上安装APP到手机上只需要知道电脑中APK 的存放路径和APK文件名。

APP卸载后,其缓存文件一般也会被清除。
如果要想保留缓存文件,添加 -k,即:
adb uninstall -k 包名

三.文件操作

  1. Android 手机中的文件路径:
    以前手机容量较小,一般会有可拔插的SD卡扩展内存,然后把资源数据存放到SD卡目录下。现在,手机取消了SD卡,外部存储空间很大了,但是Android仍称之为SD。为了做兼容,也会mock一个假的SD卡路径。因此,很多开发者将APP数据保存在**/sdcard**目录下。现在已经不推荐将文件存储在/sdcard目录下了。
adb pull /sdcard/crime.apk 

  
  
  • 1
adb push crime.apk /sdcard/data/data

  
  
  • 1
  1. 清除APP数据:
    在开发中,经常会遇到:清空APP缓存数据,然后进行一系列请求。如,清空APP缓存数据,可使用adb shell pm clear com.example.packagename 命令。注:该命令清除掉APP的缓存,还能把APP的数据给清空。

  2. 查看所有App的名称:
    使用如下命令:

adb shell pm list packages

  
  
  • 1

注意:该命令可以查看手机上的APP名称。可以在后面加上 -f ,这样还能显示该APP的路径。
即:

adb shell pm list packages -f 

  
  
  • 1

四.事件输入:

  1. input:
adb shell input text "insert%stext%shere"

  
  
  • 1

注意:%s表示空格。

adb shell input tap 500 1450

  
  
  • 1

表示在屏幕上(500,1450)的坐标点上进行一次点击。

adb shell input swipe 100 500 100 1450 100

  
  
  • 1

表示从屏幕坐标(100,500)开始,滑动到(100,1450)结束,整个过程耗时100ms.

adb shell input swipe 100 500 100 500 500

  
  
  • 1
adb shell input keyevent 25

  
  
  • 1

该命令表示调低音量。数字25是在AOSP源码中的KeyEvent类里卖弄定义的一个事件常量。该类定义了将近300个事件常量。

  1. am:
    am(Activity Manager)命令来启动一个APP、启动Activity、启动广播和服务等等。
adb shell am start com.example.crime/com.example.crime.MainActivity

  
  
  • 1
class SecondActivity : AppCompatActivity() {
companion object {
    private val ARGUS_NAME = "argus_name"
    fun launch(activity: Activity, content: String): Intent {
        val intent = Intent(activity, SecondActivity::class.java)
        intent.putExtra(ARGUS_NAME, content)
        return intent
    }
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_second)

    val name = intent.getStringExtra(ARGUS_NAME)
    nameTv.text = "Hello, $name"
}

}

即启动SecondActivity的话需要传入一个agrus_name参数,那么在命令行中可以执行:

adb shell am start com.example.crime/com.example.crime.SecondActivity -e argus_name QiuShui

 
 
  • 1
adb shell am start -a "android.intent.action.VIEW" -d "https://www.google.com"

 
 
  • 1

上面这个命令会启动浏览器打开谷歌网址页面。

adb shell am broadcast -a "our.specified.action"

 
 
  • 1

还可以在上述命令后面添加**-e**来添加额外的信息。

adb shell am broadcast -a android.intent.action.BOOT_COMPILETED

 
 
  • 1
adb shell am startservice "com.example.crime/com.example.crime.MyService"

 
 
  • 1

五.事件输出:

  1. 日志信息:
    使用adb logcat可以显示日志信息,使用**command +c (Windows下:ctrl+c)**来停止日志输出。
    比起原生的adb logcat,JakeWharton大神的pidcat显示效果更好:
    在这里插入图片描述
    但我还是更喜欢AndroidStudio的日志功能,非常完善。
  2. dumpsys:
    dumpsys命令可以提供非常多的系统信息。可以通过adb shell service list来查看dumpsys能提供查询信息的服务,常用的有:
服务类名功能
activityActivityManagerServiceAMS相关信息
packagePackageManagerServicePMS相关信息
windowWindowManagerServiceWMS相关信息
inputInputManagerServiceIMS相关信息
powerPowerManagerServicePMS相关信息
procstatsProcessStatsService进程统计
batteryBatteryService电池信息
alarmAlarmManagerService闹钟信息
meminfoMemBinder内存

例如,要查看电池信息,命令行输入adb shell dumpsys battery,可以看到如下图:
在这里插入图片描述

dumpsys activity intents
dumpsys activity broadcasts
dumpsys activity providers
dumpsys activity permissions
dumpsys activity services
dumpsys activity recents
dumpsys activity activities
dumpsys activity processes

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

我们可以选择这几个中的一个命令进行查询。例如查看界面相关的,使用adb shell dumpsys activity activities命令。
上述几种信息类型可以用缩写来表示,即adb shell dumpsys activity a等价于adb shell dumpsys activity activities命令等。注意:providers的缩写是prov、permissions的缩写是perm

adb shell dumpsys activity | grep -i 'run'

 
 
  • 1

我这里会得到这样的输出:

  * ContentProviderRecord{978680e u0 qiushui.me.test/com.android.tools.fd.runtime.InstantRunContentProvider}
    authority=qiushui.me.test.com.android.tools.fd.runtime.InstantRunContentProvider
    Running activities (most recent first):
        Run #1: ActivityRecord{304ded1 u0 qiushui.me.test/.SecondActivity t14}
        Run #0: ActivityRecord{19b9e16 u0 qiushui.me.test/.MainActivity t14}
    Running activities (most recent first):
        Run #0: ActivityRecord{f9bafb7 u0 com.google.android.apps.nexuslauncher/.NexusLauncherActivity t13}
ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes)
    User #0: state=RUNNING_UNLOCKED

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

信息中:屏幕正在显示的界面是SecondActivity,然后是MainActivity.NexusLauncherActivity是处于最底层,就是Launcher.

  1. 屏幕截图:
adb shell screencap /sdcard/screen.png

 
 
  • 1
  1. 录制视频:
    使用screenrecord [options] filename命令来录制屏幕视频,例如:
adb shell screenrecord /sdcard/demo.mp4

 
 
  • 1

注:此命令适用于Android 4.4及以上的设备中。
录制视频也有参数选项,比如 --size 设置视频大小, --time-limit设置最大录制时长等。

六.系统命令:

上述就是关于ADB的一些基本命令介绍。


ADB用法大全:

点开链接访问具体内容:http://www.wanandroid.com/blog/show/2310


博主认为,最可靠的信息来源还是android官方网站,数据可靠最新,如果你感兴趣想了解Android官网中的ADB信息,请访问链接:https://developer.android.com/studio/command-line/adb.html
官方网站提供的文档才是最全最可靠的信息来源!!!

标签:shell,dumpsys,APP,常用命令,adb,activity,ADB,com,大全
来源: https://blog.csdn.net/kunkliu/article/details/122750757