【Android 笔记】ADB 操作命令总结(持续更新)

前言

ADB,即 Android Debug Bridge 是一种允许和已连接的 Android 设备进行通信的命令行工具,它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。可以在Android SDK/platform-tools中找到 adb 工具或下载 ADB Kits

ADB语法命令

基本语法:

bash 复制代码
 adb [-d|-e|-s <serialNumber>] <command.>
  • -d : 指定当前唯一通过 USB 连接的 Android 设备为命令目标
  • -e : 指定当前唯一运行的模拟器为命令目标
  • -s <serialNumber.> 指定相应 serialNumber 号的设备/模拟器为命令目标

如果当前有一个设备连接 ,可以省略掉[-d|-e|-s <serialNumber.>] 这一部分,直接使用 adb <command.>

常用的设备连接方式有两种:

  • 通过USB数据线将电脑和手机进行连接,Android手机将开发者选项-USB调试开关打开
  • 通过网络连接,电脑和Android设备保持在同一网段,Android设备有root权限,设备打开USB调试开关

常用语法

查看本机adb版本信息

bash 复制代码
adb version

启动/停止adb

bash 复制代码
adb start-server / adb kill-server

将设备切换到root权限下

bash 复制代码
adb root

当前已连接的设备

bash 复制代码
adb devices

1、文件管理

1.0.0 从手机设备上下载指定文件到本地计算机上

bash 复制代码
adb pull <remote> [local]

remote: 远程设备,如手机、大屏设备
local: 本机设备

例: adb pull /storage/emulated/0/Pictures/screenshot.png  
/Users/ho/Desktop/screenshot.png  

1.0.1 从本机设备文件推送到手机设备上

bash 复制代码
adb push [local]  <remote> 

例: adb push  /Users/ho/Desktop/screenshot.png  
/storage/emulated/0/Pictures/screenshot.png  
 

1.0.2 列出指定目录下内容

bash 复制代码
adb shell ls [options] <directory>

<directory>: 指定目录,不写的话获取当前目录下内容

[options] : 可选参数,可以筛选不同条件的内容

 -无  :  列出目录下所有的文件和文件夹
 -a  : 列出目录下的所有文件(包括隐藏的)
 -i  : 列出目录下的所有文件和索引编号
 -s  : 列出目录下的所有文件和文件大小
 -n  : 列出目录下的所有文件及其 UID和 GID
 -R  : 列出目录下的所有子目录中的文件

1.0.3 进入指定目录

bash 复制代码
adb shell cd  <directory>

例:adb shell cd system/   

1.0.4 删除文件或者文件夹

bash 复制代码
adb shell rm [options] <files or directory>

[options] : 可选参数,删除的一些操作

 - 无  :  删除文件
 - f  :  列出目录下所有的文件和文件夹
 - r  :  强制删除指定目录中的所有文件和子目录
 - d  :  删除指定目录,即使它是一个非空目录
 - i  :  交互式删除,删除前提示
 

1.0.5 创建目录

bash 复制代码
adb shell mkdir [options] <directory-name>

[options] : 可选参数,创建目录的一些操作

 - 无  :  创建指定目录
 - m  :  创建指定目录并赋予读写权限
 - p  :  创建指定目录及其父目录

例:adb shell mkdir -m /example/

1.0.6 创建空文件

bash 复制代码
adb shell touch <file>

例:adb shell touch example.txt

1.0.7 复制文件和目录

bash 复制代码
adb shell cp <source> <dest>

<source>:源文件目录
<dest>:目标文件目录

例:adb shell cp  /Users/ho/Desktop/screenshot.png  
 /storage/emulated/0/Pictures/

1.0.8 输出当前目录路径

bash 复制代码
adb shell pwd

例:t7_an400:/system/app $ pwd     

输出:/system/app

1.0.9 移动和重命名文件

bash 复制代码
adb shell mv [options] <source> <dest>

<source>:源文件目录
<dest>:目标文件目录

例:mv /system/app/WPS_Office/WPS_Office.apk  /data/

2、日志打印

基本语法:

bash 复制代码
adb logcat [option] [filter-specs]

如果要停止日志打印,按下ctr+c 或者commond + c

2.0.0 按级别过滤日志

bash 复制代码
adb logcat [filter-specs]

[filter-specs]: 日志过滤级别

*:V  >>  过滤只显示 Verbose 及以上级别(优先级最低)
*:D  >>  过滤只显示 Debug 及以上级别
*:I  >>  过滤只显示 Info 及以上级别
*:W  >>  过滤只显示 Warning 及以上级别
*:E  >>  过滤只显示 Error 及以上级别
*:F  >>  过滤只显示 Fatal 及以上级别
*:S  >>  过滤只显示 Silent 及以上级别(优先级最高,什么也不输出)

