【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>

持续更新...

相关推荐
zhangphil5 分钟前
Android简洁缩放Matrix实现图像马赛克,Kotlin
android·kotlin
m0_512744646 分钟前
极客大挑战2024-web-wp(详细)
android·前端
lw向北.22 分钟前
Qt For Android之环境搭建(Qt 5.12.11 Qt下载SDK的处理方案)
android·开发语言·qt
不爱学习的啊Biao31 分钟前
【13】MySQL如何选择合适的索引?
android·数据库·mysql
Clockwiseee1 小时前
PHP伪协议总结
android·开发语言·php
mmsx7 小时前
android sqlite 数据库简单封装示例(java)
android·java·数据库
众拾达人10 小时前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言
吃着火锅x唱着歌11 小时前
PHP7内核剖析 学习笔记 第四章 内存管理(1)
android·笔记·学习
_Shirley13 小时前
鸿蒙设置app更新跳转华为市场
android·华为·kotlin·harmonyos·鸿蒙
hedalei14 小时前
RK3576 Android14编译OTA包提示java.lang.UnsupportedClassVersionError问题
android·android14·rk3576