adb 控制手机开关/获取手机状态常用命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了adb 控制手机开关/获取手机状态常用命令相关的知识,希望对你有一定的参考价值。
参考技术A 以下命令部分是需要有root权限的1. 获取手机中执行Monkey的进程号 :
adb shell pgrep commands.monkey
2. 查看前台显示的Activity:
adb shell dumpsys window | grep mCurrentFocus
3. 获取手机的分辨率:
adb shell wm size
4.飞行模式开:
adb shell settings put global airplane_mode_on 1
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
5. 飞行模式关:
adb shell settings put global airplane_mode_on 0
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false
6. 设置灭屏时间(单位毫秒):
adb shell settings put system screen_off_timeout 30000
7. 自动亮度关:
adb shell settings put system screen_brightness_mode 0
8. 方向锁定开:
adb shell settings put system accelerometer_rotation 0
9. 方向锁定关:
adb shell settings put system accelerometer_rotation 1
10. WIFI开:
adb shell svc wifi enable
11. WIFI关
adb shell svc wifi disable
12. NFC开
adb shell svc nfc enable
13. NFC关
adb shell svc nfc disable
14. BT开
adb shell service call bluetooth_manager 6
15. BT关
adb shell service call bluetooth_manager 8 i32 1
16. 关闭GPS(回到低耗电量):
adb shell "settings put secure location_providers_allowed -gps"
17. 开启GPS(回到高精确度):
adb shell "settings put secure location_providers_allowed +gps"
18. 拨打电话
adb shell am start -a android.intent.action.CALL -d tel:10086
19. 清除batterystatus:
adb shell dumpsys batterystats --reset
20. 获取机器开机时长
adb shell cat /proc/uptime
21. 获取当前手机的电量百分比:
adb shell cat /sys/class/power_supply/battery/capacity
22. 获取当前手机的电池容量大小:
adb shell cat /sys/class/power_supply/bms/charge_full_design
23. 获取实时电池端输出的电流:
adb shell cat /sys/class/power_supply/battery/current_now
24. 获取实时电池端的输出电压:
adb shell cat /sys/class/power_supply/battery/voltage_now
25. 获取当前wake_lock:
adb shell cat /sys/power/wake_lock
26. 设置自定义的wake_lock(设置完之后手机不能深睡):
adb shell "echo test > /sys/power/wake_lock"
27. 获取当前屏幕是否点亮:
adb shell dumpsys power | grep Display
28. 强制退出某个应用:
adb shell am force-stop com.android.settings
29. 清除某个应用的所有数据:
adb shell pm clear com.android.settings
30. 打开某个应用:
adb shell am start com.android.settings/.MainSettings
31. 清除logcat信息:
adb logcat -c
32. 查看logcat 并过滤关键字:
adb logcat | grep LAUNCHER
33. 获取当前手机的配置信息:
adb shell getprop
34. 获取当前手机的亮度(不同手机节点可能不一样):
adb shell cat /sys/class/backlight/panel0-backlight/brightness
或 adb shell cat /sys/class/leds/lcd-backlight/brightness
或 adb shell cat /sys/class/backlight/lcd-backlight/brightness
35. 获取当前CPU频率:
比如8核手机0-3是小核,4-7是大核
查看小核实时频率 adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
查看大核实时频率 adb shell cat /sys/devices/system/cpu/cpu4/cpufreq/scaling_cur_freq
36. 获取CPU可用频率的档位:
查看小核实时频率 adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
查看大核实时频率 adb shell cat /sys/devices/system/cpu/cpu4/cpufreq/scaling_available_frequencies
37. 模拟点击:
adb shell input tap 100 200
38 . 输入框输入文本:
adb shell input text abcdefg
39. 模拟滑动
adb shell swipe 100 100 500 500
40. 下发keyevent事件
adb shell input keyevent 3
常用的事件:
KEYCODE_HOME=3;
KEYCODE_BACK=4;
KEYCODE_CALL=5;
KEYCODE_ENDCALL=6;
KEYCODE_0=7;
KEYCODE_1=8;
KEYCODE_2=9;
KEYCODE_3=10;
KEYCODE_4=11;
KEYCODE_5=12;
KEYCODE_6=13;
KEYCODE_7=14;
KEYCODE_8=15;
KEYCODE_9=16;
KEYCODE_VOLUME_UP=24;
KEYCODE_VOLUME_DOWN=25;
KEYCODE_POWER=26;
KEYCODE_CAMERA=27;
41. 打开手机中的视频音频文件
adb shell am start -a android.intent.action.VIEW -t audio/* -d file:///sdcard/Alarms/XXXX.mp3
adb shell am start -a com.miui.videoplayer.LOCAL_VIDEO_PLAY -d file:///sdcard/Alarms/XXXXX.mp4(小米手机自带播放器)
42. 浏览器打开指定网页
adb shell am start -a android.intent.action.VIEW -d www.baidu.com -n com.android.browser/.BrowserActivity(手机自带浏览器)
43. dump当前页面的xml信息
adb shell uiautomator dump --compressed (--compressed当前窗口的UI布局简化信息)
44. 查看芯片平台:
adb shell getprop ro.soc.model
更多可参考: https://github.com/mzlogin/awesome-adb GitHub - mzlogin/awesome-adb: ADB Usage Complete / ADB 用法大全
常用的adb命令
1、adb devices 查看设备 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示(如图)
只提示“List of devices attached” 没有罗列设备,两种情况下遇到过这个问题:(1)手机设置导致,确定手机已经连接到电脑上,且手机 “设置->开发者选项->开发人员选项”和“USB调试”为打开状态,在“是否允许USB调试”点击确定;(2)adb版本太老了,更新一下到最新的版本试试。
2、 adb install (apk在PC上的路径/)*.apk (会将apk文件上传到了模拟器自带操作系统的data/app目录下了) 安装应用
3、adb uninstall apk的包名(用EC切换到DDMS的File Explorer中查看,data/data下), 卸载app
也可以使用:adb shell pm uninstall com.funnybaby.*(包名)卸载
4、adb shell 通过命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令
另外如果只想执行一条shell命令,可以采用以下的方式:
adb shell [command]
如:adb shell dmesg会打印出内核的调试信息
5、am
你也可以在adb shell前执行am命令:
关于一些am命令的介绍:
start [options] :启动activity通过指定的intent参数。具体intent参数参照官方表。
startservice [options] : 启动service通过指定的intent参数。具体intent跟start命令参数相同。
force-stop : 强制停止指定的package包应用。
kill
[options]
:杀死指定package包应用进程,该命令在安全模式下杀死进程,不影响用户体验。参数选项:--user |
all | current: 指定user进程杀死,如果不指定默认为所有users。(关于USER_ID下面会介绍到)
kill-all :杀死所有的后台进程。
broadcast
[options] :发送一个intent。具体intent参数参照start命令参数。参数选项:--user
| all | current: 指定user进程杀死,如果不指定默认为所有users。
instrument [options] :测试命令,不多作介绍。
profile start :在进程中运行profile,分析结果写到里。
profile stop :停止profile。
set-debug-app [options] :设置package包应用为debug模式。参数选项:-w|--persistent:等待进入调试模式,保留值。
clear-debug-app :清空之前用set-debug-app命令设置的package包应用。
6、adb shell am force-stop
作用:强制关闭一个应用程序
举例:adb shell am force-stop com.lt.test
adb shell am force-stop比使用 kill -9要方便
7、adb shell am start -a android.intent.action.VIEW
作用:启动一个应用程序
8、adb shell pm list packages列出手机所有app包名
9、adb shell logcat > C:\\logcat\\logname.txt(自定义日志存放的位置和名称)
adb logcat -f /sdcard/log.txt** 命令, 注意这个log文件是输出到手机上,需要指定合适的路径。
adb logcat | grep “E.*”过滤等级是E的日志
adb logcat *:F
可截取崩溃日志,具体
截取log保存到c盘目录下:adb shell logcat > C:\\logcat\\logname.txt
手机操作
操作结束后ctrl+c退出,去上面C:\\logcat\\位置去查询logname.txt日志
10、清除应用数据与缓存
有些时候我们测试需要清除数据与缓存,则需要用到如下命令:
adb shell pm clear 如:adb shell pm clear com.stormzhang.demo
11、查询显示当前界面的activity
adb shell dumpsys activity activities
13、将手机/sdcard/adb/Debug/ErrorLog错误日志拉取出来,保存到电脑
adb pull /sdcard/adb/Debug/ErrorLog
14、将电脑文件保存到手机
adb push
15、这条命令相当于按了设备的Backkey键
adb shell input keyevent 4
//可以解锁屏幕
adb shell input keyevent 82
//在屏幕上做划屏操作,前四个数为坐标点,后面是滑动的时间(单位毫秒)
adb shell input swipe 50 250 250 250 500
//在屏幕上点击坐标点x=50 y=250的位置。
adb shell input tap 50 250
//输入字符abc
adb shell input text abc
每个数字与keycode对应表如下:
0 --> "KEYCODE_UNKNOWN"
1 --> "KEYCODE_MENU"
2 --> "KEYCODE_SOFT_RIGHT"
3 --> "KEYCODE_HOME"
4 --> "KEYCODE_BACK"
5 --> "KEYCODE_CALL"
6 --> "KEYCODE_ENDCALL"
7 --> "KEYCODE_0"
8 --> "KEYCODE_1"
9 --> "KEYCODE_2"
10 --> "KEYCODE_3"
11 --> "KEYCODE_4"
12 --> "KEYCODE_5"
13 --> "KEYCODE_6"
14 --> "KEYCODE_7"
15 --> "KEYCODE_8"
16 --> "KEYCODE_9"
17 --> "KEYCODE_STAR"
18 --> "KEYCODE_POUND"
19 --> "KEYCODE_DPAD_UP"
20 --> "KEYCODE_DPAD_DOWN"
21 --> "KEYCODE_DPAD_LEFT"
22 --> "KEYCODE_DPAD_RIGHT"
23 --> "KEYCODE_DPAD_CENTER"
24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"
26 --> "KEYCODE_POWER"
27 --> "KEYCODE_CAMERA"
28 --> "KEYCODE_CLEAR"
29 --> "KEYCODE_A"
30 --> "KEYCODE_B"
31 --> "KEYCODE_C"
32 --> "KEYCODE_D"
33 --> "KEYCODE_E"
34 --> "KEYCODE_F"
35 --> "KEYCODE_G"
36 --> "KEYCODE_H"
37 --> "KEYCODE_I"
38 --> "KEYCODE_J"
39 --> "KEYCODE_K"
40 --> "KEYCODE_L"
41 --> "KEYCODE_M"
42 --> "KEYCODE_N"
43 --> "KEYCODE_O"
44 --> "KEYCODE_P"
45 --> "KEYCODE_Q"
46 --> "KEYCODE_R"
47 --> "KEYCODE_S"
48 --> "KEYCODE_T"
49 --> "KEYCODE_U"
50 --> "KEYCODE_V"
51 --> "KEYCODE_W"
52 --> "KEYCODE_X"
53 --> "KEYCODE_Y"
54 --> "KEYCODE_Z"
55 --> "KEYCODE_COMMA"
56 --> "KEYCODE_PERIOD"
57 --> "KEYCODE_ALT_LEFT"
58 --> "KEYCODE_ALT_RIGHT"
59 --> "KEYCODE_SHIFT_LEFT"
60 --> "KEYCODE_SHIFT_RIGHT"
61 --> "KEYCODE_TAB"
62 --> "KEYCODE_SPACE"
63 --> "KEYCODE_SYM"
64 --> "KEYCODE_EXPLORER"
65 --> "KEYCODE_ENVELOPE"
66 --> "KEYCODE_ENTER"
67 --> "KEYCODE_DEL"
68 --> "KEYCODE_GRAVE"
69 --> "KEYCODE_MINUS"
70 --> "KEYCODE_EQUALS"
71 --> "KEYCODE_LEFT_BRACKET"
72 --> "KEYCODE_RIGHT_BRACKET"
73 --> "KEYCODE_BACKSLASH"
74 --> "KEYCODE_SEMICOLON"
75 --> "KEYCODE_APOSTROPHE"
76 --> "KEYCODE_SLASH"
77 --> "KEYCODE_AT"
78 --> "KEYCODE_NUM"
79 --> "KEYCODE_HEADSETHOOK"
80 --> "KEYCODE_FOCUS"
81 --> "KEYCODE_PLUS"
82 --> "KEYCODE_MENU"
83 --> "KEYCODE_NOTIFICATION"
84 --> "KEYCODE_SEARCH"
85 --> "TAG_LAST_KEYCODE"
以上是关于adb 控制手机开关/获取手机状态常用命令的主要内容,如果未能解决你的问题,请参考以下文章