Android开发中常用的Android Debug Bridge(ADB)指令

编写不易,如有转载,请声明出处:http://blog.csdn.net/zxc514257857/article/details/61955221

1,通过无线连接或取消连接android设备

// 连接 (adb连接模拟器默认的端口号 5555)
adb connect 192.168.1.209
// 取消连接
adb disconnect 192.168.1.209

这里写图片描述
2,查看当前运行的android设备

adb devices

这里写图片描述
3,多个android设备连接,为命令指定目标设备

adb -s <serialNumber> 命令

这里写图片描述
4,杀死adb进程、开启adb进程(常用于AVD无法打印出Log情况)

//杀死adb进程
adb kill-server
//开启adb进程
adb start-server

这里写图片描述

5,文件复制

//电脑文件复制到手机
adb push d:\abd.txt /sdcard/
//手机文件复制到电脑
adb pull /sdcard/xyz.txt d:\

这里写图片描述

6,安装、卸载APK

//安装APK
adb install (-s 可选) 文件绝对路径
-s(设置软件安装在sd卡中,如不设置默认安装于内部存储器上)
-r(允许覆盖安装)
-l(将应用安装到保护目录 /mnt/asec)
-d(允许降级覆盖安装)
-g(授予所有运行时权限)
文件绝对路径(直接将apk文件拖过来即可显示绝对路径)

//卸载APK
adb uninstall (-k 可选) 文件绝对路径
-k(只删除应用程序,但保留应用程序的数据和缓存,如不设置则全部删除)
文件绝对路径(直接将apk文件拖过来即可显示绝对路径)

7,重启设备

adb reboot

8,打印系统日志(显示内容同AS的logcat内容)

adb logcat 
// adb 过滤Log信息(MainActivity是TAG标识)
adb logcat -s MainActivity

9,获取或取消管理员权限

adb root
// 同
adb shell su

  命令提示符变为#
这里写图片描述
  如果要取消管理员权限使用

adb unroot

  或exit退出一次也可
这里写图片描述

10,获取设备序列号

adb get-serialno

这里写图片描述

11,登录设备shell

adb shell 

12,常用的adb shell命令

12.1 获取设备名称等信息

adb shell
// 设备信息主要是存放在"/system/build.prop"文件中,通过cat命令查看即可
cat /system/build.prop

这里写图片描述

12.2 获取设备IP地址
   查看条件:android设备已经连接到Wifi获取到Ip地址并且android设备已经连接到电脑,通过adb devices可以查看到该设备

// 进入shell模式
adb shell
// 查看所有的网络端口情况
netcfg
// 进这个端口详细看一看
ifconfig wlan0

这里写图片描述
   或者:

adb shell "ifconfig | grep Mask"

这里写图片描述

12.3 获取设备MAC地址

// Wifi的Mac地址 7.0手机出现:/system/bin/sh: cat: /sys/class/net/wlan0/address: Permission denied 不晓得么鬼
adb shell cat /sys/class/net/wlan0/address
// 如果设备有网口 可以获取到EthernetMac地址
adb shell cat /sys/class/net/eth0/address

12.4 获取设备CPU序列号

adb shell cat /proc/cpuinfo

这里写图片描述
12.5 查看CPU和内存占用情况

adb shell top

12.6 查看一次CPU和内存占用情况

adb shell top -n 1

12.7 查看CPU占用前六的进程

adb shell top -m 6

这里写图片描述

12.8 查看所有应用列表

adb shell pm list packages
-f(显示应用关联的 apk 文件)
-d(只显示 disabled 的应用)
-e(只显示 enabled 的应用)
-s(只显示系统应用)
-3(只显示第三方应用)
-i(显示应用的 installer)
-u(包含已卸载应用)
关键字(查找包含关键字的应用)
无(所有应用)

这里写图片描述

adb shell pm list packages 关键字
// 同
adb shell "pm list packages | grep 关键字"

这里写图片描述
12.9 清除数据及缓存

// 效果相当于在设置里的应用信息界面点击了清除缓存和清除数据
adb shell pm clear 包名

这里写图片描述
12.10 查看前台Activity

adb shell "dumpsys activity activities | grep mFocusedActivity"

这里写图片描述
12.11 启动应用

adb shell am start -n 包名/类名(不是包名或类名而是包名+类名的意思)
// 打开系统计算器应用
adb shell am start -n com.android.calculator2/com.android.calculator2.Calculator

这里写图片描述
12.12 启动服务

