当前位置:   article > 正文

Adb常用命令_adb命令

adb命令
11 列出当前连接的Android设备信息
adb devices # 获取当前连接的Android设备
adb -s <device_serial_number> shell #连接某个特定的Android设备
adb shell getprop  # 查看android设备的参数信息
adb shell cat /proc/cpuinfo # 查看CPU架构信息
adb shell getprop ro.build.version.release # 查看系统Android版本信息
adb shell getprop ro.build.version.sdk # 查看系统API版本信息
adb shell df # 获取手机磁盘空间
adb shell dumpsys procstats # 获取当前内存使用信息
adb shell dumpsys gfxinfo # 获取当前的制图状态
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
12 获取设备root权限,修改设备磁盘权限
adb root # 获取root权限
adb remount # 挂载系统文件系统为可读写状态,显示**remount succeeded**就代表命令执行成功;
  • 1
  • 2
21 安装apk文件
adb install <软件名> # 这个命令将指定的apk文件安装到设备上
adb install -r <软件名> # 替换已存在的应用程序,也就是说强制安装
adb install -l <软件名> # 锁定该应用程序
adb install -t <软件名> # 允许测试包
adb install -s <软件名> # 把应用程序安装到sd卡上
adb install -d <软件名> # 允许进行将见状,也就是安装的比手机上带的版本低
adb install -g <软件名> # 为应用程序授予所有运行时的权限
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
22 获取安装的应用包名信息
adb shell pm list package # 列出所有的应用的包名
adb shell pm list package -s # 列出系统应用
adb shell pm list package -3 # 列出第三方应用
adb shell pm list package -f # 列出项目包名及对应的apk名及存放位置
adb shell pm list package -i # 列出应用包名及其安装来源
adb shell pm path com.ztf.coaster # 列出对应包名的apk位置
adb shell pm dump com.ztf.coaster # 列出应用的转储信息
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
23 卸载apk文件
adb uninstall <软件名> # 卸载软件
adb uninstall -k <软件名> # 卸载软件 但是保留配置和缓存文件
adb shell pm uninstall --user 0  包名 # 如果adb uninstall没有用,可以使用这个,表示删除用户空间0的应用。这跟卸载普通应用是同个方式
  • 1
  • 2
  • 3
31 进程操作
 adb shell ps -A //显示当前正在运行的所有进程信息
 adb shell ps -A   | grep ** # 使用正则进行过滤
 adb shell kill 进程号 //结束某个进程
adb shell am force-stop 包名 //结束包名对应的进程,Android10以后的版本才可以
  • 1
  • 2
  • 3
  • 4
32 dumpsys 获取系统各个服务的信息
adb shell dumpsys activity //获取当前Activity的所有栈信息
adb shell dumpsys activity | grep ResumedActivity: #获取显示当前正在显示的Activity组件名称
adb shell  dumpsys activity activities //只获取当前Activity显示层级的栈信息

adb shell dumpsys window //获取当前窗口的所有栈信息
adb shell dumpsys window |grep mFocusedApp  //获取显示当前获取焦点的Window组件名称
adb shell dumpsys window windows //只获取当前窗口显示层级的栈信息

adb shell dumpsys package //获取系统中所有应用的包信息
adb shell dumpsys package 包名 //获取特定包名的包信息
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
33 Activity操作
adb shell am start 包名/.Activity (要启动的Activity) # 启动app
adb shell am start -W -n 包名/.Activity # 启动app
adb shell am start -a android.intent.action.MAIN -n --ei pid 10 --es str "helloworld"​​ # 传递key为pid数值为i整数类型0, 和key为str数值为字符串类型helloworld
adb shell am force-stop 包名 # 关闭app
adb shell pm clear 包名 #关闭app
  • 1
  • 2
  • 3
  • 4
  • 5
34 服务操作
adb shell am startservice -n{包(package)名}/{包名}.{服务(service)名称}
adb shell am startservice -n com.android.traffic/com.android.traffic.maniservice
adb shell am start-foreground-service -n com.demo.screenrecorder/com.demo.screenrecorder.RecordService
  • 1
  • 2
  • 3
35 广播操作
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED # 发送系统启动完毕广播
adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED # 发送外部SD卡挂载广播
adb shell am broadcast -a android.intent.action.MEDIA_UNMOUNTED # 发送外部SD卡拔出广播
adb shell am broadcast -a car.meter.share.BROADCAST # 自定义录制视频广播 
adb shell am broadcast -a com.leapmotor.share.reload.BROADCAST # 自定义途记分享广播

adb shell am broadcast -a com.android.test --es test_string "this is test string" --ei test_int 100 --ez test_boolean true
# --es 表示使用字符串类型参数  --ei 表示int类型参数  --ez 表示boolean类型参数  第一个为key,第二个为value
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

执行结果如下,则表示广播发送成功:

Broadcasting: Intent { act=android.intent.action.BOOT_COMPLETED }
Broadcast completed: result=0

