(七十八) 查看Android状态的命令积累

1.基础知识准备:

1.1 PSS

Item全称含义等价
USSUnique Set Size物理内存进程独占的内存
PSSProportional Set Size物理内存PSS= USS+ 按比例包含共享库
RSSResident Set Size物理内存RSS= USS+ 包含共享库
VSSVirtual Set Size虚拟内存VSS= RSS+ 未分配实际物理内存

故内存的大小关系:VSS >= RSS >= PSS >= USS

 

1.2 OOM

首先要明白android基于linux系统,系统的内存使用规则是不一样的。
windows下的内存管理规则为:退出即销毁,程序的内存会被回收。
linux的内存认为不用白不用,在程序退出后,如果没有新的内存申请,则内存不会被释放,这样下一次运行的时候会提高响应速度。
如此,android设计了low_memory和OUT_OF_MEMORY机制。
low_memory是在程序申请内存的时候报警,然后可以对这个报警进行一些响应,比如释放不用的资源来防止崩溃之类的。在低内存机器中,观察launcher在机器刚开机和运行一段时间后所占内存的大小就能发现,开机的时候内存占用很大,但是随着应用越开越多,占用内存在一步步被释放。
而OOM机制是机器底层的一种强制保鲜,在OOM发生的时候内核会排序强制杀掉进程来保证系统的继续运行,同样这种OOM异常容易发生在低内存机器上,比如512M。
首先系统会根据程序是否是空进程(已经由用户关闭的不带有任何服务和provider的进程),是否有服务,是否有provider,是否为前台进程,来排序,可以输入 adb shell dumpsys meminfo来查看,列出信息中的Total PSS by OOM adjustment:就是系统为程序的OOM排序结果,OOM异常的时候会根据这个表单从下网上杀掉进程释放内存。
OOM的阈值:是机器判定发生OOM的规则,在/kernel/drivers/staging/android/lowmemorykiller.c中可以看到
lowmem_adj[6] 为OOM等级,lowmem_minfree[6]为对应的在系统内存低于多少的时候,adj中高于该等级的活动都要被强制释放。对应的可以修改阈值,完成后编译lk就可以了。
以上就是关于low_memory和OOM的机制和修改

 

2.命令

2.1 dumpsys meminfo

adb shell dumpsys meminfo > /home/jiatai/shell_test/adbshell/dumpsys_meminfo.txt

Applications Memory Usage (in Kilobytes):
Uptime: 88147036 Realtime: 281774647

Total PSS by process:
    384,092K: com.tencent.mm (pid 4145 / activities)
    201,704K: com.tencent.mm:tools (pid 22565)
    196,064K: com.android.systemui (pid 1962 / activities)
    181,041K: system (pid 1515)
    153,757K: com.zhihu.android (pid 11002 / activities)
    ...

