admin 管理员组

文章数量: 887021

常用命令

登录设备shell         adb shell

退出shell                exit 或 CTRL+D

软件覆盖安装         adb install -r -d X:\xxx\xxx.apk

卸载该软件/app      adb uninstall <包名>

文件复制                adb pull <设备路径> <本地路径> 或 adb push <本地路径> <设备路径>

查看当前连接设备列表   adb devices -l

获取root权限          adb root

查看设备号             adb get-serialno

查询包路径             adb shell pm path <包名>

进入指定设备         adb -s serialNumber shell

杀死当前adb服务   adb kill-server

杀掉后重启             adb start-server

列出当前设备的应用列表/包名   adb shell pm list packages

国际码查询         adb shell

                           getprop |grep countrycode

关闭屏幕自动旋转    adb shell settings put system accelerometer_rotation 0

打开屏幕自动旋转    adb shell settings put system accelerometer_rotation 1

切换国家码         adb shell am start -n com.longcheertel.midtest/.CountryCodeActivity

恢复出厂设置     adb reboot recovery 然后用手机加减音量调到 wipe data/factory reset清除用户数据,然后点击开关机键确认,过一会数据清除后调到Reboot system now 点一下开关机按钮,重启就可以。

输入文本            adb shell input text <文本>

查找设备当前页面的包名

adb shell "dumpsys window |grep mCurrentFocus"

adb shell pm list packages -d:显示禁用的应用包名

adb shell pm list packages -e:显示当前启用的应用包名

adb shell pm list packages -s:显示系统应用包名

adb shell pm list packages -3:显示已安装第三方的应用包名

adb shell pm list packages xxx:加需要过滤的应用包名,如:xxx = taobao

adb shell pm uninstall -k <包名>:虽然把此应用卸载,但仍保存此应用的数据和缓存

adb shell am force-stop <包名>:强制退出该应用/app adb shell pm path <包名>:查看应用安装路径

adb shell pm clear <包名>:清空App数据 adb shell pm hide <包名>:隐藏应用

adb shell pm unhide <包名>:显示应用 adb shell pm enable <包名>:启动应用

adb shell pm disable <包名>:关闭应用

adb发送broadcast

adb shell am broadcast -a <广播动作>

如:发送一个网络变化的广播

adb shell am broadcast -a android.conn.CONNECTIVITY_CHANGE

抓日志指令示例:

桌面新建文本 1201.txt

进入cmd输入 adb logcat > D:\Users\Moal1\Desktop\1201.txt

使用设备进行操作

操作完成Ctrl+C退出

    Android 系统的日志分为两部分,底层的 Linux 内核日志输出到 /proc/kmsg,Android 的日志输出到 /dev/log

adb shell cat /proc/kmsg > D:\logcat11.txt ------ 实时kernel log

    这句话的意思是kernel log 实时输出到文件D:\logcat11.txt中,你就可以在这个文件中查看这部分的log了。

日志操作指令:

adb shell logcat -c:清理现有日志

adb shell logcat -v time :输出日志,信息输出在控制台

adb shell logcat -v time > <存放路径\log.txt>:输出日志并保存在本地文件

Ctrl+C:终止日志抓取

adb shell logcat -v time *:E > <存放路径\log.txt>:打印级别为Error的信息

日志的等级:

-v:Verbse(明细)

-d:Debug(调试)

-i:Info(信息)

-w:Warn(警告)

-e:Error(错误)

-f:Fatal(严重错误)

    抓取日志的步骤先输入命令启动日志,然后操作 App,复现 bug,再 ctrl+c 停止日志,分析本地保存的文件。 :日志是记录手机系统在运行app时有什么异常的事件 EXCEPTION 也可以把更详细得Anr日志拉取出来:adb shell pull /data/anr/traces.txt <存放路径>

adb shell getprop ro.product.model:获取设备型号

adb shell getprop ro.build.version.release:获取Android系统版本

adb shell wm size:获取设备屏幕分辨率

adb shell screencap -p /sdcard/xxx.png:屏幕截图

adb shell cat /proc/meminfo:获取手机内存信息

adb shell df:获取手机存储信息

adb shell screenrecord <存放路径/xxx.mp4>:录屏,命名以.mp4结尾

adb shell screenrecord --time-limit 10 <存放路径/xxx.mp4>:录屏时间为10秒

电源键       adb shell input keyevent 26

菜单键       adb shell input keyevent 82

