ADB调试命令大全

目录


前言

记录下adb命令,方便使用的时候查找

命令大全

1.显示当前运行的全部模拟器:adb devices

java 复制代码
adb devices
List of devices attached
?       device

2.启动ADB: adb start-server

3.停止ADB: adb kill-server

4.安装应用程序: adb install -r [apk文件]

java 复制代码
-l 锁定该程序
-r 重新安装该程序,保存数据
-s 安装在SD卡内,而不是设备内部存储

例:adb install --r D:\mm.apk

5.卸载应用程序: adb uninstall [packagename]

java 复制代码
adb uninstall com.tencent.mm

-k 不删除程序运行所产生的数据和缓存目录(如软件的数据库文件)

例:

java 复制代码
adb uninstall -k com.tencent.mm

6.将手机设备中的文件copy到本地计算机:

adb pull 设备目录 本地目录

例:adb pull /sdcard/mm.txt D:(讲内存卡根目录的txt文件copy到D盘根目录)

7.将本地计算机的文件copy到手机设备中

adb push 本地目录 手机设备目录例:adb push D:\mm.txt /sdcard

8.查看adb命令帮助信息:adb help

9.截屏 adb shell screencap -p

-p 截图文件路径

例:

java 复制代码
 # screencap -p > /sdcard/screen.png
trinket:/ # cd sdcard/
trinket:/sdcard # ls
01.png Android Documents High_Load Music         Pictures Ringtones mmi
Alarms DCIM    Download  Movies    Notifications Podcasts dlt       screen.png

10.查看指定包名应用的数据库储存信息(包括储存的SQL语句)

adb shell dumpsys dbinfo[packagename]

11.查看指定的进程或则进程id的内存信息

adb shell dumpsys meminfo[packagename/pid]可以查看进程当前的内存情况

例:adb shell dumpsys meminfo com.tencent.mm

12.查看指定包名应用的详细信息(相当于AndroidMainfest.xml中内容)

dumpsys package [packagename]

例:

java 复制代码
dumpsys package com.example.hxplay
Activity Resolver Table:
  Non-Data Actions:
      android.intent.action.MAIN:
        478325c com.example.hxplay/.activity.SplashActivity filter 30ad291
          Action: "android.intent.action.MAIN"
          Category: "android.intent.category.LAUNCHER"

Key Set Manager:
  [com.example.hxplay]
      Signing KeySets: 6

Packages:
  Package [com.example.hxplay] (77b6418):
    userId=10162
    pkg=Package{a991e71 com.example.hxplay}
    codePath=/data/app/com.example.hxplay-qlCcki9YU3ev55oxihKtjQ==
    resourcePath=/data/app/com.example.hxplay-qlCcki9YU3ev55oxihKtjQ==
    legacyNativeLibraryDir=/data/app/com.example.hxplay-qlCcki9YU3ev55oxihKtjQ==/lib
    primaryCpuAbi=null
    secondaryCpuAbi=null
    versionCode=1 minSdk=22 targetSdk=30
    versionName=1.0
    splits=[base]
    apkSigningVersion=2
    applicationInfo=ApplicationInfo{6de9456 com.example.hxplay}
    flags=[ DEBUGGABLE HAS_CODE ALLOW_CLEAR_USER_DATA TEST_ONLY ALLOW_BACKUP ]
    privateFlags=[ PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION ALLOW_AUDIO_PLAYBACK_CAPTURE ]
    dataDir=/data/user/0/com.example.hxplay
    supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
    timeStamp=2024-06-14 11:41:48
    firstInstallTime=2024-05-30 09:25:32
    lastUpdateTime=2024-06-14 11:41:48
    signatures=PackageSignatures{e7b8cd7 version:2, signatures:[7d5302f9], past signatures:[]}
    installPermissionsFixed=true
    pkgFlags=[ DEBUGGABLE HAS_CODE ALLOW_CLEAR_USER_DATA TEST_ONLY ALLOW_BACKUP ]
    requested permissions:
      android.permission.INTERNET
      android.permission.WRITE_EXTERNAL_STORAGE: restricted=true
      android.permission.READ_EXTERNAL_STORAGE: restricted=true
      android.permission.MOUNT_UNMOUNT_FILESYSTEMS
      android.permission.ACCESS_NETWORK_STATE
      android.permission.ACCESS_FINE_LOCATION
      android.permission.CHANGE_WIFI_STATE
      android.permission.VIBRATE
      android.permission.WAKE_LOCK
      android.permission.SYSTEM_ALERT_WINDOW
      android.permission.ACCESS_COARSE_LOCATION
    install permissions:
      android.permission.INTERNET: granted=true
      android.permission.CHANGE_WIFI_STATE: granted=true
      android.permission.ACCESS_NETWORK_STATE: granted=true
      android.permission.VIBRATE: granted=true
      android.permission.WAKE_LOCK: granted=true
    User 0: ceDataInode=5999 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false virtual=false
      gids=[3003]
      runtime permissions:
        android.permission.ACCESS_FINE_LOCATION: granted=false, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
        android.permission.READ_EXTERNAL_STORAGE: granted=true, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED|RESTRICTION_INSTALLER_EXEMPT]
        android.permission.ACCESS_COARSE_LOCATION: granted=false, flags=[ REVOKE_WHEN_REQUESTED|USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
        android.permission.WRITE_EXTERNAL_STORAGE: granted=true, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED|RESTRICTION_INSTALLER_EXEMPT]
isSystemUserPackagesBlacklistSupported: false

Package Changes:
  Sequence number=65
  User 0:
    seq=50, package=com.example.hxplay
    seq=51, package=me.liujia95.biliplayer
    seq=63, package=com.henry.basic
    seq=64, package=com.quectel.cardiagnosis