Total PSS by OOM adjustment:
    328,105K: Native
         28,264K: android.hardware.camera.provider@2.4-service (pid 736)
         25,669K: logd (pid 568)
         21,586K: android.hardware.graphics.composer@2.1-service (pid 742)
         ...
    560,837K: Persistent
        196,064K: com.android.systemui (pid 1962 / activities)
        181,041K: system (pid 1515)
         39,864K: com.android.phone (pid 2249)
         29,365K: com.android.nfc (pid 3078)
         23,107K: com.miui.daemon (pid 3066)
         20,614K: com.miui.whetstone (pid 3131)
         17,774K: com.xiaomi.xmsf (pid 3090)
         12,414K: com.xiaomi.finddevice (pid 3104)
          9,671K: com.miui.contentcatcher (pid 3039)
          8,156K: .dataservices (pid 2195)
          5,503K: com.qualcomm.qti.telephonyservice (pid 2205)
          4,838K: com.qualcomm.qcrilmsgtunnel (pid 2232)
          4,314K: org.simalliance.openmobileapi.service (pid 3052)
          4,140K: com.goodix.fingerprint (pid 3027)
          3,972K: com.qualcomm.qti.services.secureui:sui_service (pid 3116)
     13,162K: Persistent Service
         13,162K: com.android.bluetooth (pid 1924)
    277,044K: Foreground
        153,757K: com.zhihu.android (pid 11002 / activities)
         51,420K: com.google.android.webview:sandboxed_process0 (pid 11169)
         32,895K: com.miui.securitycenter.remote (pid 3706)
         20,325K: android.process.media (pid 6268)
         18,647K: com.miui.powerkeeper (pid 3649)
    235,251K: Visible
         82,287K: com.sohu.inputmethod.sogou.xiaomi (pid 4256)
         42,269K: com.miui.guardprovider (pid 20178)
         39,993K: com.xiaomi.hm.health (pid 11687)
         17,436K: com.xiaomi.metoknlp (pid 3379)
         14,516K: com.miui.systemAdSolution (pid 11865)
         11,884K: com.miui.analytics (pid 11697)
         10,754K: com.xiaomi.account (pid 16448)
          7,871K: com.xiaomi.bluetooth (pid 2737)
          4,508K: com.miui.wmsvc (pid 4988)
          3,733K: com.android.smspush (pid 12098)
    226,370K: Perceptible
        136,693K: tv.danmaku.bili (pid 6935 / activities)
         29,606K: tv.danmaku.bili:download (pid 7148)
         27,739K: tv.danmaku.bili:ijkservice (pid 7449)
         18,397K: tv.danmaku.bili:push (pid 6978)
          9,104K: com.lbe.security.miui (pid 3871)
          4,831K: com.google.android.webview:sandboxed_process0 (pid 7027)
    524,837K: Backup
        384,092K: com.tencent.mm (pid 4145 / activities)
        140,745K: com.netease.cloudmusic (pid 8758 / activities)
     42,365K: A Services
         32,637K: com.netease.cloudmusic:play (pid 8828)
          9,728K: com.android.camera (pid 13584)
     96,112K: Home
         96,112K: com.miui.home (pid 3234 / activities)
     26,240K: Previous
         26,240K: com.tencent.mm:exdevice (pid 4276)
    339,369K: B Services
        201,704K: com.tencent.mm:tools (pid 22565)
         31,761K: com.tencent.mm:push (pid 4423)
         28,118K: tv.danmaku.bili:web (pid 7249)
         18,376K: com.android.thememanager (pid 13077)
         14,637K: com.zhihu.android:pushservice (pid 11284)
         11,669K: com.android.settings:remote (pid 12286)
         10,808K: org.simalliance.openmobileapi.service:remote (pid 5203)
          8,930K: com.xiaomi.market:guard (pid 20117)
          5,174K: com.miui.core (pid 15435)
          4,265K: com.qualcomm.qti.callenhancement (pid 12121)
          3,927K: com.xiaomi.android.dm.service (pid 12158)
    343,692K: Cached
         86,893K: com.tencent.mm:appbrand0 (pid 10030)
         23,111K: com.google.android.webview:sandboxed_process1 (pid 7831)
         23,039K: com.miui.personalassistant (pid 11957)
         20,151K: com.miui.personalassistant:alipayinside (pid 21144)
         19,516K: com.google.android.webview:sandboxed_process0 (pid 22792)
         18,828K: com.miui.gallery (pid 9255)
         18,711K: tv.danmaku.bili:stats (pid 7109)
         17,824K: com.android.browser (pid 12782)
         17,801K: com.miui.systemAdSolution:ui (pid 9630)
         15,023K: android.process.acore (pid 9167)
         11,349K: com.miui.cloudservice (pid 9094)
         11,090K: com.xiaomi.market (pid 10966)
         10,588K: com.miui.hybrid (pid 11718)
          8,993K: com.miui.personalassistant:trans (pid 11924)
          8,190K: com.miui.micloudsync:sync (pid 12486)
          7,788K: com.xiaomi.simactivate.service (pid 9115)
          7,224K: com.android.settings (pid 20783)
          6,160K: com.miui.micloudsync (pid 12505)
          4,485K: com.android.printspooler (pid 11362)
          3,541K: com.android.musicfx (pid 9407)
          3,387K: com.xiaomi.micloud.sdk (pid 11434)