媒体控制播放暂停     adb shell input keyevent 85

滑动解锁    adb shell input swipe 300 1000 300 500

输入文本    adb shell input text hello

关闭 USB 调试模式     adb shell settings put global adb_enabled 0

开启 WiFi    adb shell svc wifi enable

关闭 WiFi    adb shell svc wifi disable

查看wifi 密码     adb shell su cat /data/misc/wifi/*.conf

杀所有后台进程 adb shell am kill-all

收紧内存命令

adb shell am send-trim-memory <pid> <level>

例如: 向pid=12345的进程,发出level=RUNNING_LOW的收紧内存命令

am send-trim-memory 12345 RUNNING_LOW

level取值范围为: HIDDEN、RUNNING_MODERATE、BACKGROUND、RUNNING_LOW、MODERATE、

RUNNING_CRITICAL、COMPLETE。

    以下示例展示了 devices 命令及其输出。有三个设备正在运行。列表前两行表示模拟器,第三行表示连接到计算机的硬件设备。

$ adb devices

List of devices attached

emulator-5556 device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64

emulator-5554 device product:sdk_google_phone_x86 model:Android_SDK_built_for_x86 device:generic_x86

0a388e93 device usb:1-1 product:razor model:Nexus_7 device:flo

    如果有多个设备在运行,您在发出 adb 命令时必须指定目标设备。如需指定目标设备,请按以下步骤操作:

    使用 devices 命令获取目标设备的序列号。 获得序列号后,结合使用 -s 选项与 adb 命令来指定序列号。 如果您要发出很多 adb 命令,可以将 $ANDROID_SERIAL 环境变量设为包含序列号。 如果您同时使用 -s 和 ANDROID_SERIAL,-s 会替换 ANDROID_SERIAL。

    在以下示例中,先获得了已连接设备的列表,然后使用其中一个设备的序列号在该设备上安装了 helloWorld.apk:

adb devices

List of devices attached

emulator-5554 device

emulator-5555 device

adb -s emulator-5555 install helloWorld.apk

    如果有多个可用设备,但只有一个是模拟器,请使用 -e 选项将命令发送至该模拟器。

    如果有多个设备,但只连接了一个硬件设备,请使用 -d 选项将命令发送至该硬件设备。

    使用 forward 命令设置任意端口转发,将特定主机端口上的请求转发到设备上的其他端口。

以下示例设置了主机端口 6100 到设备端口 7100 的转发:

adb forward tcp:6100 tcp:7100

adb无线连接Android设备进行调试的方法

背景:

    在进行TP的相关调试时,有时需要通过adb调试去抓TP触点数据,但是插上usb线后,会影响到TP的感应量 造成数据的不精准,这个时候最好就是通过adb无线连接进行调试抓数据。

方法:

使用adb 命令连接wifi进行无线调试

1、首先你的手机和你的电脑,必须是在同一个网段里面,也就是连接同一个路由器

2、电脑连接手机,win+R  输入cmd 打开命令窗口

3、输入adb version 检测电脑是否支持adb

4、检测是否有手机连接 adb devices

5、输入adb tcpip 8888,回车(8888,表示一个端口号,可自己定义)

6、查看手机ip地址,adb shell ifconfig wlan0

7、连接手机 adb connect ip地址:端口号(eg: adb connect 10.10.10.0:8888)

8、连接成功,断开数据线

示例:

1.首先让Android设备和电脑处于同一个局域网内,以龙旗为例,让手机连接龙旗内网wifi就可以。

2.输入 adb shell ifconfig  查看手机ip地址。一般wlan0后面的就是 当前连接手机的ip地址。

3.输入adb tcpip 5555

4.adb connect xxx.xxx.xxx.xx (手机的ip地址)

5.提示连接成功,就可以进行调试了,不需要usb线

Keycode表

0 -->  "KEYCODE_UNKNOWN"
1 -->  "KEYCODE_MENU"
2 -->  "KEYCODE_SOFT_RIGHT"
3 -->  "KEYCODE_HOME"     //Home键
4 -->  "KEYCODE_BACK"     //返回键
5 -->  "KEYCODE_CALL"
6 -->  "KEYCODE_ENDCALL"
7 -->  "KEYCODE_0"        //数字键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"   //Power键
27 -->  "KEYCODE_CAMERA"
28 -->  "KEYCODE_CLEAR"
29 -->  "KEYCODE_A"    //字母键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"

本文标签: 命令 常用 Android ADB