dumpsys命令的使用及telephony.registry解读

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等等。

时间: 2024-07-31 11:45:47

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

dumpsys 命令使用

博客地址:http://blog.csdn.net/droyon/article/details/45622037 dumpsys 常用操作以及实现的来龙去脉. 一,常用操作: 1,在Activity中,可重写dump函数,实现打印,可通过如下命令获取输出: adb shell dumpsys activity <activity_component_name> 2,在Service的子类中,可重写dump函数,使用如下命令实现命令输出: adb shell dumpsys activity

Android dumpsys命令的使用

Android提供的dumpsys工具能够用于查看手机中的应用程序和系统服务信息与状态,手机连接电脑后能够直接命令行运行adb shell dumpsys 查看全部支持的Service可是这样输出的太多,能够通过dumpsys | grep "DUMP OF SERVICE" 仅显示基本的Service的信息.关于这个命令的用法在这里做一下记录,以备使用. 1.dumpsys支持的全部命令 输入: adb shell dumpsys | grep DUMP 或 adb shell du

Android实战技巧之十六:getprop与dumpsys命令

Android设备连接PC后,我们可以通过adb命令完成绝大多数工作.下面借助getprop.dumpsys来了解一些系统相关信息. 一.getprop 此命令的原理很简单,就是从系统的各种配置文件中读取信息.那么这些文件在你用adb shell进入设备内部后很容易找到,它们是: init.rc default.prop /system/build.prop 此时直接使用cat命令也是可以把这些信息显示出来的. 下面列出比较常用的信息 1.获得IP $ adb shell getprop dhc

adb shell dumpsys 命令

Android开发中,常常可以用adb shell dumpsys这条命令来dump出系统运行时的状态信息,例如可以这样来察看某个应用的内存使用信息 adb shell dumpsys meminfo com.google.android.apps.maps 察看TaskStack adb shell dumpsys activity activities 察看Alarm列表 adb shell dumpsys alarm 在CMD下面输入以下命令: adb shell dumpsys acti

通过adb shell dumpsys命令获取当前应用的component

分类: adb2014-06-22 01:24 837人阅读 评论(0) 收藏 举报 androidadb测试monkeyrunnerpython 在android测试中,经常需要知道启动一个Activity所需要的component,例如在monkeyrunner中启动一个系统设置:startActivity(component="com.android.settings/com.android.settings.Settings"),那如何获取该component 呢? 有如下方法

Android dumpsys命令详细使用

一.dumpsys命令介绍 1.命令说明 Dumpsys用户系统诊断,它运行在设备上,并提供系统服务状态信息 命令格式: adb shell dumpsys [system serbices] 2.系统服务查询 如果直接运行adb shell dumpsys,将会获得所有的系统服务信息,那是非常多的,为了更容易管理输出,可以指定你想要检查的服务,例如: adb shell dumpsys –l adb shell serverce list #都是查看有哪些系统服务(需要哪些服务就指定哪些服务)

adb shell dumpsys 命令 查看内存

http://blog.csdn.net/xyz_lmn/article/details/7001892 android程序内存被分为2部分:native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是 native+dalvik 不能超过最大限制.android程序内存一般限制在16M,当然也有24M的. 用以下命令可以查看程序的内存使用情况: adb shell dumpsys meminfo

Android dumpsys 命令

1.查看内存 adb shell dumpsys meminfo $package_name or $pid 获取Total,  dumpsys meminfo com.huawei.systemserver | grep ”TOTAL:“ | awk '{TOTAL = $2}END{print TOTAL}' dumpsys meminfo com.huawei.systemserver |grep "TOTAL SWAP PSS" | awk -F ' '  "{pri

Android Shell命令dumpsys

dumpsys命令可以显示手机中所有应用程序的信息,并且也会给出现在手机的状态. 直接执行adb shell dumpsys KEY 会显示以下所有信息. KEY的可选名称 SurfaceFlinger, accessibility, account, activity, alarm, appwidget, audio, backup, battery, batteryinfo, bluetooth, bluetooth_a2dp, clipboard, connectivity, conten