Total PSS by category:
  1,127,920K: Native
    310,168K: Gfx dev
    301,477K: Unknown
    281,096K: Dalvik
    260,949K: .dex mmap
    248,877K: .so mmap
    210,819K: .art mmap
     75,116K: Dalvik Other
     72,937K: .oat mmap
     71,951K: .apk mmap
     18,961K: Other mmap
     17,368K: Ashmem
      6,667K: Stack
      5,182K: .ttf mmap
      2,325K: .jar mmap
      1,559K: Other dev
         12K: Cursor
          0K: EGL mtrack
          0K: GL mtrack
          0K: Other mtrack

Total RAM: 5,862,112K (status normal)
 Free RAM: 2,930,144K (  343,692K cached pss + 2,199,148K cached kernel +   130,568K cached ion +   256,736K free)
 Used RAM: 3,178,932K (2,669,692K used pss +   509,240K kernel)
 Lost RAM:   789,856K
   Tuning: 256 (large 512), oom   322,560K, restore limit   107,520K (high-end-gfx)

如上dumpsys meminfo结果可以看出分如下几类统计ram使用情况:

 

1) Total PSS by process

2) Total PSS by OOM adjustment

  • Native
  • Persistent
  • Persistent Service
  • Foreground
  • Visible
  • Perceptible
  • Backup
  • A Services
  • Home
  • Previous
  • B Services
  • Cached

3) Total PSS by category:按类别统计的ram使用情况

 

最后这显示了手机整体ram使用情况:

Total RAM: 5,862,112K (status normal)
 Free RAM: 2,930,144K (  343,692K cached pss + 2,199,148K cached kernel +   130,568K cached ion +   256,736K free)
 Used RAM: 3,178,932K (2,669,692K used pss +   509,240K kernel)
 Lost RAM:   789,856K
   Tuning: 256 (large 512), oom   322,560K, restore limit   107,520K (high-end-gfx)

 

2.2 cat /proc/meminfo

MemTotal:        5862112 kB
MemFree:          290600 kB
MemAvailable:    2250212 kB
Buffers:          735864 kB
Cached:          1371512 kB
SwapCached:            0 kB
Active:          3215144 kB
Inactive:         891736 kB
Active(anon):    2092852 kB
Inactive(anon):    34536 kB
Active(file):    1122292 kB
Inactive(file):   857200 kB
Unevictable:       82496 kB
Mlocked:           82496 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:       2082104 kB
Mapped:           891920 kB
Shmem:             45676 kB
Slab:             260080 kB
SReclaimable:      96904 kB
SUnreclaim:       163176 kB
KernelStack:       63904 kB
PageTables:        76856 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2931056 kB
Committed_AS:   139282048 kB
VmallocTotal:   258867136 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
CmaTotal:         163840 kB
CmaFree:               0 kB

 

2.3  cat  /proc/cpuinfo

Processor	: AArch64 Processor rev 4 (aarch64)
processor	: 0
BogoMIPS	: 38.40
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x51
CPU architecture: 8
CPU variant	: 0xa
CPU part	: 0x801
CPU revision	: 4

processor	: 1
BogoMIPS	: 38.40
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x51
CPU architecture: 8
CPU variant	: 0xa
CPU part	: 0x801
CPU revision	: 4

processor	: 2
BogoMIPS	: 38.40
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x51
CPU architecture: 8
CPU variant	: 0xa
CPU part	: 0x801
CPU revision	: 4

processor	: 3
BogoMIPS	: 38.40
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x51
CPU architecture: 8
CPU variant	: 0xa
CPU part	: 0x801
CPU revision	: 4

