adb 命令之全面打击

笑谈风云,一语定乾坤。今天我和大家分享一下adb的学习经验。

简介

adb的全称为Android Debug Bridge 调试桥,是连接Android手机与PC端的桥梁,通过adb可以管理、操作模拟器和设备,如安装软件、查看设备软硬件参数、系统升级、运行shell命令等。那具体有哪些可用命令呢?下面我就一一道来。

adb环境变量的配置

工欲善其事,必先利其器。adb是一个可执行文件,在SDK文件目录platform-tools下。adb的操作是通过cmd命令的dos窗口来实现的。如果不配置环境变量,那么就要通过 cd命令进入adb.exe所在的文件目录下方能继续操作。不想偷懒的程序员不是个好厨子。所以,环境变量必须得配。这样减少碎片化时间,何乐而不为呢?

配置流程:右键计算机->属性->选择高级系统设置->选择‘高级‘选项->点击环境变量->在变量PATH的末尾添加上adb.exe所在文件夹的路径。

adb 命令之全面打击_第1张图片
adb 命令之全面打击_第2张图片
adb 命令之全面打击_第3张图片
最后,再到cmd中验证一下:
adb 命令之全面打击_第4张图片
出现以上结果,就表示环境变量配置成功啦。

命令实战

1.版本信息

命令adb version

结果就是上面一张图里显示的结果。
2.查询模拟器或手机状态
命令adb devices 获取手机设备序列号和连接状态
命令 adb get-serialno 获得设备序列号

执行以上命令后,adb为每一个设备输出序列号和状态两个信息。序列号是由adb针对模拟器或安卓设备创建的唯一标识。格式是<设备类型>-<端口号>,例如:emulator-5558。状态有两种值,offline和device。Offline表示未连接或未响应,device表示已经连接到服务商。但是device并不能表示Android系统已经完全启动,只是表示这个状态是可以操作状态。

3.设置操作对象

如果有多个模拟器或者Android设备同时连接上adb,那么可以通过命令来选择指定的目标设备。

在执行adb命令时 在一般命令前再加入 –s <序列号>即可。


以上是针对设备0cc1fb0c进入shell命令模式。

4.安装/卸载apk

安装命令

adb install   安装apk

adb install -r   保留数据和缓存文件,重新安装APK

adb install -s   安装apk到sd卡

卸载命令

adb uninstall 卸载APP

adb uninstall 卸载APP但保留数据和缓存文件

adb 命令之全面打击_第5张图片

将APK安装到sd卡的命令执行失败了,因为设备上没有sd被挂载。

5.获取设备硬件和软件参数

命令

adb shell ->cat/sys/class/net/wlan0/address  获取Mac地址

abd shell –>cat /proc/cpuinfo 获取CPU信息

adb shell ->cat /proc/meminfo 查看当前内存占用

adb shell -> cat /proc/iomem 查看IO内存分区


adb 命令之全面打击_第6张图片

adb shell top  查看设备CPU和内存占用情况

adb shell top –m 3 查看占用内存前3的APP

adb 命令之全面打击_第7张图片

adb shell top –n 1 刷新一次内存信息,然后返回

adb shell ps 查看进程列表

adb shell kill 杀死一个进程

adb shell ps –x 查看指定进程状态

adb shell service list 查看后台服务信息

adb 命令之全面打击_第8张图片

6.按键事件

命令 adb shell input keyevent

No支持以下80多种不同的按键值

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 shell input keyevent 1 打开菜单

adb shell input keyevent 26 按下电源键

7.am命令

adb shell am start com.dls.myview/com.dls.myview.LoginActivity 启动包名为com.dls.myview下的LoginActivity

除了可以启动activity,广播、服务也可以启动。格式和上面一样。

am broadcast 启动广播

am startservice 启动服务

am force-stop 强制终止app

8.pm命令

pm list packages 列出所有包名

-f 列出所有apk路径以及包名

-s 列出系统apk路径以及包名

-3 列出用户apk路径以及包名

pm list permission-groups 列出所有权限组

adb 命令之全面打击_第9张图片

pm list permissions –d 列出所有的危险权限

adb 命令之全面打击_第10张图片

pm list permissions –u 列出所有的危险和普通权限

pm list features 列出所有功能

adb 命令之全面打击_第11张图片

pm list libraries 列出所有libraries

pm path APP安装目录文件夹路径

pm install 执行安装APK

pm uninstall 执行卸载APK

pm clear 清除apk缓存文件和数据

9.adb服务相关

adb kill-server 终止adb服务

adb start-server 启动adb服务

adb root 以root权限重启adb服务

adb reboot 重启设备

adb reboot bootloader 重启并进入刷机模式

adb reboot recovery 重启进入恢复模式

文件操作

adbremount   将system分区重新挂载为可读写分区

adbpush  从本地复制文件到设备

adbpull  从设备复制文件到本地

adbshell ls  列出目录下的文件和文件夹,等同于dos中的dir命令

adbshell cd  进入文件夹,等同于dos中的cd 命令

adbshell rename path/oldfilename path/newfilename  重命名文件

adbshell rm /system/avi.apk   删除system/avi.apk //rm -f 1.apk 强制删除apk

adbshell rm -r  删除文件夹及其下面所有文件

adbshell mv path/file newpath/file  移动文件

adbshell chmod 777 /system/fonts/DroidSansFallback.ttf  设置文件权限

adbshell mkdir path/foldelname  新建文件夹

adbshell cat  查看文件内容

10.使用技巧

删除图形验证码 前提:手机ROOT和已开启开发者模式

adb devices 获取到设备号

adb remount 将设备设置为可写模式

adb shell 进入shell模式

rm /data/system/password.key 删除密码文件

adb reboot //设备重启

修改开关机动画

adb devices

adb remount

adb pushpower_off.gif  /opl/data/res/images 关机动画

adb pushboot_animation.gif  /opl/data/res/images 开机动画

adb shell chmod644 /opl/data/res/images/power_off.gif

adb shell chmod644 /opl/data/res/images/boot_animation.gif


进入Doze模式(测试用)

要求:Android NougatDeveloper Preview4或以上版本的设备。

什么是Doze 模式?

Android 6.0(API level 23)开始,Android提出了两个延长电池使用时间的省电特性给用户。用户管理可以在没有充电的情况下管理app的行为。当用户一段时间没有使用手机的时候,Doze模式通过延缓app后台的CPU和网络活动减少电量的消耗。

命令

adb shell dumpsysbattery unplug  使设备进入未连接充电模式

adb shell dumpsysdeviceidle step [light|deep] 强行进入Doze模式

adb shell dumpsys battery reset 退出doze模式


该文会继续补充adb命令,便于大家学习。





你可能感兴趣的:(android)