Dexopt state:
  [com.example.hxplay]
    path: /data/app/com.example.hxplay-qlCcki9YU3ev55oxihKtjQ==/base.apk
      arm64: [status=quicken] [reason=bg-dexopt]


Compiler stats:
  [com.example.hxplay]
     base.apk - 3032

Active APEX packages:


Inactive APEX packages:


Factory APEX packages:


  APEX session state:

13.查看当前应用的activity信息

adb shell dumpsys activity top

14.查看bug报告:adb bugreport

java 复制代码
adb bugreport
/data/user_de/0/com.android.shell/files/bugreports/bugrepo...ile pulled, 0 skipped. 59.2 MB/s (5367286 bytes in 0.087s)
Bug report copied to C:\Users\henry.xue\bugreport-trinket-QKQ1.200816.002-2024-06-15-16-10-59.zip

15.列出手机装的所有apk包名

adb shell pm list packages

系统应用:adb shell pm list packages -s

第三方应用:adb shell pm list packages -3

使用grep过滤 :adb shell pm list packages | grep tencent

16.清除应用缓存信息:

adb shell pm clear [packagename]

17.通过adb启动应用程序页面

adb shell am start -n[包名+activity名]

例:

java 复制代码
adb shell am start -n com.tencent.mm/.ui.SplashAcitvity

强制停止应用有些时候应用卡死了,需要强制停止,则执行以下命令:

java 复制代码
adb shell am force-stop // 如:adb shell am force-stop cn.androidstar.demo

18、记录无线通讯日志

一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:

java 复制代码
adb shell logcat -b radio

19、获取设备的ID和序列号:

获取设备的 ID(设备号):adb devices -l

获取设备的序列号(Serial Number):adb shell getprop ro.serialno

java 复制代码
adb devices -l
List of devices attached
GCQ5T18B06028271       device product:EVR-AL00 model:EVR_AL00 device:HWEVR transport_id:4
adb shell getprop ro.serialno
GCQ5T18B06028271

20.导出设备信息

adb get-serialno > 序列号.txt

adb shell cat /sys/class/net/wlan0/address > MAC地址.txt

adb shell getprop ro.product.model > 设备型号.txt

adb shell getprop ro.build.version.release> 系统版本.txt

adb shell pm list packages -s > 系统应用的所有包名.txt

adb shell pm list packages -3 > 第三方应用包名.txt

adb shell wm size > 屏幕分辨率.txt

adb shell wm density > 屏幕密度.txt

adb shell cat /proc/cpuinfo > CPU信息.txt

adb shell pm list permissions -f > 权限.txt

adb shell pm list users -f > 用户.txt

21.重启adb reboot

22.备份adb backup

-f \] \[-apk\|-noapk\]\[-shared\|-noshared\] \[-all\] \[-system\|nosystem\] \[

例:

java 复制代码
adb backup -f mm.ab -noapk -noshared -nosystemcom.tencent.mm

可以使用的最基本的命令是很简单的 adb backup -all 它将使用默认方式备份应用和设备的数据(不包含apk)到当前目录下并保存为文件backup.ab

这个命令有可能不对每个设置都有效,如果出现像这种 "adb: cannot open file ./backup.ab"的错误,使用 adb backup -all -fC:\backup.ab来代替,其中路径C:\可根据喜好替换 对各个参数的解释: -f 用这个来选择备份文件存储在哪里,

例如-f /backup/mybackup.ab将会使文件存储在根磁盘(Windows的C盘等等)下一个名为backup的文件夹里,并且备份文件名为mybackup.ab -apk|-noapk 这个决定是否在备份里包含apk或者仅仅只备份应用数据,个人推荐使用-apk以免有的应用在应用市场找不到,如果不使用则默认的是-noapk -shared|-noshared 这个参数用于决定是否备份设备共享的SD card内容,默认是-noshare,主要包括内部存储中的音乐、图片和视频,因此为保险起见,建议加上-share -all 这个参数是一种简单地表达"所有应用"的说法,package参数可以选择备份单独的应用,如果不是备份某个应用,使用-all备份整个系统 -system|-nosystem 这个参数决定-all标签是否包含系统应用,默认的是-system,根据情况可选择是否用-nosystem

相关推荐
深念Y5 小时前
中兴微随身WiFi 板号UZ901_v1.6 影腾Y1新版本 增加SIM卡槽 开启ADB 去云控 改串号教程 下
数据库·adb
yantaohk5 小时前
【2025亲测】中兴B860AV3.2M完美刷机包ATV版本安卓9-解决1G运存BUG,开ADB已ROOT
android·嵌入式硬件·adb·云计算
远方之巅5 小时前
ADB调试工具与GLM-4.6V-Flash-WEB移动端集成实战
adb· glm-4.6v-flash-web· 多模态模型
爱技术的小伙子9 小时前
【 Docker 快速部署 MySQL 8.0(2026最新实践)—— 一键启动 + 数据持久化 + 常见优化】
mysql·adb·docker
橘子1310 小时前
MySQL表的内外连接(九)
数据库·mysql·adb
betazhou1 天前
mysql备份脚本
android·mysql·adb·数据库备份
卿着飞翔1 天前
ubuntu上的mysql远程连不上root
mysql·ubuntu·adb
小句2 天前
MySQL慢查询日志详细使用指南
数据库·mysql·adb
L1624762 天前
KeepAlived 搭建 MySQL 双主模式高可用集群(详细安装配置教程)
数据库·mysql·adb
L1624762 天前
基于 Xenon 实现 MySQL 高可用集群(完整配置教程,含监控告警 + 定时备份)
android·mysql·adb