processor	: 4
BogoMIPS	: 38.40
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x51
CPU architecture: 8
CPU variant	: 0xa
CPU part	: 0x800
CPU revision	: 1

processor	: 5
BogoMIPS	: 38.40
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x51
CPU architecture: 8
CPU variant	: 0xa
CPU part	: 0x800
CPU revision	: 1

processor	: 6
BogoMIPS	: 38.40
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x51
CPU architecture: 8
CPU variant	: 0xa
CPU part	: 0x800
CPU revision	: 1

processor	: 7
BogoMIPS	: 38.40
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x51
CPU architecture: 8
CPU variant	: 0xa
CPU part	: 0x800
CPU revision	: 1

Hardware	: Qualcomm Technologies, Inc MSM8998

MSM8998就是高通骁龙835,8核处理器

 

 

2.4 dumpsys cpuinfo

chiron:/proc $ dumpsys cpuinfo
Load: 4.07 / 4.05 / 3.99
CPU usage from 215568ms to 195558ms ago (2018-08-10 22:53:04.131 to 2018-08-10 22:53:24.141):
  12% 6935/tv.danmaku.bili: 10% user + 1.2% kernel / faults: 52 minor
  4.7% 11002/com.zhihu.android: 1.1% user + 3.5% kernel / faults: 51 minor
  3.9% 780/surfaceflinger: 1.7% user + 2.1% kernel
  1% 1515/system_server: 0.2% user + 0.7% kernel / faults: 46 minor
  0.9% 11284/com.zhihu.android:pushservice: 0.3% user + 0.6% kernel
  0.9% 14337/kworker/u16:11: 0% user + 0.9% kernel
  0.7% 22/ksoftirqd/2: 0% user + 0.7% kernel
  0.5% 7449/tv.danmaku.bili:ijkservice: 0.2% user + 0.2% kernel
  0.5% 13718/kworker/u16:5: 0% user + 0.5% kernel
  0.4% 4145/com.tencent.mm: 0.4% user + 0% kernel / faults: 146 minor
  0.4% 14058/kworker/u16:0: 0% user + 0.4% kernel
  0% 4423/com.tencent.mm:push: 0% user + 0% kernel / faults: 56 minor
  0.2% 22565/com.tencent.mm:tools: 0.2% user + 0% kernel
  0.2% 81/smem_native_rpm: 0% user + 0.2% kernel
  0.2% 999/msm_irqbalance: 0% user + 0.1% kernel
  0.1% 15/ksoftirqd/1: 0% user + 0.1% kernel
  0.1% 438/cfinteractive: 0% user + 0.1% kernel
  0% 10/rcuop/0: 0% user + 0% kernel
  0% 902/thermal-engine: 0% user + 0% kernel
  0% 3649/com.miui.powerkeeper: 0% user + 0% kernel / faults: 8 minor
  0% 6978/tv.danmaku.bili:push: 0% user + 0% kernel / faults: 3 minor
  0% 14395/kworker/0:0: 0% user + 0% kernel
  0% 20178/com.miui.guardprovider: 0% user + 0% kernel / faults: 236 minor
  0% 3/ksoftirqd/0: 0% user + 0% kernel
  0% 7/rcu_preempt: 0% user + 0% kernel
  0% 568/logd: 0% user + 0% kernel
  0% 777/lmkd: 0% user + 0% kernel
  0% 883/sensors.qcom: 0% user + 0% kernel / faults: 30 minor
  0% 1032/ipacm: 0% user + 0% kernel
  0% 1962/com.android.systemui: 0% user + 0% kernel / faults: 3 minor
  0% 3090/com.xiaomi.xmsf: 0% user + 0% kernel / faults: 11 minor
  0% 3131/com.miui.whetstone: 0% user + 0% kernel / faults: 1 minor
  0% 5654/tcpdump: 0% user + 0% kernel
  0% 9293/adbd: 0% user + 0% kernel / faults: 45 minor