41 获取设备屏幕分辨率
adb shell wm help # 可查看所有可用的wm指令
adb shell wm size # 获取当前分辨率
adb shell wm density # 获取当前像素密度(dpi)
adb shell wm size 720*1080 #将分辨率修改为720*1080
adb shell wm density 240 # 将dpi修改为240
adb shell wm size reset # 重置分辨率
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
42 抓取日志信息
adb logcat # 打印android的系统日志,使用ctrl+c 可停止打印
adb shell "logcat >/sdcard/log000.log"  #把日志信息保存到sd卡根目录的log000.log目录
adb logcat | grep -E "^..MyApp\|^..MyActivity" # 使用 grep 配合正则表达式进行过滤,只显示需要的输出(白名单)
adb logcat | grep -vE "^..MyApp\|^..MyActivity" # 使用 grep 配合正则表达式进行过滤,过滤不需要的输出(黑名单)
adb logcat -c && adb logcat # logcat 有缓存,如果仅需要查看当前开始的 log,需要清空之前的缓存
cat myapp.log | grep -E "^..MyApp|^..MyActivity" > newmyapp.log # 例如 log 文件为 myapp.log,要匹配 tag 为 MyApp 和 MyActivity 的输出,然后输出到 newmyapp.log

adb logcat <tag>[:priority] tag表示标签,priority输出的级别
V —— Verbose(最低,输出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不输出)

日志默认级别是V,如果错误日志我们选择E就可以。
//格式1:打印默认日志数据
adb logcat
//格式2:需要打印日志详细时间的简单数据
adb logcat -v time
//格式3:需要打印级别为Error的信息
adb logcat *:E
//格式4:需要打印时间和级别是Error的信息
adb logcat -v time *:E
//格式5:将日志保存到电脑固定的位置,比如D:\log.txt
adb logcat -v time >D:\log.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
43 屏幕操作
adb shell screencap -p /sdcard/screen.jpg #对屏幕进行截屏
adb shell screenrecord sdcard/record.mp4 #对屏幕进行录像
  • 1
  • 2
44 文件拷贝
adb push <本地路径> <远程路径> # 从电脑上发送文件到设备 【adb push media /sdcard/ 把media文件夹整个拷贝到sd卡根目录】
adb pull <远程路径> <本地路径> # 从设备下载文件到电脑 【adb pull /system/media D:/ 把设备中的media目录整个拷贝到D盘】
  • 1
  • 2
45 获取设备中数据库字段信息
adb shell settings list global  #global数据库,所有用户共用
adb shell settings list settings #settings数据库,区分用户
  • 1
  • 2

PM常用指令

pm即package manager,使用pm命令可以去模拟android行为或者查询设备上的应用信息等

命令功能实现方法
dumpdump信息AM.dumpPackageStateStatic
clear清空App数据AMS.clearApplicationUserData
uninstall [options]卸载应用IPackageInstaller.uninstall
force-dex-optdex优化PMS.forceDexOpt
trim-caches <目标size>紧缩cache目标大小PMS.freeStorageAndNotify
list packages列举app包信息PMS.getInstalledPackages
get-install-location获取安装位置PMS.getInstallLocation
path查看App路径PMS.getPackageInfo
install [options]安装应用PMS.installPackageAsUser
hide隐藏应用PMS.setApplicationHiddenSettingAsUser
unhide显示应用PMS.setApplicationHiddenSettingAsUser
enable <包名或组件名>激活包名或组件PMS.setEnabledSetting
disable <包名或组件名>禁用包名或组件PMS.setEnabledSetting
set-install-location设置安装位置PMS.setInstallLocation
get-max-users最大用户数UserManager.getMaxSupportedUsers
55 调试Android系统
adb shell setprop debug.layout true # 显示UI边界
adb shell setprop debug.hwui.overdraw show # 开启调试 GPU 过度绘制
adb shell setprop debug.hwui.overdraw false # 关闭调试 GPU 过度绘制
adb shell dumpsys package queryies # 查看设备中能直接访问的App
  • 1
  • 2
  • 3
  • 4
61 查询数据库
msm8953_64:/data/system # sqlite3 locksettings.db  # 打开数据库,获取数据库版本信息
SQLite version 3.9.2 2017-07-21 07:45:23 # 数据库版本信息
Enter ".help" for usage hints.
sqlite> .tables # 显示所有的表信息
android_metadata  locksettings
.mode column #列对齐命令
.header on #打开表头显示
sqlite> select * from locksettings; # 查询整个表的信息
1|lockscreen.disabled|0|1
2|migrated|0|true
3|migrated_user_specific|0|true
4|lockscreen.password_type_alternate|0|0
5|migrated_biometric_weak|0|true
6|migrated_lockscreen_disabled|0|true
7|lockscreen.enabledtrustagents|0|
8|lockscreen.password_salt|0|-970902998671653081
9|lockscreen.password_type|0|262144
10|lockscreen.profilechallenge|0|1
11|lockscreen.passwordhistory|0|
sqlite>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
62 查看网络信息
adb shell ping -c 4 ww.baidu.com # 测试两个网络间的连接和延迟
adb shell netstat # 网络统计,用来查看网络当前状态。
tcpdump -p -vv -s 0 -w /data/data/capture.pcap # 网络抓包,将tcpdump文件push进设备(shell下)
tcpdump -i any -s 0 -w /data/data/capture.pcap # 网络抓包,将tcpdump文件push进设备(shell下)
  • 1
  • 2
  • 3
  • 4
