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

2023-12-19 07:48

本文主要是介绍(七十八) 查看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: 281774647Total 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: Native28,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: Persistent196,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 Service13,162K: com.android.bluetooth (pid 1924)277,044K: Foreground153,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: Visible82,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: Perceptible136,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: Backup384,092K: com.tencent.mm (pid 4145 / activities)140,745K: com.netease.cloudmusic (pid 8758 / activities)42,365K: A Services32,637K: com.netease.cloudmusic:play (pid 8828)9,728K: com.android.camera (pid 13584)96,112K: Home96,112K: com.miui.home (pid 3234 / activities)26,240K: Previous26,240K: com.tencent.mm:exdevice (pid 4276)339,369K: B Services201,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: Cached86,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: Native310,168K: Gfx dev301,477K: Unknown281,096K: Dalvik260,949K: .dex mmap248,877K: .so mmap210,819K: .art mmap75,116K: Dalvik Other72,937K: .oat mmap71,951K: .apk mmap18,961K: Other mmap17,368K: Ashmem6,667K: Stack5,182K: .ttf mmap2,325K: .jar mmap1,559K: Other dev12K: Cursor0K: EGL mtrack0K: GL mtrack0K: Other mtrackTotal 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,856KTuning: 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	: 4processor	: 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	: 4processor	: 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	: 4processor	: 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	: 4processor	: 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	: 1processor	: 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	: 1processor	: 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	: 1processor	: 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	: 1Hardware	: 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 minor4.7% 11002/com.zhihu.android: 1.1% user + 3.5% kernel / faults: 51 minor3.9% 780/surfaceflinger: 1.7% user + 2.1% kernel1% 1515/system_server: 0.2% user + 0.7% kernel / faults: 46 minor0.9% 11284/com.zhihu.android:pushservice: 0.3% user + 0.6% kernel0.9% 14337/kworker/u16:11: 0% user + 0.9% kernel0.7% 22/ksoftirqd/2: 0% user + 0.7% kernel0.5% 7449/tv.danmaku.bili:ijkservice: 0.2% user + 0.2% kernel0.5% 13718/kworker/u16:5: 0% user + 0.5% kernel0.4% 4145/com.tencent.mm: 0.4% user + 0% kernel / faults: 146 minor0.4% 14058/kworker/u16:0: 0% user + 0.4% kernel0% 4423/com.tencent.mm:push: 0% user + 0% kernel / faults: 56 minor0.2% 22565/com.tencent.mm:tools: 0.2% user + 0% kernel0.2% 81/smem_native_rpm: 0% user + 0.2% kernel0.2% 999/msm_irqbalance: 0% user + 0.1% kernel0.1% 15/ksoftirqd/1: 0% user + 0.1% kernel0.1% 438/cfinteractive: 0% user + 0.1% kernel0% 10/rcuop/0: 0% user + 0% kernel0% 902/thermal-engine: 0% user + 0% kernel0% 3649/com.miui.powerkeeper: 0% user + 0% kernel / faults: 8 minor0% 6978/tv.danmaku.bili:push: 0% user + 0% kernel / faults: 3 minor0% 14395/kworker/0:0: 0% user + 0% kernel0% 20178/com.miui.guardprovider: 0% user + 0% kernel / faults: 236 minor0% 3/ksoftirqd/0: 0% user + 0% kernel0% 7/rcu_preempt: 0% user + 0% kernel0% 568/logd: 0% user + 0% kernel0% 777/lmkd: 0% user + 0% kernel0% 883/sensors.qcom: 0% user + 0% kernel / faults: 30 minor0% 1032/ipacm: 0% user + 0% kernel0% 1962/com.android.systemui: 0% user + 0% kernel / faults: 3 minor0% 3090/com.xiaomi.xmsf: 0% user + 0% kernel / faults: 11 minor0% 3131/com.miui.whetstone: 0% user + 0% kernel / faults: 1 minor0% 5654/tcpdump: 0% user + 0% kernel0% 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:DockObserverMiuiBackupMiuiInitProcessManagerSurfaceFlingeraccessibilityaccountactivityalarmandroid.security.keystoreappopsappwidgetaudioautofillbackupbatterybatterypropertiesbatterystatsbluetooth_managercarrier_configclipboardcneservicecom.goodix.FingerprintServicecom.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     HeapTotal    Dirty    Clean    Dirty     Size    Alloc     Free------   ------   ------   ------   ------   ------   ------Native Heap    16448    16212        0        0    38912    33802     5109Dalvik Heap     6418     6400        0        0     5291     2646     2645Dalvik 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     7754App SummaryPss(KB)------Java Heap:     8964Native Heap:    16212Code:     4792Stack:       48Graphics:     4212Private Other:     2916System:     5108TOTAL:    42252       TOTAL SWAP PSS:        0ObjectsViews:      461         ViewRootImpl:        3AppContexts:        5           Activities:        3Assets:        5        AssetManagers:        3Local Binders:       43        Proxy Binders:       45Parcel memory:        9         Parcel count:       66Death Recipients:        7      OpenSSL Sockets:        1WebViews:        0SQLMEMORY_USED:        0PAGECACHE_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 stater[recents]: recent activities stateb[roadcasts] [PACKAGE_NAME] [history [-s]]: broadcast statebroadcast-stats [PACKAGE_NAME]: aggregated broadcast statisticsi[ntents] [PACKAGE_NAME]: pending intent statep[rocesses] [PACKAGE_NAME]: process stateo[om]: out of memory managementperm[issions]: URI permission grant stateprov[iders] [COMP_SPEC ...]: content provider stateprovider [COMP_SPEC]: provider client-side states[ervices] [COMP_SPEC ...]: service stateas[sociations]: tracked app associationssettings: currently applied config settingsservice [COMP_SPEC]: service client-side statepackage [PACKAGE_NAME]: all state related to given packageall: dump all activitiestop: dump the top activityWHAT 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, ahex 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=0ACTIVITY com.android.settings/.SubSettings ef1f9cb pid=14341Local Activity d0705dd State:mResumed=false mStopped=true mFinished=falsemChangingConfigurations=falsemCurrentConfig={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=trueActive Fragments in 38f2fae:#0: MiuiMyDeviceSettings{312814f #0 id=0x7f0a0290}mFragmentId=#7f0a0290 mContainerId=#7f0a0290 mTag=nullmState=3 mIndex=0 mWho=android:fragment:0 mBackStackNesting=0mAdded=true mRemoving=false mFromLayout=false mInLayout=falsemHidden=false mDetached=false mMenuVisible=true mHasMenu=truemRetainInstance=false mRetaining=false mUserVisibleHint=truemFragmentManager=FragmentManager{38f2fae in HostCallbacks{46150dc}}mHost=android.app.Activity$HostCallbacks@46150dcmArguments=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@46150dcmContainer=android.app.Fragment$1@504df74mParent=MiuiMyDeviceSettings{312814f #0 id=0x7f0a0290}mCurState=3 mStateSaved=true mDestroyed=falseAdded Fragments:#0: MiuiMyDeviceSettings{312814f #0 id=0x7f0a0290}Fragments Created Menus:#0: MiuiMyDeviceSettings{312814f #0 id=0x7f0a0290}FragmentManager misc state:mHost=android.app.Activity$HostCallbacks@46150dcmContainer=android.app.Activity$HostCallbacks@46150dcmCurState=3 mStateSaved=true mDestroyed=falseViewRoot:mAdded=true mRemoved=falsemConsumeBatchedInputScheduled=falsemConsumeBatchedInputImmediatelyScheduled=falsemPendingInputEventCount=0mProcessInputEventsScheduled=falsemTraversalScheduled=false      mIsAmbientMode=falseandroid.view.ViewRootImpl$NativePreImeInputStage: mQueueLength=0android.view.ViewRootImpl$ImeInputStage: mQueueLength=0android.view.ViewRootImpl$NativePostImeInputStage: mQueueLength=0Choreographer:mFrameScheduled=falsemLastFrameTime=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 helpcmd may be one of:l[ibraries]: list known shared librariesf[eatures]: list device featuresk[eysets]: print known keysetsr[esolvers] [activity|service|receiver|content]: dump intent resolversperm[issions]: dump permissionspermission [name ...]: dump declaration and use of given permissionpref[erred]: print preferred package settingspreferred-xml [--full]: print preferred package settings as xmlprov[iders]: dump content providersp[ackages]: dump installed packagess[hared-users]: dump shared user IDsm[essages]: print collected runtime messagesv[erifiers]: print package verifier infod[omain-preferred-apps]: print domains preferred appsi[ntent-filter-verifiers]|ifv: print intent filter verifier infoversion: print database version infowrite: write current settings nowinstalls: details about install sessionscheck-permission <permission> <package> [<user>]: does pkg hold perm?dexopt: dump dexopt statecompiler-stats: dump compiler statisticsenabled-overlays: dump list of enabled overlay packages<package.name>: info about given package

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

 

这篇关于(七十八) 查看Android状态的命令积累的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/511426

相关文章

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1565(状态压缩)

本人第一道ac的状态压缩dp,这题的数据非常水,很容易过 题意:在n*n的矩阵中选数字使得不存在任意两个数字相邻,求最大值 解题思路: 一、因为在1<<20中有很多状态是无效的,所以第一步是选择有效状态,存到cnt[]数组中 二、dp[i][j]表示到第i行的状态cnt[j]所能得到的最大值,状态转移方程dp[i][j] = max(dp[i][j],dp[i-1][k]) ,其中k满足c

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存

hdu3006状态dp

给你n个集合。集合中均为数字且数字的范围在[1,m]内。m<=14。现在问用这些集合能组成多少个集合自己本身也算。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.Inp

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0