4.1% TOTAL: 2.2% user + 1.4% kernel + 0% iowait + 0.2% irq + 0% softirq

可以查看cpu利用率,iowait过高有可能引起anr。

 

2.5 dumpsys -l

chiron:/proc $ dumpsys -l
Currently running services:
  DockObserver
  MiuiBackup
  MiuiInit
  ProcessManager
  SurfaceFlinger
  accessibility
  account
  activity
  alarm
  android.security.keystore
  appops
  appwidget
  audio
  autofill
  backup
  battery
  batteryproperties
  batterystats
  bluetooth_manager
  carrier_config
  clipboard
  cneservice
  com.goodix.FingerprintService
  com.qualcomm.location.izat.IzatService

 

2.6 dumpsys meminfo packageName

chiron:/proc $ dumpsys meminfo com.android.settings
Applications Memory Usage (in Kilobytes):
Uptime: 90592678 Realtime: 284220288

** MEMINFO in pid 14341 [com.android.settings] **
                   Pss  Private  Private  SwapPss     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap    16448    16212        0        0    38912    33802     5109
  Dalvik Heap     6418     6400        0        0     5291     2646     2645
 Dalvik Other     1137     1136        0        0                           
        Stack       48       48        0        0                           
       Ashmem       10        8        0        0                           
      Gfx dev     4212     4212        0        0                           
    Other dev        8        0        8        0                           
     .so mmap     1208      216       20        0                           
    .jar mmap        0        0        0        0                           
    .apk mmap     1138        0      700        0                           
    .ttf mmap      163        0       64        0                           
    .dex mmap     5545       32     3748        0                           
    .oat mmap     1262        0       12        0                           
    .art mmap     2878     2528       36        0                           
   Other mmap       15        4        0        0                           
      Unknown     1762     1760        0        0                           
        TOTAL    42252    32556     4588        0    44203    36448     7754
 
 App Summary
                       Pss(KB)
                        ------
           Java Heap:     8964
         Native Heap:    16212
                Code:     4792
               Stack:       48
            Graphics:     4212
       Private Other:     2916
              System:     5108
 
               TOTAL:    42252       TOTAL SWAP PSS:        0
 
 Objects
               Views:      461         ViewRootImpl:        3
         AppContexts:        5           Activities:        3
              Assets:        5        AssetManagers:        3
       Local Binders:       43        Proxy Binders:       45
       Parcel memory:        9         Parcel count:       66
    Death Recipients:        7      OpenSSL Sockets:        1
            WebViews:        0
 
 SQL
         MEMORY_USED:        0
  PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:      117

 

2.7 dumpsys activity

chiron:/ $ dumpsys activity -h                                                 
Activity manager dump options:
  [-a] [-c] [-p PACKAGE] [-h] [WHAT] ...
  WHAT may be one of:
    a[ctivities]: activity stack state
    r[recents]: recent activities state
    b[roadcasts] [PACKAGE_NAME] [history [-s]]: broadcast state
    broadcast-stats [PACKAGE_NAME]: aggregated broadcast statistics
    i[ntents] [PACKAGE_NAME]: pending intent state
    p[rocesses] [PACKAGE_NAME]: process state
    o[om]: out of memory management
    perm[issions]: URI permission grant state
    prov[iders] [COMP_SPEC ...]: content provider state
    provider [COMP_SPEC]: provider client-side state
    s[ervices] [COMP_SPEC ...]: service state
    as[sociations]: tracked app associations
    settings: currently applied config settings
    service [COMP_SPEC]: service client-side state
    package [PACKAGE_NAME]: all state related to given package
    all: dump all activities
    top: dump the top activity
  WHAT may also be a COMP_SPEC to dump activities.
  COMP_SPEC may be a component name (com.foo/.myApp),
    a partial substring in a component name, a
    hex object identifier.
  -a: include all available server state.
  -c: include client state.
  -p: limit output to given package.
  --checkin: output checkin format, resetting data.
  --C: output checkin format, not resetting data.