adb shell am startservice -n 包名/服务名(不是包名或服务名而是包名+服务名的意思)

   打开微信的某 Service
这里写图片描述
12.13 发送广播
  可以向所有组件广播,也可以向指定组件广播

// 设备启动完毕,向所有组件广播
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
// 设备启动完毕,向指定的包名/广播接收者(不是包名或广播接收者而是包名+广播接收者的意思)
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n com.abc.test/.BootCompletedReceiver

  可以通过adb触发的广播:
  android.net.conn.CONNECTIVITY_CHANGE 网络连接发生变化
  android.intent.action.SCREEN_ON 屏幕点亮
  android.intent.action.SCREEN_OFF 屏幕熄灭
  android.intent.action.BATTERY_LOW 电量低,会弹出电量低提示框
  android.intent.action.BATTERY_OKAY 电量恢复了
  android.intent.action.BOOT_COMPLETED 设备启动完毕
  android.intent.action.DEVICE_STORAGE_LOW 存储空间过低
  android.intent.action.DEVICE_STORAGE_OK 存储空间恢复
  android.intent.action.PACKAGE_ADDED 安装了新的应用
  android.net.wifi.STATE_CHANGE WiFi 连接状态发生变化
  android.net.wifi.WIFI_STATE_CHANGED WiFi 状态变为启用/关闭/正在启动/正在关闭/未知
  android.intent.action.BATTERY_CHANGED 电池电量发生变化
  android.intent.action.INPUT_METHOD_CHANGED 系统输入法发生变化
  android.intent.action.ACTION_POWER_CONNECTED 外部电源连接
  android.intent.action.ACTION_POWER_DISCONNECTED 外部电源断开连接
  android.intent.action.DREAMING_STARTED 系统开始休眠
  android.intent.action.DREAMING_STOPPED 系统停止休眠
  android.intent.action.WALLPAPER_CHANGED 壁纸发生变化
  android.intent.action.HEADSET_PLUG 插入耳机
  android.intent.action.MEDIA_UNMOUNTED 卸载外部介质
  android.intent.action.MEDIA_MOUNTED 挂载外部介质
  android.os.action.POWER_SAVE_MODE_CHANGED 省电模式开启

12.14 强制停止应用

// 根据包名停止应用
adb shell am force-stop 包名
// 强制停止日历应用
adb shell am force-stop com.android.calculator2
// 根据pid停止应用
adb shell ps
adb shell kill -9 (pid号码)

这里写图片描述
这里写图片描述
12.15 模拟按键/输入
  在 adb shell 里有个很实用的命令叫 input,通过它可以做一些有趣的事情。
  input 命令的完整 help 信息如下:
这里写图片描述
  keycode 列表详见:欧阳鹏 我的Android进阶之旅——>Android KeyCode列表

// 模拟点击菜单键
adb shell input keyevent 82
// 模拟点击返回键
adb shell input keyevent 4
// 熄灭屏幕
adb shell input keyevent 223
// 熄灭屏幕
adb shell input keyevent 223

12.16 滑动解锁
  如果手机解锁设置的为滑动解锁,可以通过input swipe 来解锁

// 参数 300 1000 300 500 分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标
adb shell input swipe 300 1000 300 500

12.17 输入文本
  焦点处于文本框时,可以通过input命令来输入文本

adb shell input text test12345

12.18 查看设备型号

adb shell getprop ro.product.model

这里写图片描述
12.19 查看电池状况

adb shell dumpsys battery

这里写图片描述
12.20 查看屏幕理论分辨率

adb shell wm size

这里写图片描述

  用上面的方法测试手机的分辨率为1920*1080,但手机底部是有虚拟按键的,分辨率肯定有些偏差
这里写图片描述

  获取屏幕实际分辨率的代码请移步: Android开发中的一些小知识点记录(21-40) 第36点 ,获取的我手机的分辨率为1812*1080

12.21 查看屏幕密度

adb shell wm density

这里写图片描述
12.22 查看显示屏参数(包括屏幕分辨率,屏幕密度等信息)

adb shell dumpsys window displays

这里写图片描述
12.23 查看设备Id

adb shell settings get secure android_id

这里写图片描述
12.24 国际移动设备身份码IMEI
  android4.4及以下版本获取IMEI:

adb shell dumpsys iphonesubinfo

  android5.0及以上版本获取IMEI:

adb shell service call iphonesubinfo 1

这里写图片描述
  把里面的有效内容提取出来就是 IMEI 了,比如这里的是 863272036345313

12.25 Android系统版本

adb shell getprop ro.build.version.release

