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. HackerRank "Dorsey Thief"

    A variation to 0-1 Knapsack. (No Python code got fully AC. Python is too slow for this problem) #inc ...

  2. Add 1G to a LVM on VMware

    1. update disk1 to 5G from 4G in vcenter2. echo 1 > /sys/block/sda/device/rescan3. fdisk /dev/sda ...

  3. Winfrom DateGridView 实现Button列禁用

    Form窗体如下所示: 实现如下: using System; using System.Collections.Generic; using System.Drawing; using System ...

  4. php的函数iconv在转"utf-8"到"gb2312"时会自动截断

    最近在写网站后台时候,需要用到iconv函数把前端jquery Post来过的utf-8编码内容转成gb2312, 发现只有用iconv函数把内容的数据一转码数据就会无缘无故的少了一部分.   问了我 ...

  5. Win7+VMware Workstation环境下的CentOS-Linux网络连接设置

    Win7+VMware Workstation环境下的CentOS-Linux网络连接设置 http://blog.sciencenet.cn/blog-430991-507041.html   近日 ...

  6. mysql处理上百万条的数据库如何优化语句来提高处理查询效率

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  7. js中如何操作json数据

    一.要想熟练的操作json数据,就先要了解json数据的结构,json有两种结构:对象和数组. 1.对象 一个对象以“{”开始,“}”结束.每个“名称”后跟一个“:”:“‘名称/值’ 对”之间使用“, ...

  8. emacs设置代理访问插件仓库

    下面这个配置适合ss (setq url-gateway-method 'socks)(setq socks-server '("Default server" "127 ...

  9. 使用PHP得到所有的HTTP请求头_还有应答头

    1)如何获取 客户端请求的头部 参考网站: http://www.neatstudio.com/show-377-1.shtml PHP中一般采用getallheaders来获取头部,但事实上,有些模 ...

  10. wireshark1.8捕获无线网卡的数据包——找不到无线网卡!

    问题说明:奇怪的是,我线网卡明明有的,是interl的型号,可是wireshark总是找不到,如下: 奇了怪了,没有!原来是如下的: 实际上这块无线网卡是存在的,只不过由于兼容或驱动的原因无法显示型号 ...