2.0.1 按tag和级别过滤日志

bash 复制代码
adb logcat [tag:level] [tag:level] ....

例:adb logcat MainActivity:D   App:W  *:E

表示只输出 tag MainActivity 的 Debug 以上级别日志,输出 tag App 的 Warning 以上级别日志,及其它 tag 的 Error 级别日志。

2.0.2 清空已存在的日志

bash 复制代码
adb logcat -c

2.0.3 将日志显示在控制台

bash 复制代码
adb logcat -d

2.0.4 将日志输出到文件

bash 复制代码
adb logcat > file_path

例:adb logcat > /Users/ho/Desktop/

2.0.5 打印指定日志缓冲区的大小

bash 复制代码
adb logcat -G 100M

2.0.6 过滤指定tag的日志

bash 复制代码
adb logcat grep | tag

例:adb logcat grep | PowerKeyReceiver

3、查看Android系统信息

3.0.0 查看指定属性值

bash 复制代码
adb shell getprop [options]

例:adb shell getprop persist.sys.swipeleft

3.0.1 设置属性值

bash 复制代码
adb shell setprop [options] [value]

例:adb shell setprop persist.sys.swipeleft 1

3.0.2 查看系统信息

bash 复制代码
adb shell dumpsys [options]

# 列出最近使用过的activity栈,按时间从近到远排序
adb shell dumpsys activity
# 查看Activity的相关信息
adb shell dumpsys activity [包名]
# 查看最上层的activity的View布局
adb shell dumpsys activity top


例:adb shell dumpsys activity top | grep ACTIVITY
  ACTIVITY com.vst.xnlauncher/.newui.MainNewActivity 2c1ad75 pid=1177
  ACTIVITY org.qtproject.example.WriteBoard/org.qtproject.qt.android.bindings.QtActivity

3.0.3 修改设备分辨率

bash 复制代码
adb shell wm size 1920x1080

3.0.4 查看设备分辨率

bash 复制代码
adb shell wm size

Physical size: 3840x2160
Override size: 1920x1080

Physical size: 设备原先的分辨率
Override size: 当前修改后的分辨率

3.0.5 修改设备屏幕密度

bash 复制代码
adb shell wm density 160

3.0.6 查看设备屏幕密度

bash 复制代码
adb shell wm density

Physical density: 480
Override density: 160

3.0.7 查看设备显示屏参数

bash 复制代码
adb shell dumpsys window displays

3.0.8 查看android_id

bash 复制代码
adb shell settings get secure  android_id
73f34d0eef311581

3.0.9 查看系统版本

bash 复制代码
adb shell getprop ro.build.version.release
11

3.1.0 查看mac地址

bash 复制代码
adb shell cat /sys/class/net/eth0/address
40:e7:93:2e:17:76 

3.1.1 查看设备cpu信息

bash 复制代码
adb shell cat /proc/cpuinfo

processor	: 0
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd09
CPU revision	: 2
.....

3.1.2 查看设备内存信息

bash 复制代码
adb shell cat /proc/meminfo

MemTotal:        8143476 kB
MemFree:         4668636 kB
MemAvailable:    6485660 kB
Buffers:           27684 kB
Cached:          1457424 kB
SwapCached:            0 kB
Active:          1101668 kB
Inactive:        1039864 kB
.....

3.1.3 查看硬件信息

bash 复制代码
adb shell cat /system/build.prop

ro.build.id=RQ3A.210805.001.A1
ro.build.display.id=vst_newline_q-series
ro.build.version.incremental=eng.chenwe.20231117.154040
ro.build.version.sdk=30
ro.build.version.preview_sdk=0
ro.build.version.preview_sdk_fingerprint=REL
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=11
ro.build.version.release_or_codename=11
ro.build.version.security_patch=2021-08-05
.....

4、应用管理

基本语法:

bash 复制代码
adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] 
[--user USER_ID] [FILTER]

 -无  :  列出系统中所有的apk包名
 -f  : 列出apk包名和所对应的路径
 -d  : 只显示disabled应用
 -e  : 只显示enable应用
 -s :  只显示系统应用
 -3 :  只显示3方应用
 -i :  显示应用的 installer
 -u :  包含已卸载应用

4.0.0 显示系统中所有应用

bash 复制代码
adb shell pm list packages

package:com.google.android.carriersetup
package:com.android.cts.priv.ctsshim
package:com.google.android.ext.services
.....

