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