重启:adb reboot
推文件:adb push E:\xxx.txt storage/sdcard
拉文件:adb push storage/sdcard .
将日志保存到电脑文件: adb logcat > xxx. xxx电脑文本地址
清除指定应用的数据和缓存:adb shell pm clear 例:adb shell pm clear com.yzl.test
查看日志缓冲区大小:adb shell logcat-g
设置日志缓冲区大小:adb logcat-G10M
打开蓝牙:adb shell svc bluetooth enable
关闭蓝牙:adb shell svc bluetooth disable
查询蓝牙是否打开:adb shell settingsgetglobalbluetooth_on
获取蓝牙Mac地址:adb shell settingsgetsecure bluetooth_address
获取某个包名的安装路径:adb shell pm path com.xx.xx
查看所有存活的进程:adb shell ps
过滤关键字查看adb shell ps|findstr xxx
强制安装版本号更低的apk:adb install -r -d "C:\xx.apk"
对指定应用进行500次模拟触摸事件:adb shell monkey -p com.yzl.test -v 500
查看某个apk的应用信息、版本信息:adb shell mpsys package com.yzl.test
查看已安装应用列表:adb shell pm list package或adb shell pm list packages-s
❷ 常用的adb命令
在平时的工作中,会经常用到adb命令,在这里稍微整理了一下。
一.概要
1.什么是adb?
adb全称为Android Debug Bridge,就是起到调试桥的作用。顾名思义,adb就是一个debug工具。
2.adb工作原理
不是很理解?那就来看看它的工作原理吧。
上图是一个简单的adb工作原理图。adb客户端服务器端程序,由上图可以看出它主要三个组件组成:Client,Server,Daemon。
(1)当你启动一个adb Client(客户端),Client首先会选确认是否已有一个adb
Server(服务器)进程在运行,如果没有,则会启动Server进程。此时,adb Server就会绑定本地的TCP端口5037,并监听adb
Client发来的命令。
(2)接着,Server将会扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备,并与之建立连接。一旦Server找到
了adb
daemon(守护程序),它将建立一个到该端口的连接,这样,我们就可以使用adb命令控制和访问模拟器或设备了。在这里,需注意的是任何模拟器或设备实例会取得两个连续的端口:一个偶数端口用来相应控制台的连接,和一个奇数端口用来响应adb连接。
3.adb的作用
借助adb工具,我们可以管理设备或手机模拟器的状态,还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。简而言之,adb就是连接Android手机和PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。
二.常用命令
这个部分主要介绍adb的使用方法和一些常用的命令。
设置adb环境:将android sdk工作目录添加到系统环境变量中,则可使用adb命令了。
1. adb devices
查看当前连接的设备(连接计算机的Android设备或者模拟器)。
2.adb install
adb install <apk文件路径>,将指定的apk安装到设备上,安装的apk包会放在/data/app目录下。
几个参数:
-r 强制安装
-d(真机,多个设备中只有一个真机时适用)
-e(模拟器,多个设备中只有一个模拟器时适用)
-s(指定设备,后接序列号)
adb –s 44a188f9 install –r test.apk(其中44a188f9即序列号,通过adb devices可获取)
3.adb uninstall
adb uninstall <apk包名>
adb uninstall –k <apk包名>
-k参数为卸载软件时保留配置和缓存文件
4.adb reboot
重启android设备
5.adb shell
通过adb shell 命令,就可以进入设备或者模拟器的shell环境了,在这个linux shell中,我们就可以执行各种Linux命令了。
如果只想执行一条shell命令,就可以采用:adb shell [shell_command]
在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息。
6.adb shell su
前提手机已经root。获取adb shell的root权限。
使用su提权,用户命令提示符有$变成#,如果手机没有root,会提示su:permission denied。
7.adb shell ps/top
查看当前终端中的进程信息,如pid等。
8.adb shell am/pm
am全称为activity manager,可使用am命令模拟各种系统的行为,如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等。
如:adb shell am start <apk包名>/<activityName>:启动一个activity。
pm全称为package manager,利用pm命令可模拟android行为或查询设备上的应用等。
如:adb shell pm list packages
列出当前设备所有已安装的程序的包名。
说明:
管道符“|”:可以把标准的输入流与标准的输出流进行合并,或者把某个命令的标准输出流作为另一个命令的标准输入流。
exit退出shell。
由于grep为linux命令,运行单条adb shell 时并没有进入linux
shell环境,并不能用grep等其他linux命令,只能用window cmd的命令。在这里可以用findstr来代替grep,使用方法为
findstr/grep [keyword]
更详细的内容可查看 参考文献3 和 参考文献4 。
对于常用的linux命令和常用的windows 控制台命令,以后再作总结。
9.adb pull 和 adb push
adb pull <设备中的文件路径> <本地路径>:从模拟器或设备中复制文件到本地。
adb push <本地文件路径> <设备中的路径>:将本地文件或目录复制到模拟器或设备。
这里还涉及到一个权限的问题,在后续的博文中再作介绍。
10.adb shell mpsys
Android提供的mpsys工具用于查看感兴趣的系统服务信息与状态。
参考下表:
11.adb shell monkey
跑monkey是android自动化测试的一种手段,所谓monkey测试就是模拟用户的按键输入,触摸屏输入,手势输入等。当Monkey程序在模拟器或设备运行的时候,如果用户比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey的随机重复的方法对apk作压力测试,来测试android
app的稳定性。
如下为测试腾讯新闻apk的一个简单实例:
说明:第一个-s指定设备,如果只连接了一台设备,可不用该参数。
-p <apk包名>只允许系统启动指定的app,如果不指定,将允许系统启动设备中的所有app,也可指定多个包。
--throttle <毫秒数> 指定用户操作(事件)间的时延。
--ignore-crashes 指定当应用程序崩溃时,Monkey依然发送事件,直到事件计数完成。
--ignore-timeouts 当应用程序发生ANR错误时,Monkey依然会发送事件,直到事件计数完成。
第2个-s,用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。
-v 用于指定反馈信息级别,总共分为level 0、level 1、level 2三个级别,级别越高,输出的日志越详细。
最后的数字(这里是500):表示Monkey程序模拟500次随机用户操作事件。
>输出测试结果到D:\monkeylog.txt
更详细的参数可查看 参考文献5 。
部分测试结果如下:
对于测试结果的分析,通过搜索关键词来定位错误,主要包括以下四个方面:
1)ANR(Application Not
Response):程序无响应,一般主线程超过5秒没处理就会出现ANR错误。通过搜索ANR关键词来定位关键的事件信息。除了导出日志外,还可以将/data/anr/目录下的trace.txt文件导出,用来定位分析问题。使用>adb
pull /data/anr/trace.txt d:\ 将trace.txt文件导出到d盘。
2)ForceClosed或其他异常退出信息:通过搜索Fatal关键词来定位。
3)崩溃问题:通过搜索Exception关键词来定位。
4)发生异常后,通过搜索Crash关键词来定位到详细的堆栈信息。
12.kill
kill用来中止一个进程。
比如我们在跑monkey的时候,怎么强制关闭monkey呢,可以用kill <monkey进程PID>
说明:另开启一个cmd,找到monkey的pid号,然后杀掉即可。
参考文献:
1.Android调试桥: http://www.iteye.com/topic/260042
2.Android性能分析工具mpsys的使用: http://www.open-open.com/lib/view/open1405061994872.html
3.adb shell 中的am pm命令: http://www.android100.org/html/201312/09/4957.html
4.adb shell 启动应用程序的方法: http://blog.chinaunix.net/uid-26997997-id-3350449.html
5.Monkey压力测试详解: http://blog.csdn.net/huangbiao86/article/details/8490743
❸ 实战——Androidadb常用命令详解
ADB 全称Android Debug Bridge 是一个功能非常强大的工具,它位于Android SDK安装目录的platform-tools 子目录下,ADB工具即可完成模拟器文件与电脑文件的相互复制,也可安装APK应用,甚至可以直接切换到Android系统中执行部分Linux命令
1、查看当前运行的模拟器,设备:
adb devices
2、切换adb shell终端为root用户:
adb root
3、链接adb tcp接口或者usb串口:
adb connect 192.168.10.252:5555 (tcp 5555端口)
adb connect 93048d8f
4、启动shell
adb -s 192.168.10.252:5555 shell
如果adb devices 下只有一个设备则只樱型需要:
adb shell 即可
5、安装apk文件
adb -s 192.168.10.252:5555 install [-r] [-s] [-t]<file>
-r 强制安装
-s 标示将APK包安装到SD卡上 默认是将APK安装到内部存储器上
-t 如果 团返 报错 Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI] 可以使用该参数
6、卸载apk
adb uninstall [-k] <package>
-k 标示只删除该应用程序,但保留该程序素有的数据和缓存目录。
7、重新挂载文件系统,用来可以读写system等目录
adb -s 192.168.10.252:5555 remount
or
mount -o remount rw/dev/block/mtdblock0/system /
8、复制文件到手机
adb push a.txt /sdcard/
9、拷贝文件到电脑
adb pull /sdcard/xyz.txt d:/
10、重启设备
adb -s 192.168.10.252:5555 reboot
11、重启设备到bootloader模式
adb -s 192.168.10.252:5555 reboot bootloader
12、启动指定的app的页面
adb -s 192.168.10.252:5555 shell am start -n com.android.settings/.Settings
com.android.settings 应用程序的包名
.Settings 类名(Activity)
13、模拟点击坐标
adb -s 10.0.0.245:5555 shell input tap 250 500
x:250 px Y:500 px
14、滑动触摸事件
adb -s 10.0.0.245:5555 shell input swipe 200 500 400 500
#向右滑塌颂饥动200像素
15、修改屏幕尺寸
adb -s 10.0.0.245:5555 wm size 1080x1920
#修改屏幕尺寸为1080x1920
adb -s 10.0.0.245:5555 wm size
#查看屏幕默认尺寸
❹ Android手机软重启adb命令是什么
运行设备的shell(命令行)。
管理模拟器或设备的端口映射。
计算机和设备之间上传/下载文件。
将本地apk软件安装至模拟器或android设备。
ADB一个 客户端-服务器端 程序, 其中客户端是用来操作的电脑,服务器端是android设备。
1、 查看设备 *adbdevices。这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示。
2、 安装软件:adbinstall <apk文件路径>。
这个命令将指定的apk文件安装到设备上。
3、 卸载软件
adbuninstall <软件名>。
adbuninstall -k <软件名>。
如果加 -k 参数,为卸载软件但是保留配置和缓存文件。
❺ 常用adb命令总结
前言
很早就想整理一下自己平时常用的一些adb命令,不仅为了便于以后查找,而且整理的过程自己又重新复习了一遍,但是当我开始在度娘一搜的时候,发现很多人已经写的非常详细了,尤其是当我发现了 这篇adb概括
心中一句NND,怎么可以写的这么详细,瞬间没了想写这篇文章的欲望,如果你点了链接发现确实很全,那么恭喜你可以关掉这篇了,哈哈哈。
我就不这么想的,虽然很全,但不是我常用的,因人而异,所以我就权当记笔记+替这哥们宣传了。
设备的状态有 3 种
常见的错误情况
-查看前台 Activity
最常用的就是启动指定的activity和发送指定的广播
操作指令 adb shell am start -n 包名/类名
启动默认浏览器打开一个网页
adb shell am start -a android.intent.action.VIEW -d http://testerhome.com
先停止目标应用,再启动
adb shell am start -s com.android.camera/.Camera
启动相机
adb shell am start -n com.android.camera/.Camera
启动设置
adb shell am start -n com.android.settings/com.android.settings.Settings
启动Wifi设置
adb shell am start -n com.android.settings/com.android.settings.wifi.WifiSettings
启动蓝牙设置
adb shell am start -n com.android.settings/com.android.settings.bluetooth.BluetoothSettings
其它的类似只要你能在manifest中找到配置的,都可以通过这种方法来调用
操作指令 adb shell am broadcast -a 广播名 --ei/es/ez 参数名 参数值 --ei/es/ez 参数名 参数值
--ei integer 值
--es String 值
--ez boolean 值
--ef float 值
--el long 值
例如之前写的
Android6.0 源码修改之Setting列表配置项动态添加和静态添加 , 当中就通过发送广播来接收增加配置列表项
adb shell am broadcast -a cn.dynamic.add.settingcategoryitem --es location "0-2" --es title "红" --es intent "com.android.settings.SCHEDULE_POWER_ON_OFF_SETTING"
命令:
adb shell settings put global policy_control <key-values>
<key-values> 可由如下几种键及其对应的值组成,格式为 key1=value1:key2=value2。
key 含义
这些键对应的值可则如下值用逗号组合:
value 含义
例如:
adb shell settings put global policy_control immersive.full=*
表示设置在所有界面下都同时隐藏状态栏和导航栏。(重启也不会失效,恢复需调用下面的命令)
adb shell settings put global policy_control immersive.preconfirms=*
表示恢复显示
adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3
表示设置在包名为 com.package1 和 com.package2 的应用里隐藏状态栏,在除了包名为 com.package3 的所有应用里隐藏导航栏。
参考链接
Android 常用 adb 命令总结
ADB命令大全
❻ 深入扒一扒安卓中的ADB命令
做过安卓开发的朋友或多或少都遇到过让人厌恶的类似于“could not read ok from ADB Server”的错误。产生这个错误的原因可能多种多样,每次遇到问题的时候,可能大部分人都和我一样,去google一下这个问题别人是如何解决的。假设一下子找到解决了,就放过,下次在遇到的时候同样的再去google一下就好了。但是,这样不是正确的治学态度,为此孔祥子决定去扒一扒!
如下,是我在发现Android studio连接不上手机的时候,尝试去启动一个adb server,但是失败了。
<pre>
根据问题提示,5037端口被占用了。下面就来看看到底是哪一个端口被占用。
<pre>
C:Userszxy>netstat -ano | findstr "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 7912
TCP 127.0.0.1:5037 127.0.0.1:50025 ESTABLISHED 7912
TCP 127.0.0.1:5037 127.0.0.1:56501 ESTABLISHED 7912
TCP 127.0.0.1:50025 127.0.0.1:5037 ESTABLISHED 7120
TCP 127.0.0.1:56501 127.0.0.1:5037 ESTABLISHED 1264
</pre>
果然,5037被进程id为7912的进程占用了。顺藤摸瓜,看看到底什么进程捣的鬼,
<pre>
C:Userszxy>tasklist | findstr "7912"
romaster_daemon.exe 7912 Console 1 3,024 K
</pre>
看到了吗,是这个进程romaster_daemon.exe ,好了,到此为止找出来是哪一个程序了,下面打开任务管理器,kill掉就可以了。
Android adb(Android Debug Bridge) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。
该工具作为一个客户端-服务器程序,包括三个组件:
客户端(adb client) ,该组件发送命令。客户端在开发计算机上运行。可以通过发出 adb 命令从命令行终端调用客户端。
这里说的客户端,其实包含很广泛。例如我们在命令行窗口运行一个adb命令,其实就是一个adb客户端。还有,我们在android studio中通过点击运行或者调试按钮,app就安装到手机里面了,这个也可以看做是adb客户端。对应的后台进程名称 根据运行的程序的不同而不同。
后台程序 ,该组件在设备上运行命令。后台程序在每个模拟器或设备实例上作为后台进程运行。
也就说,开发者测试手机或者模拟器上运行的后台进程,负责接收命令,并运行命令。这个名字对应应该是adbd
具体如下
服务端 ,该组件管理客户端和后台程序之间的通信。服务器在开发计算机上作为后台进程运行。
您可以在 android_sdk/platform-tools/ 中找到 adb 工具
这个是在开发者自己的电脑上,运行的旨在管理adb客户端和手机端的后台程序通信的一个管理程序。
具体流程如下
启动一个 adb 客户端时,此客户端首先检查是否有已运行的 adb 服务器进程。如果没有,它将启动服务器进程。当服务器启动时,它与本地 TCP 端口 5037 绑定,并侦听从 adb 客户端发送的命令—所有 adb 客户端均使用端口 5037 与 adb 服务器通信。
然后,服务器设置与所有运行的模拟器/设备实例的连接。它通过扫描 5555 到 5585 之间(模拟器/设备使用的范围)的奇数号端口查找模拟器/设备实例。服务器一旦发现 adb 后台程序,它将设置与该端口的连接。请注意,每个模拟器/设备实例将获取一对按顺序排列的端口 , 这些端口包括用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口。例如:
模拟器 1,控制台:5554
模拟器 1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557
以此类推...
如上所示,在端口 5555 与 adb 连接的模拟器实例与侦听端口 5554 的控制台的实例相同。
注意 ,这里所说的端口都是开发者电脑上的端口。
我的理解,偶数端口用来实际的数据传输。奇数端口用来发送控制命令和连接用的,例如调试。(如果不正确请指出)
当服务器已设置与所有模拟器实例的连接后,您可以使用 adb 命令访问这些实例。由于服务器管理与模拟器/设备实例的连接,并处理来自多个 adb 客户端的命令,因此,您可以从任意客户端(或从某个脚本)控制任意模拟器/设备实例。
解读一下
注意:上图中的标识为黄色的区域的进程为后台守护进程。
Adb Server运行在开发者电脑上,任何adb client都要等待这个运行起来之后才能做后续的工作。电脑上的android studio或者eclipse等一些adb client和它交互。一旦adb client的命令被发送到手机中,并且被手机中的adbd接收之后,才能和手机交互。
然后在看一张更详细的图
这个图,详细的解释了我运行adb命令中的详细细节。
关于adb的详细命令可以参考: http://adbshell.com/commands 这个网站详。
看了之后,对于前面的5037被占用,导致无法连接手机的原因,我想,我们应该有了更深层次的理解。同时对于其他情况的不能连接手机,我们下次就会有了自己的思考了。
❼ Android—ADB命令
1、查看最上层成activity名字:
adb shell mpsys activity | findstr "mFocusedActivity"
或者 adb shell mpsys window w | findstr / | findstr name=
2、查看Activity的任务栈:
3、显示所有的activities的信息,包括任务栈等:
adb shell mpsys activity
4、查看Android应用包名package和入口activity名称 :
aapt mp badging E:\apk\es3.apk
5、显示accounts信息:
adb shell mpsys account
5、显示CPU信息 :
adb shell mpsys cpuinfo
查看CPU使用信息
adb shell top -n 1 -d 0.5 | findstr proc_ id
6、显示键盘,窗口和它们的关系
adb shell mpsys window
当我们需要知道设备的分辨率时
adb shell mpsys window displays
查看UI绘制的各个层级信息
adb shell mpsys SurfaceFlinger
7、显示wifi信息
adb shell mpsys wifi
8、电量信息及CPU 使用时长
adb shell mpsys batteryinfo $package_name
9、获取安装包信息
adb shell mpsys package packagename
10、每个应用的启动次数和时间
adb shell mpsys usagestats
11、显示状态栏相关的信息
adb shell mpsys statusbar
12、内存信息(meminfo package_name or pid 使用程序的包名或者进程id显示内存信息)
adb shell mpsys meminfo
得到com.teleca.robin.test进程使用的内存的信息 adb shell mpsys meminfo com.teleca.robin.test
13、磁盘相关信息
adb shell mpsys diskstats
14、电池相关信息
adb shell mpsys battery
15、显示Alarm信息
adb shell mpsys alarm
统计系统耗电量
adb shell mpsys batterystats
设置线程的优先级
adb shell mpsys 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、tcpmp 是很有用的,对于TCP/IP协议相关的都可以使用这个来抓
adb shell tcpmp -s 10000 -w /sdcard/capture.pcap
52、状态信息,里面包含有dmesg,mpstate和mpsys
adb bugreport>bugreport.log
53、kernel的log凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等吧)
adb shell dmesg > ldmesg_kernel.log
54、mpstate是系统状态信息,里面比较全,包括手机当前的内存信息、cpu信息、logcat缓存,kernel缓存等等 。
adb shell mpstate
55、关于系统service的内容都在这个里面
adb shell mpsys
56、显示内存信息
adb shell mpsys meminfo system