4.0.1 显示系统中所有应用

bash 复制代码
adb shell pm list packages -f

package:/system/priv-app/CarrierSetup/CarrierSetup.apk=com.google.android.carriersetup
package:/system/priv-app/CtsShimPrivPrebuilt/CtsShimPrivPrebuilt.apk=com.android.cts.priv.ctsshim
package:/system/priv-app/GoogleExtServices/GoogleExtServices.apk=com.google.android.ext.services

.....

4.0.2 显示系统应用

bash 复制代码
adb shell pm list packages -s

package:com.google.android.carriersetup
package:com.android.cts.priv.ctsshim
package:com.google.android.ext.services
package:com.google.android.katniss
.....

4.0.3 显示三方应用

bash 复制代码
adb shell pm list packages -3

package:com.finalwire.aida64
package:org.qtproject.example.WriteBoard

.....

4.0.4 显示应用的installer

bash 复制代码
adb shell pm list packages -3

package:com.google.android.carriersetup  installer=null
package:com.android.cts.priv.ctsshim  installer=null
package:com.google.android.ext.services  installer=null
package:com.google.android.katniss  installer=null

.....

4.0.4 包含已显示卸载应用

bash 复制代码
adb shell pm list packages -u

package:com.google.android.carriersetup
package:com.android.cts.priv.ctsshim
package:com.google.android.ext.services
package:com.google.android.katniss

.....

4.0.5 安装apk

bash 复制代码
 adb install /Users/ho/Desktop/AIDA64.apk 

4.0.6 卸载apk

bash 复制代码
adb uninstall [-k] <package-name>

<package-name> 表示应用的包名,[-k]参数可选,表示卸载应用但保留数据和缓存目录。

例:adb uninstall com.finalwire.aida64

4.0.7 清除应用数据与缓存

bash 复制代码
adb shell pm clear <package-name>

例:adb shell pm clear com.finalwire.aida64

4.0.8 查看前台 activity

bash 复制代码
adb shell dumpsys activity top | grep ACTIVITY

ACTIVITY com.finalwire.aida64/.HHMainActivity e968545 pid=8302
ACTIVITY com.ho.launcher/.app.MoreAppsActivity d67d300 pid=1137
ACTIVITY com.ho.setting/.MainActivity 4b2d6ad pid=14017
.....

4.0.9 查看正在运行的service

bash 复制代码
adb shell dumpsys activity services

ACTIVITY MANAGER SERVICES (dumpsys activity services)
  User 0 active services:
  * ServiceRecord{a6742d3 u0 com.android.toofifi/com.mphotool.ball.service.PullPlayPermissionService}
    intent={cmp=com.android.toofifi/com.mphotool.ball.service.PullPlayPermissionService}
    packageName=com.android.toofifi
    processName=com.android.toofifi
    baseDir=/system/app/Toofifi/Toofifi.apk
    dataDir=/data/user/0/com.android.toofifi
    app=ProcessRecord{f554e88 3684:com.android.toofifi/1000}
    allowWhileInUsePermissionInFgs=true
    recentCallingPackage=com.android.toofifi
    createTime=-50m55s508ms startingBgTimeout=-50m40s507ms
    lastActivity=-50m55s507ms restartTime=-50m55s507ms createdFromFg=false
    startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1

4.1.0 查看应用的详细信息

bash 复制代码
adb shell dumpsys package <package-name>

持续更新...

相关推荐
Dingdangr3 小时前
Android中的Intent的作用
android
技术无疆3 小时前
快速开发与维护:探索 AndroidAnnotations
android·java·android studio·android-studio·androidx·代码注入
GEEKVIP3 小时前
Android 恢复挑战和解决方案:如何从 Android 设备恢复删除的文件
android·笔记·安全·macos·智能手机·电脑·笔记本电脑
Jouzzy10 小时前
【Android安全】Ubuntu 16.04安装GDB和GEF
android·ubuntu·gdb
极客先躯11 小时前
java和kotlin 可以同时运行吗
android·java·开发语言·kotlin·同时运行
Good_tea_h13 小时前
Android中的单例模式
android·单例模式
计算机源码社18 小时前
分享一个基于微信小程序的居家养老服务小程序 养老服务预约安卓app uniapp(源码、调试、LW、开题、PPT)
android·微信小程序·uni-app·毕业设计项目·毕业设计源码·计算机课程设计·计算机毕业设计开题
丶白泽19 小时前
重修设计模式-结构型-门面模式
android
晨春计20 小时前
【git】
android·linux·git
标标大人21 小时前
c语言中的局部跳转以及全局跳转
android·c语言·开发语言