目录
- 前言
- 命令大全
-
- [1.显示当前运行的全部模拟器:adb devices](#1.显示当前运行的全部模拟器:adb devices)
- [2.启动ADB: adb start-server](#2.启动ADB: adb start-server)
- [3.停止ADB: adb kill-server](#3.停止ADB: adb kill-server)
- [4.安装应用程序: adb install -r [apk文件]](#4.安装应用程序: adb install -r [apk文件])
- [5.卸载应用程序: adb uninstall [packagename]](#5.卸载应用程序: adb uninstall [packagename])
- 6.将手机设备中的文件copy到本地计算机:
- 7.将本地计算机的文件copy到手机设备中
- [8.查看adb命令帮助信息:adb help](#8.查看adb命令帮助信息:adb help)
- [9.截屏 adb shell screencap -p](#9.截屏 adb shell screencap -p)
- 10.查看指定包名应用的数据库储存信息(包括储存的SQL语句)
- 11.查看指定的进程或则进程id的内存信息
- 12.查看指定包名应用的详细信息(相当于AndroidMainfest.xml中内容)
- 13.查看当前应用的activity信息
- [14.查看bug报告:adb bugreport](#14.查看bug报告:adb bugreport)
- 15.列出手机装的所有apk包名
- 16.清除应用缓存信息:
- 17.通过adb启动应用程序页面
- 18、记录无线通讯日志
- 19、获取设备的ID和序列号:
- 20.导出设备信息
- [21.重启adb reboot](#21.重启adb reboot)
- [22.备份adb backup](#22.备份adb backup)
前言
记录下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