2.7.1  dumpsys activity packageName

chiron:/ $ dumpsys activity com.android.settings                               
TASK com.android.settings id=17600 userId=0
  ACTIVITY com.android.settings/.SubSettings ef1f9cb pid=14341
    Local Activity d0705dd State:
      mResumed=false mStopped=true mFinished=false
      mChangingConfigurations=false
      mCurrentConfig={1.0 460mcc65535mnc [zh_CN] ldltr sw392dp w392dp h714dp 440dpi nrml long port finger -keyb/v/h -nav/h appBounds=Rect(0, 0 - 1080, 2030) s.111 themeChanged=0 themeChangedFlags=0}
      mLoadersStarted=true
      Active Fragments in 38f2fae:
        #0: MiuiMyDeviceSettings{312814f #0 id=0x7f0a0290}
          mFragmentId=#7f0a0290 mContainerId=#7f0a0290 mTag=null
          mState=3 mIndex=0 mWho=android:fragment:0 mBackStackNesting=0
          mAdded=true mRemoving=false mFromLayout=false mInLayout=false
          mHidden=false mDetached=false mMenuVisible=true mHasMenu=true
          mRetainInstance=false mRetaining=false mUserVisibleHint=true
          mFragmentManager=FragmentManager{38f2fae in HostCallbacks{46150dc}}
          mHost=android.app.Activity$HostCallbacks@46150dc
          mArguments=Bundle[{:android:show_fragment_title=2131888927}]
          mSavedViewState={16908290=android.view.AbsSavedState$1@a3aa5e5, 16908298=AbsListView.SavedState{da298ba selectedId=-9223372036854775808 firstId=-1 viewTop=0 position=0 height=1045 filter=null checkState=null}, 269156388=android.view.AbsSavedState$1@a3aa5e5, 269156392=android.view.AbsSavedState$1@a3aa5e5, 269156393=android.view.AbsSavedState$1@a3aa5e5, 269156430=android.view.AbsSavedState$1@a3aa5e5, 269156431=android.view.AbsSavedState$1@a3aa5e5, 269156432=com.miui.internal.widget.ActionBarView$SavedState@29fe36b, 269156433=com.miui.internal.widget.ActionBarContextView$SavedState@5209ec8, 269156434=android.view.AbsSavedState$1@a3aa5e5, 269156435=android.view.AbsSavedState$1@a3aa5e5, 2131361917=android.view.AbsSavedState$1@a3aa5e5, 2131362105=AbsListView.SavedState{5f4bb61 selectedId=-9223372036854775808 firstId=-1 viewTop=0 position=0 height=618 filter=null checkState=null}, 2131362121=android.view.AbsSavedState$1@a3aa5e5, 2131362623=android.view.AbsSavedState$1@a3aa5e5, 2131362759=android.view.AbsSavedState$1@a3aa5e5, 2131362762=ScrollView.SavedState{8518686 scrollPosition=0}, 2131363038=android.view.AbsSavedState$1@a3aa5e5, 2131363041=android.view.AbsSavedState$1@a3aa5e5, 2131363042=android.view.AbsSavedState$1@a3aa5e5, 2131363043=android.view.AbsSavedState$1@a3aa5e5}
          mContainer=android.widget.FrameLayout{e1a87b V.E...... .......D 0,0-1080,2160 #7f0a0290 app:id/main_content}
          mView=com.miui.internal.widget.ActionBarOverlayLayout{173d099 V.E...... ......ID 0,0-1080,2160 #100b004e miui:id/action_bar_overlay_layout}
          Child FragmentManager{3574b47 in MiuiMyDeviceSettings{312814f}}:
            FragmentManager misc state:
              mHost=android.app.Activity$HostCallbacks@46150dc
              mContainer=android.app.Fragment$1@504df74
              mParent=MiuiMyDeviceSettings{312814f #0 id=0x7f0a0290}
              mCurState=3 mStateSaved=true mDestroyed=false
      Added Fragments:
        #0: MiuiMyDeviceSettings{312814f #0 id=0x7f0a0290}
      Fragments Created Menus:
        #0: MiuiMyDeviceSettings{312814f #0 id=0x7f0a0290}
      FragmentManager misc state:
        mHost=android.app.Activity$HostCallbacks@46150dc
        mContainer=android.app.Activity$HostCallbacks@46150dc
        mCurState=3 mStateSaved=true mDestroyed=false
    ViewRoot:
      mAdded=true mRemoved=false
      mConsumeBatchedInputScheduled=false
      mConsumeBatchedInputImmediatelyScheduled=false
      mPendingInputEventCount=0
      mProcessInputEventsScheduled=false
      mTraversalScheduled=false      mIsAmbientMode=false
      android.view.ViewRootImpl$NativePreImeInputStage: mQueueLength=0
      android.view.ViewRootImpl$ImeInputStage: mQueueLength=0
      android.view.ViewRootImpl$NativePostImeInputStage: mQueueLength=0
    Choreographer:
      mFrameScheduled=false
      mLastFrameTime=90880598 (253177 ms ago)
    View Hierarchy:
      DecorView@5b50552[SubSettings]
        com.miui.internal.widget.ActionBarOverlayLayout{fa249e V.E...... .......D 0,0-1080,2160 #100b004e miui:id/action_bar_overlay_layout}
          android.widget.FrameLayout{1ddeb7f V.E...... .......D 0,0-1080,2160 #1020002 android:id/content}
            android.support.v4.widget.DrawerLayout{bea1395 VFE...... .......D 0,0-1080,2160 #7f0a015e app:id/drawer_layout}
              android.widget.LinearLayout{edfecaa V.E...... .......D 0,0-1080,2160 #7f0a0107 app:id/content_parent}
                android.widget.Toolbar{4efc09b G.E...... ......I. 0,0-0,0 #7f0a001a app:id/action_bar}
                android.widget.FrameLayout{37213e4 G.E...... ......I. 0,0-0,0 #7f0a0105 app:id/content_header_container}
                android.widget.FrameLayout{ffa204d V.E...... .......D 0,0-1080,2160 #7f0a0104 app:id/content_frame}
                  android.widget.LinearLayout{82e8a50 V.E...... .......D 0,0-1080,2160}
    Looper (main, tid 2) {6e0ac9d}
      (Total messages: 0, polling=false, quitting=false)

可以看到activity/fragment/viewroot/choreographer/view hierarchy/looper等信息。

 

2.8 dumpsys package

chiron:/ $ dumpsys package -h                                                  
Package manager dump options:
  [-h] [-f] [--checkin] [cmd] ...
    --checkin: dump for a checkin
    -f: print details of intent filters
    -h: print this help
  cmd may be one of:
    l[ibraries]: list known shared libraries
    f[eatures]: list device features
    k[eysets]: print known keysets
    r[esolvers] [activity|service|receiver|content]: dump intent resolvers
    perm[issions]: dump permissions
    permission [name ...]: dump declaration and use of given permission
    pref[erred]: print preferred package settings
    preferred-xml [--full]: print preferred package settings as xml
    prov[iders]: dump content providers
    p[ackages]: dump installed packages
    s[hared-users]: dump shared user IDs
    m[essages]: print collected runtime messages
    v[erifiers]: print package verifier info
    d[omain-preferred-apps]: print domains preferred apps
    i[ntent-filter-verifiers]|ifv: print intent filter verifier info
    version: print database version info
    write: write current settings now
    installs: details about install sessions
    check-permission <permission> <package> [<user>]: does pkg hold perm?
    dexopt: dump dexopt state
    compiler-stats: dump compiler statistics
    enabled-overlays: dump list of enabled overlay packages
    <package.name>: info about given package

dumpsys package packageName可以查看应用对应的权限相关信息

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值