Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)

admin 2022年5月8日15:37:24评论197 views字数 45312阅读151分2秒阅读模式


欢迎扫码关注哆啦安全视频号

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


一、Android Log系列日志获取

Android四类log buffer是main、radio、system、events

logcat

adb wait-for-device logcat  adb logcat -v time > logcat.txt   //默认是-b main -b systemadb logcat -v time -b main        //main logadb logcat -v time -b radio       //radio logadb logcat -v time -b system      //system logadb logcat -v time -b eventsadb logcat -v time -b crash


events log

adb logcat -v threadtime -b events


anr log

adb pull /data/anr


crash log

adb logcat -v time -b crash


tombstone log

adb pull /data/tombstones


dropbox log

adb pull /data/system/dropbox


core log

adb pull  /data/log/core


开机log

adb shell dmesg > dmesg.txt


logcatch

adb pull /data/logcatch


qxdm log

adb pull /sdcard/logs


hprof log

在分析app时,通常需要分析app的java heap信息,如分析java的memory leak, 追查heap中相关变量情况等

在Android 中抓取app的hprof操作方式

使用am命令

adb shell am dumpheap {Process} file
adb shell am dumpheap com.android.phone /data/anr/phone.hprofadb pull /data/anr/phone.hprof


使用DDMS命令

在DDMS中选择对应的process, 然后在Devices按钮栏中选择Dump Hprof file,保存即可


通过代码的方式

android.os.Debug这个class中有定义相关的抓取hprof的method

public static void dumpHprofData(String fileName) throws IOException;


可以先获取IActivityManager接口,然后调用它的dumpheap方法

frameworks/base/cmds/am/src/com/android/commands/am/am.java

抓取回hprof后,就可以用hprof-conv命令将DVM 格式的hprof转换成标准的java命令的hprof

  hprof-conv in.hprof out.hprof

然后使用如MAT之类的工具进行具体的分析


bugreport

adb bugreport > bugreport.txt


kernel log

adb shellcat proc/kmsg > kmsg.txt


各类信息(如:进程信息,内存信息,进程是否异常,kernnel的log等)

adb shell dumpstate

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


adb shell dumpcrashadb shell dumpsys


二、Android adb命令大全

清除应用数据与缓存

adb shell pm clear <packagename>


查看顶部Activity

adb shell dumpsys activity | findstr "mFocusedActivity"


查看正在运行的Services

adb shell dumpsys activity services [<packagename>]


应用管理

查看应用列表

adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]


在adb shell pm list packages的基础上可以加一些参数进行过滤查看不同的列表,如下所示:

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


所有应用

查看手机端安装的所有app包名

adb shell pm list packages


系统应用

adb shell pm list packages -s


第三方应用

adb shell pm list packages -3


包名包含某字符串的应用

查看包名包含字符串per的应用列表

adb shell pm list packages per


当然也可以使用grep来过滤

adb shell pm list packages | grep per


安装APK

adb install [-lrtsdg] <path_to_apk>

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


查看应用安装路径

adb shell pm path <PACKAGE>


模拟按键/输入

adb shell input keyevent <keycode>https://developer.android.com/reference/android/view/KeyEvent

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)

HOME键adb shell input keyevent 3


事件输入

使用adb shell input命令向屏幕输入一些信息(%s表示空格)

adb shell input text "insert%stext%shere"


使用adb shell input tap命令来模拟屏幕点击事件

adb shell input tap 500 1450

表示在屏幕上(500,1450)的坐标点上进行一次点击


使用adb shell input swipe命令来模拟手势滑动事件

adb shell input swipe 100 500 100 1450 100

表示从屏幕坐标(100,500)开始,滑动到(100,1450)结束,整个过程耗时100ms


使用adb shell input keyevent命令来模拟点按实体按钮的命令

adb shell input keyevent 25

该命令表示调低音量。数字25是在AOSP源码中的KeyEvent类里定义的一个事件常量。该类定义了将近300个事件常量


事件输出

dumpsys命令可以提供非常多的系统信息。可以通过adb shell service list来查看dumpsys能提供查询信息的服务,常用的如下所示:

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


http://aospxref.com/http://androidxref.com/
WHAT                             解释                        对应的源码1  a[ctivities]                  activity状态                dumpActivitiesLocked()2  b[roadcasts] [PACKAGE_NAME]   broadcast状态               dumpBroadcastsLocked()3  s[ervices] [COMP_SPEC …]      service状态                 newServiceDumperLocked().dumpLocked4  prov[iders] [COMP_SPEC …]     content provider状态        dumpProwevidersLocked()5  p[rocesses]   [PACKAGE_NAME]  进程状态                    dumpProcessesLocked()6  o[om]                         内存管理                    dumpOomLocked()7  i[ntents] [PACKAGE_NAME]      pending intent状态          dumpPendingIntentsLocked()8  r[ecents]                     最近                        activitydumpRecentsLocked()  9  perm[issions]                 URI授权情况                 dumpPermissionsLocked()10 all所有                       activities信息              dumpActivity()11 top                           顶部activity信息            dumpActivity()12 package                       package相关信息             dump()


adb shell dumpsys activityadb shell dumpsys packageadb shell dumpsys windowadb shell dumpsys inputadb shell dumpsys poweradb shell dumpsys procstatsadb shell dumpsys batteryadb shell dumpsys alarmadb shell dumpsys meminfo


adb shell dumpsys activity intentsadb shell dumpsys activity broadcastsadb shell dumpsys activity providersadb shell dumpsys activity permissionsadb shell dumpsys activity servicesadb shell dumpsys activity recentsadb shell dumpsys activity activitiesadb shell dumpsys activity processes


