adb shell dumpsys,默认打印出当前系统所有的service信息,通常情况下我们并不想看那么多信息,可以在后面加上具体的服务名,比如想获取关于设备电池的信息,就可以使用以下命令:

>adb shell dumpsys battery

Current Battery Service state:
AC powered: false
USB powered: true
Wireless powered: false
Max charging current: 0
status: 5
health: 2
present: true
level: 100
scale: 100
voltage: 4321
temperature: 302
technology: Li-ion

获取完整的系统服务的列表可以使用以下命令:

>adb shell dumpsys -l

Currently running services:
AutoLaunch
DockObserver
SurfaceFlinger
accessibility
account
activity
alarm
alipayservice
android.App6939Service
android.hardware.fingerprint.IFingerprintDaemon
android.security.keystore
appops
appwidget
audio
backup
battery

...

几个常用的命令:

adb shell dumpsys display #获取显示相关信息,可以从中提取分辨率信息

adb shell dumpsys cpuinfo #获取CPU信息

adb shell dumpsys meminfo #获取内存信息
adb shell dumpsys meminfo PACKAGE_NAME #获取具体应用的内存信息 adb shell dumpsys activity #获取activity信息
adb shell dumpsys activity top #获取当前界面的UI信息
adb shell dumpsys activity top | findstr ACTIVITY #获取当前界面的activity adb shell dumpsys wifi #获取wifi信息 adb shell dumpsys power #获取电源管理信息,可以获取到是否处于锁屏状态:mWakefulness=Asleep或者Awake

接下来主要介绍下telephony.registry服务,这个服务是关于无线通讯的,可以从中获取无线通讯相关的参数。执行命令得到如下输出:

>adb shell dumpsys telephony.registry

last known state:
Phone Id=0 #双卡终端中的第一个卡
mCallState=0 #0表示待机状态、1表示来电未接听状态、2表示电话占线状态
mCallIncomingNumber=

mServiceState=0 0 voice home data home CMCC CMCC 46000 CMCC CMCC 46000 LTE LTE CSS not supported -1 -1 RoamInd=-1 DefRoamInd=-1 EmergOnly=false IsDataRoamingFromRegistration=false

mSignalStrength=SignalStrength: 99 0 -120 -160 -120 -1 -1 17 -113 -15 -40 2147483647 2147483647 gsm|lte

mMessageWaiting=false

mCallForwarding=false #是否启用呼叫转移
mDataActivity=0

mDataConnectionState=2
#0:无数据连接 1:正在创建数据连接 2:已连接
mDataConnectionPossible=true
#是否有数据连接
mDataConnectionReason=dataAttached

mDataConnectionApn=

mDataConnectionLinkProperties=null

mDataConnectionNetworkCapabilities=null

mCellLocation=Bundle[mParcelledData.dataSize=64]

mCellInfo=null

Phone Id=1

mCallState=0

mCallIncomingNumber=

...

除了以上注释外,接下来主要解读两个字段:mServiceState和mSignalStrength。从源码可以看出是直接打印出了类ServiceState和SignalStrength的内容:

private SignalStrength mSignalStrength = new SignalStrength();

...

        pw.println("last known state:");
...
pw.println(" mServiceState=" + mServiceState);
pw.println(" mSignalStrength=" + mSignalStrength);
...

ServiceState类的内容输出格式可以查看源代码https://github.com/android/platform_frameworks_base/blob/master/telephony/java/android/telephony/ServiceState.java

(搜索”toString”函数):

    @Override
public String toString() {
String radioTechnology = rilRadioTechnologyToString(mRilVoiceRadioTechnology);
String dataRadioTechnology = rilRadioTechnologyToString(mRilDataRadioTechnology); return (mVoiceRegState + " " + mDataRegState
+ " "
+ "voice " + getRoamingLogString(mVoiceRoamingType)
+ " "
+ "data " + getRoamingLogString(mDataRoamingType)
+ " " + mVoiceOperatorAlphaLong
+ " " + mVoiceOperatorAlphaShort
+ " " + mVoiceOperatorNumeric
+ " " + mDataOperatorAlphaLong
+ " " + mDataOperatorAlphaShort
+ " " + mDataOperatorNumeric
+ " " + (mIsManualNetworkSelection ? "(manual)" : "")
+ " " + radioTechnology
+ " " + dataRadioTechnology
+ " " + (mCssIndicator ? "CSS supported" : "CSS not supported")
+ " " + mNetworkId
+ " " + mSystemId
+ " RoamInd=" + mCdmaRoamingIndicator
+ " DefRoamInd=" + mCdmaDefaultRoamingIndicator
+ " EmergOnly=" + mIsEmergencyOnly
+ " IsDataRoamingFromRegistration=" + mIsDataRoamingFromRegistration);
}

如此一来,mServiceState=0 0 voice home data home CMCC CMCC 46000 CMCC CMCC 46000 LTE LTE CSS not supported -1 -1 RoamInd=-1 DefRoamInd=-1 EmergOnly=false IsDataRoamingFromRegistration=false 中各个字段的意义便一目了然了。