100 监听手机事件
adb shell getevent
  • 1

点击事件
其中以003 0035003 0036 开头的两条数据0x170和0x38E就是我们需要的x和y坐标了

101 模拟点击
# 模拟点击[x,y]坐标
adb shell input mouse tap x y
  • 1
  • 2
102 模拟滑动和模拟长按
# 从(x1,y1)滑动到(x2,y2)
adb shell input swipe x1 y1 x2 y2 
  • 1
  • 2
# 因为没有专门模拟长按的动作,所以我们使用滑动来模拟长按
# 滑动初始位置与结束位置一致,且时间设置为500毫秒
adb shell input swipe 300 300 300 300 500
  • 1
  • 2
  • 3
103 模拟输入
# 输入‘string’
adb shell input text 'string'
  • 1
  • 2

:需要先定位到对应的输入框,才可输入成功

104 模拟按键
# 模拟back 按键
adb shell input keyevent  4
  • 1
  • 2

这里给出一个常用的keyevent code:

按键按键Code码描述
KEYCODE_UNKNOWN0
KEYCODE_SOFT_LEFT1
KEYCODE_SOFT_RIGHT2
KEYCODE_HOME3home键
KEYCODE_BACK4back键
KEYCODE_CALL5
KEYCODE_ENDCALL6
KEYCODE_07
KEYCODE_18
KEYCODE_29
KEYCODE_310
KEYCODE_411
KEYCODE_512
KEYCODE_613
KEYCODE_714
KEYCODE_815
KEYCODE_916
KEYCODE_STAR17
KEYCODE_POUND18
KEYCODE_DPAD_UP19
KEYCODE_DPAD_DOWN20
KEYCODE_DPAD_LEFT21
KEYCODE_DPAD_RIGHT22
KEYCODE_DPAD_CENTER23
KEYCODE_VOLUME_UP24
KEYCODE_VOLUME_DOWN25
KEYCODE_POWER26电源键
KEYCODE_CAMERA27
KEYCODE_CLEAR28
KEYCODE_A29
KEYCODE_B30
KEYCODE_C31
KEYCODE_D32
KEYCODE_E33
KEYCODE_F34
KEYCODE_G35
KEYCODE_H36
KEYCODE_I37
KEYCODE_J38
KEYCODE_K39
KEYCODE_L40
KEYCODE_M41
KEYCODE_N42
KEYCODE_O43
KEYCODE_P44
KEYCODE_Q45
KEYCODE_R46
KEYCODE_S47
KEYCODE_T48
KEYCODE_U49
KEYCODE_V50
KEYCODE_W51
KEYCODE_X52
KEYCODE_Y53
KEYCODE_Z54
KEYCODE_COMMA55
KEYCODE_PERIOD56
KEYCODE_ALT_LEFT57
KEYCODE_ALT_RIGHT58
KEYCODE_SHIFT_LEFT59
KEYCODE_SHIFT_RIGHT60
KEYCODE_TAB61
KEYCODE_SPACE62
KEYCODE_SYM63
KEYCODE_EXPLORER64
KEYCODE_ENVELOPE65
KEYCODE_ENTER66
KEYCODE_DEL67
KEYCODE_GRAVE68
KEYCODE_MINUS69
KEYCODE_EQUALS70
KEYCODE_LEFT_BRACKET71
KEYCODE_RIGHT_BRACKET72
KEYCODE_BACKSLASH73
KEYCODE_SEMICOLON74
KEYCODE_APOSTROPHE75
KEYCODE_SLASH76
KEYCODE_AT77
KEYCODE_NUM78
KEYCODE_HEADSETHOOK79
KEYCODE_FOCUS80Camera*focus
KEYCODE_PLUS81
KEYCODE_MENU82
KEYCODE_NOTIFICATION83
KEYCODE_SEARCH84
KEYCODE_MEDIA_PLAY_PAUSE85
KEYCODE_MEDIA_STOP86
KEYCODE_MEDIA_NEXT87
KEYCODE_MEDIA_PREVIOUS88
KEYCODE_MEDIA_REWIND89
KEYCODE_MEDIA_FAST_FORWARD90
KEYCODE_MUTE91
105 adb shell input
Usage: input [<source>] <command> [<arg>...]

The sources are:
      dpad
      keyboard
      mouse
      touchpad
      gamepad
      touchnavigation
      joystick
      touchscreen
      stylus
      trackball

The commands and default sources are:
      text <string> (Default: touchscreen)
      keyevent [--longpress] <key code number or name> ... (Default: keyboard)
      tap <x> <y> (Default: touchscreen)
      swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
      draganddrop <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
      press (Default: trackball)
      roll <dx> <dy> (Default: trackball)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号