adb shell dumpsys activity services
ACTIVITY MANAGER SERVICES (dumpsys activity services)  User 0 active services:  * ServiceRecord{5262c97 u0 com.android.bluetooth/.hid.HidService}    intent={act=android.bluetooth.IBluetoothInputDevice cmp=com.android.bluetooth/.hid.HidService}    packageName=com.android.bluetooth    processName=com.android.bluetooth    baseDir=/system/app/Bluetooth/Bluetooth.apk    dataDir=/data/user_de/0/com.android.bluetooth    app=null    createTime=-35m26s683ms startingBgTimeout=--    lastActivity=-35m26s683ms restartTime=-- createdFromFg=true    Bindings:    * IntentBindRecord{d58cf92}:      intent={act=android.bluetooth.IBluetoothInputDevice cmp=com.android.bluetooth/.hid.HidService}      binder=null      requested=false received=false hasBound=false doRebind=false      * Client AppBindRecord{afb0d63 ProcessRecord{320a2da 928:com.android.systemui/u0a32}}        Per-process Connections:          ConnectionRecord{2a05e8 u0 com.android.bluetooth/.hid.HidService:@51ff30b}    All Connections:      ConnectionRecord{2a05e8 u0 com.android.bluetooth/.hid.HidService:@51ff30b}
* ServiceRecord{569cbfc u0 com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService} intent={act=android.nfc.cardemulation.action.HOST_APDU_SERVICE cmp=com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService} packageName=com.tencent.mm processName=com.tencent.mm permission=android.permission.BIND_NFC_SERVICE baseDir=/data/app/com.tencent.mm-1/base.apk dataDir=/data/user/0/com.tencent.mm app=ProcessRecord{e381568 1767:com.tencent.mm/u0a71} createTime=-35m22s823ms startingBgTimeout=-- lastActivity=-35m22s770ms restartTime=-35m22s770ms createdFromFg=true Bindings: * IntentBindRecord{88b0d60 CREATE}: intent={act=android.nfc.cardemulation.action.HOST_APDU_SERVICE cmp=com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService} binder=android.os.BinderProxy@9882219 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{1b052de ProcessRecord{44db82 1596:com.android.nfc/1027}} Per-process Connections: ConnectionRecord{86a52d0 u0 CR com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService:@bf4293} All Connections: ConnectionRecord{86a52d0 u0 CR com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService:@bf4293}
* ServiceRecord{2557d19 u0 org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent} intent={cmp=org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent} packageName=org.mokee.profiles processName=org.mokee.profiles permission=android.permission.BIND_TRUST_AGENT baseDir=/system/app/Profiles/Profiles.apk dataDir=/data/user/0/org.mokee.profiles app=ProcessRecord{6a12e84 3705:org.mokee.profiles/u0a54} createTime=-13m0s880ms startingBgTimeout=-- lastActivity=-13m0s848ms restartTime=-13m0s848ms createdFromFg=true Bindings: * IntentBindRecord{7071cbf CREATE}: intent={cmp=org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent} binder=android.os.BinderProxy@3839f8c requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{befc6d5 ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{28efcf4 u0 CR FGS org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent:@5696ec7} All Connections: ConnectionRecord{28efcf4 u0 CR FGS org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent:@5696ec7}
* ServiceRecord{9d40554 u0 com.sohu.inputmethod.sogou/.SogouIME} intent={act=android.view.InputMethod cmp=com.sohu.inputmethod.sogou/.SogouIME} packageName=com.sohu.inputmethod.sogou processName=com.sohu.inputmethod.sogou permission=android.permission.BIND_INPUT_METHOD baseDir=/data/app/com.sohu.inputmethod.sogou-1/base.apk dataDir=/data/user/0/com.sohu.inputmethod.sogou app=ProcessRecord{a82d438 3747:com.sohu.inputmethod.sogou/u0a83} createTime=-12m58s596ms startingBgTimeout=-- lastActivity=-12m58s541ms restartTime=-12m58s541ms createdFromFg=true Bindings: * IntentBindRecord{16abeea CREATE}: intent={act=android.view.InputMethod cmp=com.sohu.inputmethod.sogou/.SogouIME} binder=android.os.BinderProxy@39ac5db requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{3912878 ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{7740166 u0 CR !FG UI !VIS com.sohu.inputmethod.sogou/.SogouIME:@13ad5c1} All Connections: ConnectionRecord{7740166 u0 CR !FG UI !VIS com.sohu.inputmethod.sogou/.SogouIME:@13ad5c1}
* ServiceRecord{ad614d2 u0 com.android.email/.service.LegacyImapSyncAdapterService} intent={cmp=com.android.email/.service.LegacyImapSyncAdapterService} packageName=com.android.email processName=com.android.email baseDir=/system/app/Email/Email.apk dataDir=/data/user/0/com.android.email app=ProcessRecord{7aba4ed 2090:com.android.email/u0a59} createTime=-35m17s70ms startingBgTimeout=-35m2s61ms lastActivity=-35m17s7ms restartTime=-35m17s70ms createdFromFg=false startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=3
* ServiceRecord{8956eac u0 com.android.systemui/.keyguard.KeyguardService} intent={cmp=com.android.systemui/.keyguard.KeyguardService} packageName=com.android.systemui processName=com.android.systemui baseDir=/system/priv-app/SystemUI/SystemUI.apk dataDir=/data/user_de/0/com.android.systemui app=ProcessRecord{320a2da 928:com.android.systemui/u0a32} createTime=-35m29s59ms startingBgTimeout=-- lastActivity=-35m27s887ms restartTime=-35m29s21ms createdFromFg=true Bindings: * IntentBindRecord{3f2fb51 CREATE}: intent={cmp=com.android.systemui/.keyguard.KeyguardService} binder=android.os.BinderProxy@8addfb6 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{8f5e4b7 ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{7b002a u0 CR com.android.systemui/.keyguard.KeyguardService:@7f4515} ConnectionRecord{a908dbd u0 CR com.android.systemui/.keyguard.KeyguardService:@d311114} All Connections: ConnectionRecord{7b002a u0 CR com.android.systemui/.keyguard.KeyguardService:@7f4515} ConnectionRecord{a908dbd u0 CR com.android.systemui/.keyguard.KeyguardService:@d311114}
* ServiceRecord{e95e392 u0 projekt.substratum/.services.binder.InterfacerBinderService} intent={cmp=projekt.substratum/.services.binder.InterfacerBinderService} packageName=projekt.substratum processName=projekt.substratum baseDir=/system/app/Substratum/Substratum.apk dataDir=/data/user/0/projekt.substratum app=ProcessRecord{33f7345 2379:projekt.substratum/u0a61} createTime=-35m15s116ms startingBgTimeout=-35m0s115ms lastActivity=-35m15s116ms restartTime=-35m15s116ms createdFromFg=false startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{43853a8 u0 projekt.interfacer/.services.JobService} intent={act=projekt.interfacer.INITIALIZE pkg=projekt.interfacer} packageName=projekt.interfacer processName=projekt.interfacer permission=projekt.interfacer.permission.ACCESS_SERVICE baseDir=/system/priv-app/ThemeInterfacer/ThemeInterfacer.apk dataDir=/data/user/0/projekt.interfacer app=ProcessRecord{97b92a2 2406:projekt.interfacer/1000} createTime=-35m15s9ms startingBgTimeout=-- lastActivity=-35m14s960ms restartTime=-35m14s960ms createdFromFg=false Bindings: * IntentBindRecord{8ec5424 CREATE}: intent={act=projekt.interfacer.INITIALIZE pkg=projekt.interfacer} binder=android.os.BinderProxy@61afb8d requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{e304142 ProcessRecord{33f7345 2379:projekt.substratum/u0a61}} Per-process Connections: ConnectionRecord{fe3dfcb u0 CR projekt.interfacer/.services.JobService:@3814a9a} All Connections: ConnectionRecord{fe3dfcb u0 CR projekt.interfacer/.services.JobService:@3814a9a}
* ServiceRecord{e50345f u0 com.android.systemui/.ImageWallpaper} intent={act=android.service.wallpaper.WallpaperService cmp=com.android.systemui/.ImageWallpaper} packageName=com.android.systemui processName=com.android.systemui permission=android.permission.BIND_WALLPAPER baseDir=/system/priv-app/SystemUI/SystemUI.apk dataDir=/data/user_de/0/com.android.systemui app=ProcessRecord{320a2da 928:com.android.systemui/u0a32} createTime=-35m29s91ms startingBgTimeout=-- lastActivity=-35m28s542ms restartTime=-35m29s23ms createdFromFg=true Bindings: * IntentBindRecord{97a1553 CREATE}: intent={act=android.service.wallpaper.WallpaperService cmp=com.android.systemui/.ImageWallpaper} binder=android.os.BinderProxy@cac8e90 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{c48c389 ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{b7f3ffc u0 CR FGSA UI com.android.systemui/.ImageWallpaper:@a8438ef} All Connections: ConnectionRecord{b7f3ffc u0 CR FGSA UI com.android.systemui/.ImageWallpaper:@a8438ef}
* ServiceRecord{b7ad94 u0 com.android.systemui/.doze.DozeService} intent={act=android.service.dreams.DreamService cmp=com.android.systemui/.doze.DozeService} packageName=com.android.systemui processName=com.android.systemui permission=android.permission.BIND_DREAM_SERVICE baseDir=/system/priv-app/SystemUI/SystemUI.apk dataDir=/data/user_de/0/com.android.systemui app=ProcessRecord{320a2da 928:com.android.systemui/u0a32} createTime=-9m35s259ms startingBgTimeout=-- lastActivity=-9m35s259ms restartTime=-9m35s259ms createdFromFg=true Bindings: * IntentBindRecord{b852f8e CREATE}: intent={act=android.service.dreams.DreamService flg=0x800000 cmp=com.android.systemui/.doze.DozeService} binder=android.os.BinderProxy@206b3af requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{ff403bc ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{939fde7 u0 CR FGS com.android.systemui/.doze.DozeService:@a5adfa6} All Connections: ConnectionRecord{939fde7 u0 CR FGS com.android.systemui/.doze.DozeService:@a5adfa6}
* ServiceRecord{b96fb33 u0 com.android.bluetooth/.pbap.BluetoothPbapService} intent={act=android.bluetooth.IBluetoothPbap cmp=com.android.bluetooth/.pbap.BluetoothPbapService} packageName=com.android.bluetooth processName=com.android.bluetooth baseDir=/system/app/Bluetooth/Bluetooth.apk dataDir=/data/user_de/0/com.android.bluetooth app=null createTime=-35m26s676ms startingBgTimeout=-- lastActivity=-35m26s676ms restartTime=-- createdFromFg=true Bindings: * IntentBindRecord{3710f45}: intent={act=android.bluetooth.IBluetoothPbap cmp=com.android.bluetooth/.pbap.BluetoothPbapService} binder=null requested=false received=false hasBound=false doRebind=false * Client AppBindRecord{e28b69a ProcessRecord{320a2da 928:com.android.systemui/u0a32}} Per-process Connections: ConnectionRecord{4659239 u0 com.android.bluetooth/.pbap.BluetoothPbapService:@ef5aa00} All Connections: ConnectionRecord{4659239 u0 com.android.bluetooth/.pbap.BluetoothPbapService:@ef5aa00}
* ServiceRecord{666562e u0 com.mokee.aegis/.service.ManageHibernateService} intent={cmp=com.mokee.aegis/.service.ManageHibernateService} packageName=com.mokee.aegis processName=com.mokee.aegis baseDir=/system/priv-app/Aegis/Aegis.apk dataDir=/data/user/0/com.mokee.aegis app=ProcessRecord{c44aef0 2295:com.mokee.aegis/1000} createTime=-35m15s808ms startingBgTimeout=-35m0s807ms lastActivity=-35m15s808ms restartTime=-35m15s808ms createdFromFg=false startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{ab59ca2 u0 com.tencent.mm/.booter.CoreService} intent={cmp=com.tencent.mm/.booter.CoreService} packageName=com.tencent.mm processName=com.tencent.mm:push baseDir=/data/app/com.tencent.mm-1/base.apk dataDir=/data/user/0/com.tencent.mm app=ProcessRecord{b46c608 2397:com.tencent.mm:push/u0a71} createTime=-35m13s601ms startingBgTimeout=-34m58s598ms lastActivity=-5m11s488ms restartTime=-35m13s601ms createdFromFg=false startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=5 Bindings: * IntentBindRecord{414dbcb CREATE}: intent={cmp=com.tencent.mm/.booter.CoreService} binder=android.os.BinderProxy@1db9fa8 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{9185ac1 ProcessRecord{e381568 1767:com.tencent.mm/u0a71}} Per-process Connections: ConnectionRecord{310f22c u0 CR com.tencent.mm/.booter.CoreService:@a4195df} All Connections: ConnectionRecord{310f22c u0 CR com.tencent.mm/.booter.CoreService:@a4195df}
* ServiceRecord{42bcc69 u0 com.android.bluetooth/.a2dp.A2dpService} intent={act=android.bluetooth.IBluetoothA2dp cmp=com.android.bluetooth/.a2dp.A2dpService} packageName=com.android.bluetooth processName=com.android.bluetooth baseDir=/system/app/Bluetooth/Bluetooth.apk dataDir=/data/user_de/0/com.android.bluetooth app=null createTime=-35m29s59ms startingBgTimeout=-- lastActivity=-35m29s59ms restartTime=-- createdFromFg=true Bindings: * IntentBindRecord{d4ba266}: intent={act=android.bluetooth.IBluetoothA2dp cmp=com.android.bluetooth/.a2dp.A2dpService} binder=null requested=false received=false hasBound=false doRebind=false * Client AppBindRecord{59369a7 ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{a03eb03 u0 com.android.bluetooth/.a2dp.A2dpService:@7ea1fb2} All Connections: ConnectionRecord{a03eb03 u0 com.android.bluetooth/.a2dp.A2dpService:@7ea1fb2}
* ServiceRecord{603751d u0 com.qualcomm.qcrilmsgtunnel/.QcrilMsgTunnelService} intent={cmp=com.qualcomm.qcrilmsgtunnel/.QcrilMsgTunnelService} packageName=com.qualcomm.qcrilmsgtunnel processName=com.qualcomm.qcrilmsgtunnel permission=com.qualcomm.permission.USE_QCRIL_MSG_TUNNEL baseDir=/system/app/qcrilmsgtunnel/qcrilmsgtunnel.apk dataDir=/data/user/0/com.qualcomm.qcrilmsgtunnel app=ProcessRecord{12436ee 2341:com.qualcomm.qcrilmsgtunnel/1001} createTime=-35m15s507ms startingBgTimeout=-35m0s506ms lastActivity=-35m15s507ms restartTime=-35m15s507ms createdFromFg=false startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{460b775 u0 com.android.systemui/.SystemUIService} intent={cmp=com.android.systemui/.SystemUIService} packageName=com.android.systemui processName=com.android.systemui baseDir=/system/priv-app/SystemUI/SystemUI.apk dataDir=/data/user_de/0/com.android.systemui app=ProcessRecord{320a2da 928:com.android.systemui/u0a32} createTime=-35m29s5ms startingBgTimeout=-- lastActivity=-35m29s5ms restartTime=-35m29s5ms createdFromFg=true startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{7dd919d u0 com.tencent.mm/.service.ProcessService$MMProcessService} intent={cmp=com.tencent.mm/.service.ProcessService$MMProcessService} packageName=com.tencent.mm processName=com.tencent.mm baseDir=/data/app/com.tencent.mm-1/base.apk dataDir=/data/user/0/com.tencent.mm app=ProcessRecord{e381568 1767:com.tencent.mm/u0a71} createTime=-35m19s435ms startingBgTimeout=-- lastActivity=-35m19s431ms restartTime=-35m19s435ms createdFromFg=true startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1 Bindings: * IntentBindRecord{81f0e54 CREATE}: intent={cmp=com.tencent.mm/.service.ProcessService$MMProcessService} binder=android.os.BinderProxy@48ee1fd requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{5f7ef2 ProcessRecord{e381568 1767:com.tencent.mm/u0a71}} Per-process Connections: ConnectionRecord{6af41e3 u0 CR com.tencent.mm/.service.ProcessService$MMProcessService:@8230612} All Connections: ConnectionRecord{6af41e3 u0 CR com.tencent.mm/.service.ProcessService$MMProcessService:@8230612}
* ServiceRecord{913ecaf u0 android/.hardware.location.GeofenceHardwareService} intent={cmp=android/.hardware.location.GeofenceHardwareService} packageName=android processName=system permission=android.permission.LOCATION_HARDWARE baseDir=/system/framework/framework-res.apk dataDir=null app=ProcessRecord{6645015 791:system/1000} createTime=-35m28s352ms startingBgTimeout=-- lastActivity=-35m28s351ms restartTime=-35m28s351ms createdFromFg=true Bindings: * IntentBindRecord{282f943 CREATE}: intent={cmp=android/.hardware.location.GeofenceHardwareService} binder=android.hardware.location.GeofenceHardwareService$1@688bbc0 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{7eca0f9 ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{80fac8e u0 CR android/.hardware.location.GeofenceHardwareService:@4ab1489} All Connections: ConnectionRecord{80fac8e u0 CR android/.hardware.location.GeofenceHardwareService:@4ab1489}
* ServiceRecord{c5cee7 u0 com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService} intent={act=com.sogou.udp.push.IConfigRetriever cmp=com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService} packageName=com.sohu.inputmethod.sogou processName=com.sohu.inputmethod.sogou:push_service baseDir=/data/app/com.sohu.inputmethod.sogou-1/base.apk dataDir=/data/user/0/com.sohu.inputmethod.sogou app=ProcessRecord{ceba3c4 4158:com.sohu.inputmethod.sogou:push_service/u0a83} createTime=-10m54s896ms startingBgTimeout=-- lastActivity=-8m54s503ms restartTime=-10m54s844ms createdFromFg=false startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=2 Bindings: * IntentBindRecord{262983e CREATE}: intent={act=com.sogou.udp.push.IConfigRetriever cmp=com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService} binder=android.os.BinderProxy@c51e69f requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{11dd3ec ProcessRecord{a82d438 3747:com.sohu.inputmethod.sogou/u0a83}} Per-process Connections: ConnectionRecord{65f54a6 u0 CR com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService:@2be6e01} All Connections: ConnectionRecord{65f54a6 u0 CR com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService:@2be6e01}
* ServiceRecord{530dacf u0 org.mokee.mkaudio.service/.MKAudioService} intent={cmp=org.mokee.mkaudio.service/.MKAudioService} packageName=org.mokee.mkaudio.service processName=org.mokee.mkaudio.service permission=mokee.permission.BIND_CORE_SERVICE baseDir=/system/priv-app/MKAudioService/MKAudioService.apk dataDir=/data/user_de/0/org.mokee.mkaudio.service app=ProcessRecord{f3c178f 1046:org.mokee.mkaudio.service/u0a12} createTime=-35m28s525ms startingBgTimeout=-- lastActivity=-35m28s496ms restartTime=-35m28s496ms createdFromFg=true Bindings: * IntentBindRecord{4cd53b5 CREATE}: intent={cmp=org.mokee.mkaudio.service/.MKAudioService} binder=android.os.BinderProxy@debfa4a requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{2f84dbb ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{58d63ad u0 CR org.mokee.mkaudio.service/.MKAudioService:@5c4c8c4} All Connections: ConnectionRecord{58d63ad u0 CR org.mokee.mkaudio.service/.MKAudioService:@5c4c8c4}
* ServiceRecord{9a08da3 u0 com.android.server.telecom/.components.BluetoothPhoneService} intent={cmp=com.android.server.telecom/.components.BluetoothPhoneService} packageName=com.android.server.telecom processName=system baseDir=/system/priv-app/Telecom/Telecom.apk dataDir=/data/user_de/0/com.android.server.telecom app=ProcessRecord{6645015 791:system/1000} createTime=-35m27s919ms startingBgTimeout=-- lastActivity=-35m27s919ms restartTime=-35m27s919ms createdFromFg=true startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{6edaa94 u0 com.sohu.inputmethod.sogou/com.sogou.udp.push.SGPushMessageService} intent={act=com.sogou.pushservice.action.bind.RECEIVE cmp=com.sohu.inputmethod.sogou/com.sogou.udp.push.SGPushMessageService} packageName=com.sohu.inputmethod.sogou processName=com.sohu.inputmethod.sogou:push_service baseDir=/data/app/com.sohu.inputmethod.sogou-1/base.apk dataDir=/data/user/0/com.sohu.inputmethod.sogou app=ProcessRecord{ceba3c4 4158:com.sohu.inputmethod.sogou:push_service/u0a83} createTime=-10m54s107ms startingBgTimeout=-- lastActivity=-10m54s107ms restartTime=-10m54s107ms createdFromFg=false startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{dbb8a7f u0 com.android.server.telecom/.components.TelecomService} intent={act=com.android.ITelecomService cmp=com.android.server.telecom/.components.TelecomService} packageName=com.android.server.telecom processName=system baseDir=/system/priv-app/Telecom/Telecom.apk dataDir=/data/user_de/0/com.android.server.telecom app=ProcessRecord{6645015 791:system/1000} createTime=-35m29s139ms startingBgTimeout=-- lastActivity=-35m29s139ms restartTime=-35m29s139ms createdFromFg=true Bindings: * IntentBindRecord{50a42d8 CREATE}: intent={act=com.android.ITelecomService cmp=com.android.server.telecom/.components.TelecomService} binder=com.android.server.telecom.TelecomServiceImpl$1@cc7631 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{df77116 ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{75edf9e u0 CR IMP FGS com.android.server.telecom/.components.TelecomService:@959e9d9} All Connections: ConnectionRecord{75edf9e u0 CR IMP FGS com.android.server.telecom/.components.TelecomService:@959e9d9}
* ServiceRecord{d674d6f u0 com.android.smspush/.WapPushManager} intent={act=com.android.internal.telephony.IWapPushManager cmp=com.android.smspush/.WapPushManager} packageName=com.android.smspush processName=com.android.smspush permission=com.android.smspush.WAPPUSH_MANAGER_BIND baseDir=/system/app/WAPPushManager/WAPPushManager.apk dataDir=/data/user/0/com.android.smspush app=ProcessRecord{35dca1c 1684:com.android.smspush/u0a60} createTime=-35m23s185ms startingBgTimeout=-- lastActivity=-35m23s126ms restartTime=-35m23s126ms createdFromFg=true Bindings: * IntentBindRecord{3d40a97 CREATE}: intent={act=com.android.internal.telephony.IWapPushManager cmp=com.android.smspush/.WapPushManager} binder=android.os.BinderProxy@44cb484 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{5c1446d ProcessRecord{52a1cf2 1091:com.android.phone/1001}} Per-process Connections: ConnectionRecord{185184e u0 CR com.android.smspush/.WapPushManager:@7a7d749} ConnectionRecord{caf89c0 u0 CR com.android.smspush/.WapPushManager:@cec3f43} All Connections: ConnectionRecord{185184e u0 CR com.android.smspush/.WapPushManager:@7a7d749} ConnectionRecord{caf89c0 u0 CR com.android.smspush/.WapPushManager:@cec3f43}
* ServiceRecord{f37320b u0 android/com.android.internal.backup.LocalTransportService} intent={act=android.backup.TRANSPORT_HOST cmp=android/com.android.internal.backup.LocalTransportService} packageName=android processName=system permission=android.permission.CONFIRM_FULL_BACKUP baseDir=/system/framework/framework-res.apk dataDir=null app=ProcessRecord{6645015 791:system/1000} createTime=-35m23s537ms startingBgTimeout=-- lastActivity=-35m23s537ms restartTime=-35m23s537ms createdFromFg=true Bindings: * IntentBindRecord{f7188a2 CREATE}: intent={act=android.backup.TRANSPORT_HOST cmp=android/com.android.internal.backup.LocalTransportService} binder=android.app.backup.BackupTransport$TransportImpl@b598630 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{a44b933 ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{c217dda u0 CR android/com.android.internal.backup.LocalTransportService:@2bf6b85} All Connections: ConnectionRecord{c217dda u0 CR android/com.android.internal.backup.LocalTransportService:@2bf6b85}
* ServiceRecord{665db53 u0 org.mokee.weatherservice/.WeatherManagerService} intent={cmp=org.mokee.weatherservice/.WeatherManagerService} packageName=org.mokee.weatherservice processName=org.mokee.weatherservice permission=mokee.permission.BIND_CORE_SERVICE baseDir=/system/priv-app/WeatherManagerService/WeatherManagerService.apk dataDir=/data/user/0/org.mokee.weatherservice app=ProcessRecord{2bc625 1563:org.mokee.weatherservice/u0a30} createTime=-35m23s434ms startingBgTimeout=-- lastActivity=-35m23s267ms restartTime=-35m23s267ms createdFromFg=true Bindings: * IntentBindRecord{2294f0 CREATE}: intent={cmp=org.mokee.weatherservice/.WeatherManagerService} binder=android.os.BinderProxy@9baba69 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{f838cee ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{9241cea u0 CR org.mokee.weatherservice/.WeatherManagerService:@f5bdcd5} All Connections: ConnectionRecord{9241cea u0 CR org.mokee.weatherservice/.WeatherManagerService:@f5bdcd5}
* ServiceRecord{e443319 u0 com.android.location.fused/.FusedLocationService} intent={act=com.android.location.service.FusedLocationProvider cmp=com.android.location.fused/.FusedLocationService} packageName=com.android.location.fused processName=system permission=android.permission.WRITE_SECURE_SETTINGS baseDir=/system/priv-app/FusedLocation/FusedLocation.apk dataDir=/data/user_de/0/com.android.location.fused app=ProcessRecord{6645015 791:system/1000} createTime=-35m28s390ms startingBgTimeout=-- lastActivity=-35m28s390ms restartTime=-35m28s390ms createdFromFg=true Bindings: * IntentBindRecord{e07b58f CREATE}: intent={act=com.android.location.service.FusedLocationProvider cmp=com.android.location.fused/.FusedLocationService} binder=com.android.location.provider.LocationProviderBase$Service@e34101c requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{abb9425 ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{358c260 u0 CR !FG !VIS com.android.location.fused/.FusedLocationService:@4a7663} All Connections: ConnectionRecord{358c260 u0 CR !FG !VIS com.android.location.fused/.FusedLocationService:@4a7663}
* ServiceRecord{85d606f u0 android/com.android.server.content.SyncJobService} intent={cmp=android/com.android.server.content.SyncJobService} packageName=android processName=system permission=android.permission.BIND_JOB_SERVICE baseDir=/system/framework/framework-res.apk dataDir=null app=ProcessRecord{6645015 791:system/1000} createTime=-35m28s213ms startingBgTimeout=-- lastActivity=-35m28s212ms restartTime=-35m28s212ms createdFromFg=true startRequested=true delayedStop=false stopIfKilled=true callStart=true lastStartId=1
* ServiceRecord{91ede65 u0 com.mokee.audiofx/.service.AudioFxService} intent={cmp=com.mokee.audiofx/.service.AudioFxService} packageName=com.mokee.audiofx processName=com.mokee.audiofx baseDir=/system/priv-app/AudioFX/AudioFX.apk dataDir=/data/user/0/com.mokee.audiofx app=ProcessRecord{ea0d3fa 1626:com.mokee.audiofx/u0a3} createTime=-35m15s795ms startingBgTimeout=-- lastActivity=-35m15s794ms restartTime=-35m15s794ms createdFromFg=true startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{2351859 u0 com.android.email/.service.ImapService} intent={cmp=com.android.email/.service.ImapService} packageName=com.android.email processName=com.android.email permission=com.android.email.permission.ACCESS_PROVIDER baseDir=/system/app/Email/Email.apk dataDir=/data/user/0/com.android.email app=ProcessRecord{7aba4ed 2090:com.android.email/u0a59} createTime=-35m17s63ms startingBgTimeout=-- lastActivity=-34m29s610ms restartTime=-35m17s62ms createdFromFg=false startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1 Bindings: * IntentBindRecord{29f89fa CREATE}: intent={cmp=com.android.email/.service.ImapService} binder=android.os.BinderProxy@b541bab requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{4801208 ProcessRecord{7aba4ed 2090:com.android.email/u0a59}} Per-process Connections: ConnectionRecord{f14f4a0 u0 CR com.android.email/.service.ImapService:@3eb09a3} All Connections: ConnectionRecord{f14f4a0 u0 CR com.android.email/.service.ImapService:@3eb09a3}
* ServiceRecord{86c9dab u0 com.android.bluetooth/.map.BluetoothMapService} intent={act=android.bluetooth.IBluetoothMap cmp=com.android.bluetooth/.map.BluetoothMapService} packageName=com.android.bluetooth processName=com.android.bluetooth baseDir=/system/app/Bluetooth/Bluetooth.apk dataDir=/data/user_de/0/com.android.bluetooth app=null createTime=-35m26s680ms startingBgTimeout=-- lastActivity=-35m26s680ms restartTime=-- createdFromFg=true Bindings: * IntentBindRecord{a364da1}: intent={act=android.bluetooth.IBluetoothMap cmp=com.android.bluetooth/.map.BluetoothMapService} binder=null requested=false received=false hasBound=false doRebind=false * Client AppBindRecord{4c4bc6 ProcessRecord{320a2da 928:com.android.systemui/u0a32}} Per-process Connections: ConnectionRecord{e60b332 u0 com.android.bluetooth/.map.BluetoothMapService:@83f3f3d} All Connections: ConnectionRecord{e60b332 u0 com.android.bluetooth/.map.BluetoothMapService:@83f3f3d}
* ServiceRecord{8356a28 u0 org.mokee.mkparts/cn.jpush.android.service.PushService} intent={cmp=org.mokee.mkparts/cn.jpush.android.service.PushService} packageName=org.mokee.mkparts processName=org.mokee.mkparts baseDir=/system/priv-app/MKParts/MKParts.apk dataDir=/data/user_de/0/org.mokee.mkparts app=ProcessRecord{894bfc5 2021:org.mokee.mkparts/1000} createTime=-35m17s921ms startingBgTimeout=-- lastActivity=-35m17s874ms restartTime=-35m17s921ms createdFromFg=false startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=3 Bindings: * IntentBindRecord{b6c787 CREATE}: intent={cmp=org.mokee.mkparts/cn.jpush.android.service.PushService} binder=android.os.BinderProxy@80846b4 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{44922dd ProcessRecord{894bfc5 2021:org.mokee.mkparts/1000}} Per-process Connections: ConnectionRecord{8e5404b u0 CR org.mokee.mkparts/cn.jpush.android.service.PushService:@121dd1a} All Connections: ConnectionRecord{8e5404b u0 CR org.mokee.mkparts/cn.jpush.android.service.PushService:@121dd1a}
* ServiceRecord{2be8709 u0 com.android.phone/.TelephonyDebugService} intent={cmp=com.android.phone/.TelephonyDebugService} packageName=com.android.phone processName=com.android.phone permission=android.permission.DUMP baseDir=/system/priv-app/TeleService/TeleService.apk dataDir=/data/user_de/0/com.android.phone app=ProcessRecord{52a1cf2 1091:com.android.phone/1001} createTime=-35m27s318ms startingBgTimeout=-- lastActivity=-35m27s318ms restartTime=-35m27s318ms createdFromFg=true startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{cb7b4e9 u0 android.ext.services/.notification.Ranker} intent={act=android.service.notification.NotificationRankerService cmp=android.ext.services/.notification.Ranker} packageName=android.ext.services processName=android.ext.services permission=android.permission.BIND_NOTIFICATION_RANKER_SERVICE baseDir=/system/priv-app/ExtServices/ExtServices.apk dataDir=/data/user_de/0/android.ext.services app=ProcessRecord{b8b6c08 1465:android.ext.services/u0a8} whitelistManager=true createTime=-35m29s817ms startingBgTimeout=-- lastActivity=-35m23s640ms restartTime=-35m23s640ms createdFromFg=true Bindings: * IntentBindRecord{fb15e52 CREATE}: intent={act=android.service.notification.NotificationRankerService cmp=android.ext.services/.notification.Ranker} binder=android.os.BinderProxy@eae5523 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{a3d1a20 ProcessRecord{6645015 791:system/1000}} Per-process Connections: ConnectionRecord{277911b u0 CR FGS android.ext.services/.notification.Ranker:@e5aaf2a} All Connections: ConnectionRecord{277911b u0 CR FGS android.ext.services/.notification.Ranker:@e5aaf2a}
* ServiceRecord{b779fa1 u0 com.android.bluetooth/.pan.PanService} intent={act=android.bluetooth.IBluetoothPan cmp=com.android.bluetooth/.pan.PanService} packageName=com.android.bluetooth processName=com.android.bluetooth baseDir=/system/app/Bluetooth/Bluetooth.apk dataDir=/data/user_de/0/com.android.bluetooth app=null createTime=-35m26s684ms startingBgTimeout=-- lastActivity=-35m26s684ms restartTime=-- createdFromFg=true Bindings: * IntentBindRecord{eba0fd9}: intent={act=android.bluetooth.IBluetoothPan cmp=com.android.bluetooth/.pan.PanService} binder=null requested=false received=false hasBound=false doRebind=false * Client AppBindRecord{e30d9e ProcessRecord{320a2da 928:com.android.systemui/u0a32}} Per-process Connections: ConnectionRecord{358b4e7 u0 com.android.bluetooth/.pan.PanService:@97612a6} All Connections: ConnectionRecord{358b4e7 u0 com.android.bluetooth/.pan.PanService:@97612a6}
Connection bindings to services: * ConnectionRecord{358c260 u0 CR !FG !VIS com.android.location.fused/.FusedLocationService:@4a7663} binding=AppBindRecord{abb9425 com.android.location.fused/.FusedLocationService:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@4a7663 flags=0x40000005 * ConnectionRecord{7b002a u0 CR com.android.systemui/.keyguard.KeyguardService:@7f4515} binding=AppBindRecord{8f5e4b7 com.android.systemui/.keyguard.KeyguardService:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@7f4515 flags=0x1 * ConnectionRecord{86a52d0 u0 CR com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService:@bf4293} binding=AppBindRecord{1b052de com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService:com.android.nfc} conn=android.os.BinderProxy@bf4293 flags=0x1 * ConnectionRecord{8e5404b u0 CR org.mokee.mkparts/cn.jpush.android.service.PushService:@121dd1a} binding=AppBindRecord{44922dd org.mokee.mkparts/cn.jpush.android.service.PushService:org.mokee.mkparts} conn=android.os.BinderProxy@121dd1a flags=0x1 * ConnectionRecord{7740166 u0 CR !FG UI !VIS com.sohu.inputmethod.sogou/.SogouIME:@13ad5c1} binding=AppBindRecord{3912878 com.sohu.inputmethod.sogou/.SogouIME:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@13ad5c1 flags=0x60000005 * ConnectionRecord{65f54a6 u0 CR com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService:@2be6e01} binding=AppBindRecord{11dd3ec com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService:com.sohu.inputmethod.sogou} conn=android.os.BinderProxy@2be6e01 flags=0x1 * ConnectionRecord{c217dda u0 CR android/com.android.internal.backup.LocalTransportService:@2bf6b85} binding=AppBindRecord{a44b933 android/com.android.internal.backup.LocalTransportService:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@2bf6b85 flags=0x1 * ConnectionRecord{fe3dfcb u0 CR projekt.interfacer/.services.JobService:@3814a9a} binding=AppBindRecord{e304142 projekt.interfacer/.services.JobService:projekt.substratum} conn=android.os.BinderProxy@3814a9a flags=0x1 * ConnectionRecord{f14f4a0 u0 CR com.android.email/.service.ImapService:@3eb09a3} binding=AppBindRecord{4801208 com.android.email/.service.ImapService:com.android.email} conn=android.os.BinderProxy@3eb09a3 flags=0x1 * ConnectionRecord{80fac8e u0 CR android/.hardware.location.GeofenceHardwareService:@4ab1489} binding=AppBindRecord{7eca0f9 android/.hardware.location.GeofenceHardwareService:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@4ab1489 flags=0x1 * ConnectionRecord{2a05e8 u0 com.android.bluetooth/.hid.HidService:@51ff30b} binding=AppBindRecord{afb0d63 com.android.bluetooth/.hid.HidService:com.android.systemui} conn=android.os.BinderProxy@51ff30b flags=0x0 * ConnectionRecord{28efcf4 u0 CR FGS org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent:@5696ec7} binding=AppBindRecord{befc6d5 org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@5696ec7 flags=0x4000001 * ConnectionRecord{58d63ad u0 CR org.mokee.mkaudio.service/.MKAudioService:@5c4c8c4} binding=AppBindRecord{2f84dbb org.mokee.mkaudio.service/.MKAudioService:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@5c4c8c4 flags=0x1 * ConnectionRecord{185184e u0 CR com.android.smspush/.WapPushManager:@7a7d749} binding=AppBindRecord{5c1446d com.android.smspush/.WapPushManager:com.android.phone} conn=android.os.BinderProxy@7a7d749 flags=0x1 * ConnectionRecord{a03eb03 u0 com.android.bluetooth/.a2dp.A2dpService:@7ea1fb2} binding=AppBindRecord{59369a7 com.android.bluetooth/.a2dp.A2dpService:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@7ea1fb2 flags=0x0 * ConnectionRecord{6af41e3 u0 CR com.tencent.mm/.service.ProcessService$MMProcessService:@8230612} binding=AppBindRecord{5f7ef2 com.tencent.mm/.service.ProcessService$MMProcessService:com.tencent.mm} conn=android.os.BinderProxy@8230612 flags=0x1 * ConnectionRecord{e60b332 u0 com.android.bluetooth/.map.BluetoothMapService:@83f3f3d} binding=AppBindRecord{4c4bc6 com.android.bluetooth/.map.BluetoothMapService:com.android.systemui} conn=android.os.BinderProxy@83f3f3d flags=0x0 * ConnectionRecord{75edf9e u0 CR IMP FGS com.android.server.telecom/.components.TelecomService:@959e9d9} binding=AppBindRecord{df77116 com.android.server.telecom/.components.TelecomService:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@959e9d9 flags=0x4000041 * ConnectionRecord{358b4e7 u0 com.android.bluetooth/.pan.PanService:@97612a6} binding=AppBindRecord{e30d9e com.android.bluetooth/.pan.PanService:com.android.systemui} conn=android.os.BinderProxy@97612a6 flags=0x0 * ConnectionRecord{310f22c u0 CR com.tencent.mm/.booter.CoreService:@a4195df} binding=AppBindRecord{9185ac1 com.tencent.mm/.booter.CoreService:com.tencent.mm} conn=android.os.BinderProxy@a4195df flags=0x1 * ConnectionRecord{939fde7 u0 CR FGS com.android.systemui/.doze.DozeService:@a5adfa6} binding=AppBindRecord{ff403bc com.android.systemui/.doze.DozeService:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@a5adfa6 flags=0x4000001 * ConnectionRecord{b7f3ffc u0 CR FGSA UI com.android.systemui/.ImageWallpaper:@a8438ef} binding=AppBindRecord{c48c389 com.android.systemui/.ImageWallpaper:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@a8438ef flags=0x22000001 * ConnectionRecord{caf89c0 u0 CR com.android.smspush/.WapPushManager:@cec3f43} binding=AppBindRecord{5c1446d com.android.smspush/.WapPushManager:com.android.phone} conn=android.os.BinderProxy@cec3f43 flags=0x1 * ConnectionRecord{a908dbd u0 CR com.android.systemui/.keyguard.KeyguardService:@d311114} binding=AppBindRecord{8f5e4b7 com.android.systemui/.keyguard.KeyguardService:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@d311114 flags=0x1 * ConnectionRecord{277911b u0 CR FGS android.ext.services/.notification.Ranker:@e5aaf2a} binding=AppBindRecord{a3d1a20 android.ext.services/.notification.Ranker:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@e5aaf2a flags=0x5000001 * ConnectionRecord{4659239 u0 com.android.bluetooth/.pbap.BluetoothPbapService:@ef5aa00} binding=AppBindRecord{e28b69a com.android.bluetooth/.pbap.BluetoothPbapService:com.android.systemui} conn=android.os.BinderProxy@ef5aa00 flags=0x0 * ConnectionRecord{9241cea u0 CR org.mokee.weatherservice/.WeatherManagerService:@f5bdcd5} binding=AppBindRecord{f838cee org.mokee.weatherservice/.WeatherManagerService:system} conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@f5bdcd5 flags=0x1


如果输出内容太多,只想关注运行的Activity结构层次其他的无所谓,可以使用grep命令来过滤

adb shell dumpsys activity | grep -i 'run'
    Running activities (most recent first):        Run #0: ActivityRecord{d1e6b5a u0 org.mokee.lawnchair/ch.deletescape.lawnchair.Launcher t365}ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes)    User #0: state=RUNNING_UNLOCKED


获取cpu信息

adb shell dumpsys cpuinfo


获取内存信息

adb shell dumpsys meminfo


要获取具体应用的内存信息,可加上包名

adb shell dumpsys meminfo PACKAGE_NAME


获取当前界面的UI信息

adb shell dumpsys activity top


获取当前界面的Activity

adb shell dumpsys activityadb shell dumpsys activity topadb shell dumpsys activity top | findstr ACTIVITY


获取package信息

adb shell dumpsys package


获取某个包的信息

adb shell dumpsys package PACKAGE_NAME


获取通知信息

adb shell dumpsys notification

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


获取wifi信息

adb shell dumpsys wifi

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


获取电源管理信息

adb shell dumpsys power

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


获取电话信息

adb shell dumpsys telephony.registry

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


发送广播

adb shell am broadcast [options] <INTENT>adb shell am broadcast -a android.intent.action.BOOT_COMPLETED


系统预定义广播及正常触发时机

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


强制停止应用

adb shell am force-stop <packagename>


查看APP有哪些进程

adb shell dumpsys activity p <packagename> | grep -i ='ProcessRecord' | grep -i 'PID'


查看APP使用了哪些服务

adb shell dumpsys activity s <package name> | grep -i 'ServiceRecord'


查看当前APP的内存使用情况

adb shell dumpsys meminfo <package name>


收紧内存

adb shell am send-trim-memory <pid> <level>adb shell am send-trim-memory 342 RUNNING_LOW

表示向pid=342的进程,发出level=RUNNING_LOW的收紧内存命令


查看占用内存前6的app

adb shell top -m 6


查询各进程内存使用情况

adb shell procrank


查看当前内存占用

adb shell cat /proc/meminfo


查看IO内存分区

adb shell cat /proc/iomem


查看日志

Android系统的日志分为两部分,底层的Linux内核日志输出到/proc/kmsg,Android的日志输出到/dev/log


按级别过滤日志

Android的日志分为如下几个优先级(priority)

V——Verbose(最低,输出得最多)D——DebugI——InfoW——WarningE——ErrorF——FatalS——Silent(最高,啥也不输出)
adb logcat ActivityManager:I MyApp:D *:Sadb logcat -v long ActivityManager:I *:S


清空日志

adb logcat -c


内核日志

adb shell dmesg

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


屏幕分辨率

adb shell wm size


屏幕密度

adb shell wm density


显示屏参数

adb shell dumpsys window displays


恢复原分辨率

adb shell wm size reset


IP/Mac地址

adb shell ifconfig | grep Maskadb shell cat /sys/class/net/wlan0/address


adb shell cat /proc/cpuinfoadb shell cat /proc/meminfoadb shell cat /system/build.prop


硬件与系统属性

adb shell getprop <属性名>

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


adb shell settings get secure android_idadb shell dumpsys iphonesubinfo
getDeviceIdgetDeviceIdForSubscribergetImeiForSubscribergetDeviceSvngetSubscriberIdgetSubscriberIdForSubscribergetGroupIdLevel1getGroupIdLevel1ForSubscribergetIccSerialNumbergetIccSerialNumberForSubscribergetLine1NumbergetLine1NumberForSubscribergetLine1AlphaTaggetLine1AlphaTagForSubscribergetMsisdngetMsisdnForSubscribergetVoiceMailNumbergetVoiceMailNumberForSubscribergetCompleteVoiceMailNumbergetCompleteVoiceMailNumberForSubscribergetVoiceMailAlphaTaggetVoiceMailAlphaTagForSubscribergetIsimImpigetIsimDomaingetIsimImpugetIsimIstgetIsimPcscfgetIsimChallengeResponsegetIccSimChallengeResponse


关闭USB调试模式

adb shell settings put global adb_enabled 0


允许/禁止访问非SDK API(不需要设备获得Root权限)

允许访问非SDK API

adb shell settings put global hidden_api_policy_pre_p_apps 1adb shell settings put global hidden_api_policy_p_apps 1

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


禁止访问非SDK API

adb shell settings delete global hidden_api_policy_pre_p_appsadb shell settings delete global hidden_api_policy_p_apps


重新挂载system分区为可写

adb rootadb remount
adb shellmount -o rw,remount -t ext4 /mount -o rw,remount -t ext4 /systemsetenforce 0
mount -o remount,rw -t yaffs2 /dev/block/platform/msm_sdcc.1/by-name/system /system


查看连接过的WiFi密码

adb shellsucat /data/misc/wifi/*.conf

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


使用Monkey进行压力测试

Monkey可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试

adb shell monkey -p <packagename> -v 500


开启/关闭WiFi

adb rootadb shell svc wifi enable
adb rootadb shell svc wifi disable


重启到Recovery模式

adb reboot recovery


重启到Fastboot模式

adb reboot bootloader


启用/禁用SELinux

启用SELinuxadb rootadb shell setenforce 1
禁用SELinuxadb rootadb shell setenforce 0


查看进程

adb shell ps

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


查看实时资源占用情况

adb shell top

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


查看进程UID

两种方案

adb shell dumpsys package <packagename> | grep userId=
adb shell dumpsys package com.demo.cn | grep userId= userId=10394


adb shell cat /proc/<pid>/status | grep Uid
adb shellps | grep com.demo.cnu0_a394 28635 770 1795812 78736 SyS_epoll_ 0000000000 S com.demo.cn
cat /proc/28635/status | grep Uid Uid: 10394 10394 10394 10394

Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)


速查 | ADB 用法大全

https://www.wanandroid.com/blog/show/2310https://developer.android.com/studio/command-line/adbhttps://github.com/mzlogin/awesome-adbhttps://blog.csdn.net/zhangbijun1230/article/details/79740582


欢迎关注"哆啦安全"公众号和视频号,后续还有更多分享!


推荐阅读

学抓包就来"哆啦安全"学

玩转Android adb命令(adb降级)

Android APK和API漏洞扫描器

Android App开发Bug解决完美方案

JNI与NDK编程(基础到精通)最全总结

Android系统run-as命令原理(权限访问)

Android系统中run-as和su命令的源码解析(升降权限)

Android系统定制之Android.mk和Android.bp语法详解(精通版)


Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)

关注、点赞、分享、转发

原文始发于微信公众号(哆啦安全):Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月8日15:37:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)http://cn-sec.com/archives/986843.html

发表评论

匿名网友 填写信息