Android中ADB命令用法大结局

前言

说到 ADB 大家应该都不陌生,即 Android Debug Bridge,Android调试桥,身为 Android 开发的我们,熟练使用 ADB 命令将会大大提升我们的开发效率。

查看版本

ADB 的安装这里就不多说了,输入以下命令有如下提示就证明你环境ok,否则自行网上搜索解决下。

$ adb version

Android Debug Bridge version 1.0.36
Revision 8f855a3d9b35-android

ADB 的命令有很多,今天就来总结下我在开发常用到的一些 ADB 命令。

ADB命令

1、查看最上层成activity名字:

adb shell dumpsys activity | findstr "mFocusedActivity"
或者 adb shell dumpsys window w | findstr \/ | findstr name=

2、查看Activity的任务栈:

 adb shell dumpsys activity activities

3、显示所有的activities的信息,包括任务栈等:

adb shell dumpsys activity

4、查看Android应用包名package和入口activity名称 :

aapt dump badging E:\apk\es3.apk

5、显示accounts信息:

adb shell dumpsys account

5、显示CPU信息 :

adb shell dumpsys cpuinfo

查看CPU使用信息

adb shell top -n 1 -d 0.5 | findstr proc_ id

6、显示键盘,窗口和它们的关系

 adb shell dumpsys window

当我们需要知道设备的分辨率时

 adb shell dumpsys window displays

查看UI绘制的各个层级信息

adb shell dumpsys SurfaceFlinger

7、显示wifi信息

adb shell dumpsys wifi

8、电量信息及CPU 使用时长

 adb shell dumpsys batteryinfo $package_name

9、获取安装包信息

adb shell dumpsys package packagename

10、每个应用的启动次数和时间

adb shell dumpsys usagestats

11、显示状态栏相关的信息

adb shell dumpsys statusbar

12、内存信息(meminfo package_name or pid 使用程序的包名或者进程id显示内存信息)

 adb shell dumpsys meminfo

得到com.teleca.robin.test进程使用的内存的信息    adb shell dumpsys meminfo com.teleca.robin.test

13、磁盘相关信息

adb shell dumpsys diskstats

14、电池相关信息

adb shell dumpsys battery

15、显示Alarm信息

adb shell dumpsys alarm

统计系统耗电量

adb shell dumpsys batterystats

设置线程的优先级

adb shell dumpsys activity|grep oom_adj 

16、强制关闭一个应用程序;

 adb shell am force-stop <PACKAGE>

17、查看内存信息

adb shell cat proc/meminfo

指定进程内存地址映射

adb shell cat proc/pid/maps

指定进程内存详细使用信息

adb shell cat proc/pid/smaps

VSS. RSS. PSS. USS 信息

adb shell procrank

指定进程VSS. RSS. PSS. USS 详细信息

adb shell procmem pid

18、查看可输入的设备

 adb shell getevent -p

19、获得特定设备的输入信息

adb shell getevent /dev/input/event0

20、点击

 adb shell input tap x y

21、发送按键

adb shell input keyevent 82(keycode)

22、输入文本

adb shell input text XXXX

23、查看报名中包含mobileqq的进程

 adb shell ps | findstr mobileqq

24、远程进程ID

adb jdwp

25、获取序列号

adb get-serialno

26、重启到bootloader,即刷机模式

adb reboot bootloader

27、重启到recovery,即恢复模式

adb reboot recovery

28、获取机器MAC地址:

 adb shell cat /sys/class/net/wlan0/address

29、获取CPU序列号

adb shell cat /proc/cpuinfo

30、覆盖安装(保留数据和缓存文件,重新安装apk)

adb install -r <apkfile>

31、安装apk到sd卡

 adb install -s <apkfile>

32、卸载app但保留数据和缓存文件

adb uninstall -k <package>

33、查看设备cpu和内存占用情况

 adb shell top

34、查看占用内存前6的app

adb shell top -m 6

35、刷新一次内存信息,然后返回

adb shell top -n 1

36、查询各进程内存使用情况

adb shell procrank

37、查看指定进程状态

adb shell ps -x [PID] 

38、查看后台services信息

 adb shell service list 

39、查看当前内存占用(该方式只能得出系统整个内存的大概使用情况) 车
如果你想查看所有进程的内存使用情况

 adb shell procrank

40、查看IO内存分区

adb shell cat /proc/iomem