同样,SignalStrength类也可以找到“toString”源码:

    /**
* @return string representation.
*/
@Override
public String toString() {
return ("SignalStrength:"
+ " " + mGsmSignalStrength
+ " " + mGsmBitErrorRate
+ " " + mCdmaDbm
+ " " + mCdmaEcio
+ " " + mEvdoDbm
+ " " + mEvdoEcio
+ " " + mEvdoSnr
+ " " + mLteSignalStrength
+ " " + mLteRsrp
+ " " + mLteRsrq
+ " " + mLteRssnr
+ " " + mLteCqi
+ " " + mTdScdmaRscp
+ " " + (isGsm ? "gsm|lte" : "cdma"));
}

从mSignalStrength=SignalStrength: 99 0 -120 -160 -120 -1 -1 17 -113 -15 -40 2147483647 2147483647 gsm|lte,可看出RSRP=-113,RSRQ=-15等等。

dumpsys命令的使用及telephony.registry解读的更多相关文章

  1. Android dumpsys命令的使用

    Android提供的dumpsys工具能够用于查看手机中的应用程序和系统服务信息与状态,手机连接电脑后能够直接命令行运行adb shell dumpsys 查看全部支持的Service可是这样输出的太 ...

  2. 【转】adb shell dumpsys 命令

    adb shell dumpsys,默认打印出当前系统所有service信息,在后面可加上具体的服务名 需要列出当前运行的服务,可运行: adb shell dumpsys | findstr DUM ...

  3. getprop 与 dumpsys 命令

    Android 设备连接 PC 后,我们可以通过 adb 命令完成绝大多数工作.下面借助 getprop.dumpsys 来了解一些系统相关信息. 一.getprop 此命令的原理很简单,就是从系统的 ...

  4. android中dumpsys命令使用

    转自:https://testerhome.com/topics/1462 adb shell dumpsys,默认打印出当前系统所有service信息,在后面可加上具体的服务名 需要列出当前运行的服 ...

  5. Android dumpsys命令详细使用

    一.dumpsys命令介绍 1.命令说明 Dumpsys用户系统诊断,它运行在设备上,并提供系统服务状态信息 命令格式: adb shell dumpsys [system serbices] 2.系 ...

  6. getprop与dumpsys命令

    拿到Android手机以后, 想查看一些手机信息. 其实Android获取手机信息就是两个命令, 一个是getprop 一个是dumpsys. dumpsys iphonesubinfo Phone ...

  7. adb shell dumpsys 命令 查看内存

    android程序内存被分为2部分:native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是 n ...

  8. adb shell dumpsys 命令

    Android开发中,常常可以用adb shell dumpsys这条命令来dump出系统运行时的状态信息,例如可以这样来察看某个应用的内存使用信息 adb shell dumpsys meminfo ...

  9. Android Shell命令dumpsys

    dumpsys命令可以显示手机中所有应用程序的信息,并且也会给出现在手机的状态. 直接执行adb shell dumpsys KEY 会显示以下所有信息. KEY的可选名称 SurfaceFlinge ...

随机推荐

  1. gdb: multiple process debug

    gdbserver自身不支持multiple process:如果你调试parent process时在子进程上下断点,子进程在运行到那个断点时就会SIGTRAP. 如果你要调试fork出来的子进程: ...

  2. php时间日期处理

    php日期函数: 首先想到的就是date(),time(),strtotime(),mktime() strtotime() strtotime()函数用于将英文文本字符串表示的日期转换为时间戳,为 ...

  3. web几个高性能框架的简单测试

    参考的这里 压测工具 wrk -t16 -c100 -d30s http://127.0.0.1:8080/rest/hello 测试代码 package main import ( "st ...

  4. phpize的安装

    一直想装VLD却一直没装上,因为需要用到phpize,但这个工具大部分机子都没有装,上网搜了一下大部分都是讲phpize的应用没有讲怎么安装. 今天终于搜到了,不过是要在linux机器上,有yum命令 ...

  5. 在DataList、Repeater的HeaderTemplate和FooterTemplate模板中寻找控件FindControl

    [程序代码] <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> ...

  6. BEvent_标准控件Event的用法(案例)(待整理)

    2014-06-06 Created By BaoXinjian

  7. 2016 Multi-University Training Contest 5 Divide the Sequence

    Divide the Sequence 题意: 给你一个序列A,问你最多能够分成多少个连续子序列,使得每个子序列的所有前缀和均不小于0 题解: 这题是比赛时候的水题,但我比的时候也就做出这一题, = ...

  8. python (10) 文件夹的创建与文件夹的删除

    有时需要在代码中对文件或者文件夹 进行删除,或者添加 导入的包:import os,shutil 新建文件夹 import os,shutil path = os.getcwd() #获得当前目录 # ...

  9. REST架构实质(转)

    REST(Representational State Transfer) 曾经被误解为只是CRUD(增删改查),从这个层面上,好像REST只是和RPC一个层面的东西,没有什么了不起,其实这些都是对R ...

  10. (转)linux中fork()函数详解

    一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同, ...