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

来源:互联网 发布:网站美工平面设计 编辑:程序博客网 时间:2024/05/06 22:31

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

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

// 连接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

//安装APKadb install (-s 可选) 文件绝对路径-s(设置软件安装在sd卡中,如不设置默认安装于内部存储器上)-r(允许覆盖安装)-l(将应用安装到保护目录 /mnt/asec)-d(允许降级覆盖安装)-g(授予所有运行时权限)文件绝对路径(直接将apk文件拖过来即可显示绝对路径)//卸载APKadb uninstall (-k 可选) 文件绝对路径-k(只删除应用程序,但保留应用程序的数据和缓存,如不设置则全部删除)文件绝对路径(直接将apk文件拖过来即可显示绝对路径)

7,重启设备

adb reboot

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

adb logcat 

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

这里写图片描述

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 设置屏幕分辨率

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

12.28 设置屏幕密度

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

12.29 设置屏幕留白区域

// 分别表示距离左、上、右、下边缘的留白像素// 下边缘留白200pxadb 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

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

——博客参考自:https://github.com/mzlogin/awesome-adb?spm=5176.100239.blogcont61659.4.J0Ks5F——


———-因本人才疏学浅,如博客或Demo中有错误的地方请大家随意指出,与大家一起讨论,共同进步,谢谢!———-

0 0
原创粉丝点击