41、查看wifi密码

adb shell cat /data/misc/wifi/*.conf

42、清除log缓存

 adb logcat -c

43、查看设备信息

adb shell cat /system/build.prop

44、跑monkey

adb shell monkey -v -p your.package.name 500

45、列出目标设备上安装的所有app的包名

adb shell pm list packages

46、截屏命令:

adb shell screencap -p /sdcard/screen.png

adb pull /sdcard/screen.png

adb shell rm /sdcard/screen.png

录制手机屏幕,视频格式为mp4,存放到手机sd卡里,默认录制时间为180s:

 adb shell screenrecord

限制视频录制时间为10s,如果不限制,默认180s:

adb shell screenrecord --time-limit 10 /sdcard/demo.mp4

指定视频分辨率大小:

adb shell screenrecord --size 1280*720 /sdcard/demo.mp4

指定视频的比特率:

 adb shell screenrecord --bit-rate 6000000 /sdcard/demo.mp4

在命令行显示log:

adb shell screenrecord --time-limit 10 --verbose /sdcard/demo.mp4

47、设置、获取属性信息

adb shell getprop [key]

adb shell setprop [key] [value]

监听系统属性的变化,如果期间系统的属性发生变化则把变化的值显示出来

adb shell watchprops

48、adb logcat 每一条日志消息都有一个标记和优先级与其关联。

(1)标记是一个简短的字符串,用于标识原始消息的来源 (例如"View" 来源于显示系统)。优先级是下面的字符,顺序是从低到高:

V — 明细 (最低优先级)
D — 调试
I — 信息
W — 警告
E — 错误
F — 严重错误
S — 无记载 (最高优先级,没有什么会被记载)

(2)查看过滤日志

 adb logcat ActivityManager:I *:S

*:S 用于设置所有标记的日志优先级为S,可以确保输出符合指定的过滤器设置的一种推荐的方式,
这样过滤器就成为了日志输出的“白名单”

显示所有优先级大于等于“warning”的日志

adb logcat *:W

(3)日志消息在标记和优先级之外还有很多元数据字段,这些字段可以通过修改输出格式来控制输出结果, -v 选项加上下面列出的内容可以控制输出字段:

brief — 显示优先级/标记和原始进程的PID (默认格式)
process — 仅显示进程PID
tag — 仅显示优先级/标记
thread — 仅显示进程:线程和优先级/标记
raw — 显示原始的日志信息,没有其他的元数据字段
time — 显示日期,调用时间,优先级/标记,PID
long —显示所有的元数据字段并且用空行分隔消息内容

使用 thread 输出格式

adb logcat -v thread

(4)Android日志系统为日志消息保持了多个循环缓冲区,而且不是所有的消息都被发送到默认缓冲区,要想查看这些附加的缓冲区,可以使用-b 选项,以下是可以指定的缓冲区:

radio — 查看包含在无线/电话相关的缓冲区消息
events — 查看事件相关的消息
main — 查看主缓冲区 (默认缓冲区)

查看radio缓冲区

adb logcat -b radio

48、打印应用程序的log

adb logcat -b main -v time>app.log

49、打印射频相关的log,SIM STK也会在里面,modem相关的ATcommand等,当然跟QXDM差的很远了

adb logcat -b radio -v time> radio.log

50、打印系统事件的日志,比如触屏事件

adb logcat -b events -v time

51、tcpdump 是很有用的,对于TCP/IP协议相关的都可以使用这个来抓

adb shell tcpdump -s 10000 -w /sdcard/capture.pcap

52、状态信息,里面包含有dmesg,dumpstate和dumpsys

adb bugreport>bugreport.log

53、kernel的log凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等吧)

adb shell dmesg > ldmesg_kernel.log

54、dumpstate是系统状态信息,里面比较全,包括手机当前的内存信息、cpu信息、logcat缓存,kernel缓存等等 。

adb shell dumpstate

55、关于系统service的内容都在这个里面

adb shell dumpsys

56、显示内存信息

adb shell dumpsys meminfo system

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Android 修改adb端口的方法

    做了Android开发这么久了,经常会遇到一个问题是adb端口被占用,大家都知道Android默认的adb端口是5037,电脑上有一些应用的端口,又恰巧与adb端口冲突占用掉了 早起本人的做法的是: 查看端口是否被占用:运行:netstat -ano | findstr "5037" 或者(查看多有端口netstat -ano) C:\Users\chen>netstat -aon|findstr 5037 TCP 127.0.0.1:5037 0.0.0.0:0 LISTENI

  • android设置adb自带screenrecord录屏命令

    android 设置system/bin目录类似linux,该目录下有许多实用命令,类似 adb,sh,top,app_process,chmod,chown,dmesg,reboot,screenrecord等等. 录屏作用:qa测试过程中有的bug需要还原现场,此时用手机拍摄有诸多不便,此时可以利用录屏命令自动完成录屏,然后上传bug视频. 其中screenrecord命令录制视频到内部存储: 录制命令: adb shell screenrecord --size 1920x480 /sto

  • Android ADB详细介绍及用法

    Android ADB 用法 adb  全称是 Android Debug Bridge, 就是起到调试桥的作用. 用来操作android设备的 阅读目录 adb 有什么用 adb 下载 adb devices adb install  (安装软件) adb uninstall (卸载软件) adb shell (登录shell) adb push (从电脑上发送文件到设备) adb pull (下载文件到电脑) adb help (显示帮助信息) adb 有什么用 借助adb工具, 我们可以管

  • Android shell命令行中过滤adb logcat输出的几种方法

    我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb logcat输出的方法.        1.只显示需要的输出(白名单) 最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配.简单的匹配一行当中的某个字符串,例如 MyApp: adb logcat | grep MyApp adb logcat | grep -i

  • Android adb logcat 命令查看日志详细介绍

    Android 开发的程序员开发程序的时候,一定为log而苦恼过吧.Eclipse老是Log找不到,是不是很让人不爽,虽然Android Studio的Logcat功能很不错,但也没有在命令行terminal中打印出来更方便. 使用 logcat 命令 查看和跟踪系统日志缓冲区的命令logcat的一般用法是: [adb] logcat [<option>] ... [<filter-spec>] ... 下文介绍过滤器和命令选项,详细内容可参见Listing of logcat C

  • Android ADB超简单的安装教程(推荐)

    前言 在Android TV开发中,我们会和APP开发一样使用到真机测试,而adb是一个特别的存在,因为它可以轻松的帮我连接到安卓设备.adb全称为Andorid Debug Bridge.adb全称Android Debug Bridge,用于与Android设备进行交互. ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB安装方法: 方法一:下载ADB安装包进行安装(其实是我重要文件压缩放到百度网盘),这种方法适合那种不是安卓开

  • Android开发手机无线调试的方法

    是不是还在为了手机usb被占用而不能链接编译器而难过?是不是感觉无线调试遥不可及? 读完下面的几步 让你轻松掌握无线调试. 1. 首先将你的手机连接到无线网 2. 将你的手机链接到电脑上 3. Window 配置好adb Linux 安装好adb 4. 确认手机链接到无线网络需要和你的电脑在同一个无线网络内 5. 在命令端输入 $ adb tcpip 5555 (5555为端口号,可以自由指定) 然后在输如下命令 $ adb tcpip 此时你可以查看到 自己手机的ip地址 大概如下所示 10.

  • Android开启ADB网络调试方法

    开启ADB网络调试 # setprop service.adb.tcp.port 5555 # stop adbd # start adbd 连接: $ adb connect 192.168.0.100 以上这篇Android开启ADB网络调试方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • android adb实用命令小结

    adb对于Android程序员来说在日常的工作中使用频率很高,现将自己工作中常用的adb命令总结一下备忘,方便查询,也供大家参考.查看应用内存占用,耗电信息,启动时间,wakelock,跑monkey的命令在之前的应用性能优化中起了不小的作用.以下adb命令的测试机器为小米3,其中package_name代表包名. 基础脚本: 1.启动adb服务 adb start-server 2.终止adb服务 adb kill-server 3.进入adb运行环境 adb shell 4.获取帮助 里面有

  • android studio 使用adb 命令传递文件到android 设备的方法

    一:文件传输 在android开发中,有时候需要将文件从pc端传递至android,或者将软件运行的日志,从android设备传递到pc进行分析,我们可以使用windows的cmd窗口,或者android studio的terminal窗口来传递文件. 1:连接android设备 此处默认是android设备,已打开usb调试模式,并且数据线已经和电脑连接.我们先使用adb devices指令,查询一下设备是否正常连接. 2:设备连接后,将pc文件传输至android设备 adb -s xxxx

随机推荐