这里写图片描述
12.26 其他更多硬件属性
  一些其它有用的信息,它们也可通过 adb shell getprop <属性名> 命令单独查看,列举一部分属性如下:
  属性名             含义
ro.build.version.sdk       SDK 版本
ro.build.version.release      Android 系统版本
ro.build.version.security_patch  Android 安全补丁程序级别
ro.product.model        型号
ro.product.brand         品牌
ro.product.name         设备名
ro.product.board        处理器型号
ro.product.cpu.abilist      CPU 支持的 abi 列表
persist.sys.isUsbOtgEnabled   是否支持 OTG
dalvik.vm.heapsize        每个应用程序的内存上限
ro.sf.lcd_density         屏幕密度

12.27 设置屏幕分辨率

// 设置屏幕分辨率为480x1024
adb shell wm size 480x1024
// 还原分辨率设置
adb shell wm size reset

12.28 设置屏幕密度

// 将屏幕密度修改为160dpi
adb shell wm density 160
// 还原屏幕密度
adb shell wm density reset

12.29 设置屏幕留白区域

// 分别表示距离左、上、右、下边缘的留白像素
// 下边缘留白200px
adb shell wm overscan 0,0,0,200
// 还原屏幕留白设置
adb shell wm overscan reset

12.30 关闭USB调试模式

adb shell settings put global adb_enabled 0
// 恢复需要手动恢复:设置--->开发者选项--->Android 调试

12.31 实现屏幕截屏
  方式一:

// 手机上截屏并保存在电脑D盘的develop文件夹下,以sc.png命名 
// -p 表示指定保存文件为 png 格式 
adb exec-out screencap -p > D:\develop\sc.png

  若方式一无法获取,则采用方式二:

// 手机上截屏并保存在安卓设备根目录下,以sc1.png命名
// -p 表示指定保存文件为 png 格式 
adb shell screencap -p /sdcard/sc1.png
// 将根目录下的sc1.png文件保存在D盘的develop文件夹下
adb pull /sdcard/sc1.png D:\develop

12.32 实现屏幕录屏

// 录屏保存至内存卡,以filename.mp4命名
adb shell screenrecord /sdcard/filename.mp4
// ctrl+c 停止录制,默认录制时间和最长录制时间都是 180 秒
// 将录屏文件filename.mp4 复制到D盘的develop文件夹下
adb pull /sdcard/filename.mp4 d:\develop\

这里写图片描述
  adb shell screenrecord - -help 查看 screenrecord 命令的帮助信息
  - -size WIDTHxHEIGHT(视频的尺寸,比如 1280x720,默认是屏幕分辨率)
  - -bit-rate RATE(视频的比特率,默认是 4Mbps)
  - -time-limit TIME(录制时长,单位秒)
  - -verbose(输出更多信息)
这里写图片描述
12.33 查看连接过的WIFI密码(需要Root权限)

// 获取Root权限
adb shell su
// 查看保存WIFI密码的文件
cat /data/misc/wifi/*.conf

这里写图片描述
  ssid 即为我们在 WLAN 设置里看到的名称,psk 为密码,key_mgmt 为安全加密方式。

12.34 测试设备是否Root

adb shell su

  如果已经获取Root权限:
这里写图片描述
  如果没有获取Root权限:
这里写图片描述
12.35 Monkey测试

// 向 <packagename> 指定的应用程序发送 500 个伪随机事件
adb shell monkey -p <packagename> -v 500

13,adb shell后需要使用到的Linux命令

13.1 进入或返回

// 进入系统内指定文件夹 
$ cd system/sd/data 
// 返回上一级目录 
$ cd .. 
// 返回上两级目录 
$ cd ../.. 

13.2 查看文件及文件夹

// 查看当前目录下非隐藏文件和目录名称
$ ls

这里写图片描述

// 查看当前目录下非隐藏文件和目录的详细信息,如创建者,创建时间,文件的读写权限列表等等
$ ll或ls -1

这里写图片描述
  文件属性以d开头表示,目录(文件夹)
  以-开头表示,文件
  以l开头表示,链接(快捷方式)
  以c开头表示,字符设备文件(键鼠)
  以b开头表示,块设备(硬盘)

13.3 查看文件内容

// 查看文件中的内容
$ cat + 文件名

14,其他Windows控制台命令

// 清屏
cls
// 退出(控制台或当前shell)
exit
// 终止(当前shell的不间断操作)
ctrl+c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamBackTo

感谢各位金主大大(* _ *)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值