日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

转:AMS之dumpsys篇

發布時間:2024/4/14 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转:AMS之dumpsys篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于Android 7.0的源碼分析

一.概述

前面介紹過AMS相關的一些數據結構,每個數據結構有大量的成員變量,為了查詢當前手機運行時狀態的 變化值,可以通過dumpsys activity命令來完成,該方法最終是調用AMS.dump()方法。

dumpsys命令用法簡要介紹過dumpsys命令 的基本用法,以及系統服務列表信息,那么本文重點介紹AMS。 根據dumpsys activity傳遞不同的參數, 對于AMS.dump便會輸出相應的對象信息。 具體可以跟哪些參數.

1.1 命令格式

dumpsys activity [options] [WHAT] 復制代碼

其中options為可選項,以-開頭, 主要有以下幾類:

options含義
-a包括所有可用Server狀態
-c包括Client狀態,即App端情況
-p PACKAGE限定輸出指定包名

1.2 WHAT參數

列舉常見的WHAT參數:

序號WHAT解釋對應源碼
1a[ctivities]activity狀態dumpActivitiesLocked()
2b[roadcasts] [PACKAGE_NAME]broadcast狀態dumpBroadcastsLocked()
3s[ervices] [COMP_SPEC …]service狀態newServiceDumperLocked().dumpLocked
4prov[iders] [COMP_SPEC …]content provider狀態dumpProvidersLocked()
5p[rocesses] [PACKAGE_NAME]進程狀態dumpProcessesLocked()
6o[om]內存管理dumpOomLocked()
7i[ntents] [PACKAGE_NAME]pending intent狀態dumpPendingIntentsLocked()
8r[ecents]最近activitydumpRecentsLocked()
9perm[issions]URI授權情況dumpPermissionsLocked()
10all所有activities信息dumpActivity()
11top頂部activity信息dumpActivity()
12packagepackage相關信息dump()

其中PACKAGE_NAME是指可跟包名,COMP_SPEC是指可跟具體組件信息,中括號是指縮寫字母;

二. dumpsys activity

前面介紹dumpsys activity根據后面跟著的不同參數則輸出相應的內容,當不跟任何參數, dumpsys activity等價于依次輸出下面8條命令:

dumpsys activity intents dumpsys activity broadcasts //廣播 dumpsys activity providers //provider dumpsys activity permissions dumpsys activity services //服務 dumpsys activity recents dumpsys activity activities //activity dumpsys activity processes 復制代碼

依次簡要說明這8條命令:

2.1 intents

//標志性開頭,dumpPendingIntentsLocked ACTIVITY MANAGER PENDING INTENTS (dumpsys activity intents) 復制代碼

輸出對象:

  • PendingIntentRecord

2.2 broadcasts

//標志性開頭,dumpBroadcastsLocked ACTIVITY MANAGER BROADCAST STATE (dumpsys activity broadcasts)Registered Receivers:Receiver Resolver Table:Historical broadcasts [foreground]:Historical broadcasts summary [foreground]:Historical broadcasts [background]:Historical broadcasts summary [background]:Sticky broadcastsmHandler 復制代碼

主要輸出的對象:

  • ReceiverList, BroadcastFilter,
  • IntentResolver,
  • BroadcastQueue, BroadcastRecord
  • Handler, Looper

2.3 provider

//標志性開頭,dumpProvidersLocked ACTIVITY MANAGER CONTENT PROVIDERS (dumpsys activity providers)Published single-user content providers (by class):Published user [n] content providers (by class):Single-user authority to provider mappings:User [n] authority to provider mappings: 復制代碼

主要輸出的對象:

  • ProviderMap
  • ContentProviderRecord, ContentProviderConnection

2.4 permissions

//標志性開頭,dumpPermissionsLocked ACTIVITY MANAGER URI PERMISSIONS (dumpsys activity permissions) 復制代碼

主要輸出的對象:

  • UriPermission

2.5 Service

//標志性開頭,newServiceDumperLocked().dumpLocked ACTIVITY MANAGER SERVICES (dumpsys activity services) 復制代碼

主要輸出的對象:

  • ActiveServices,
  • ServiceRecord, ConnectionRecord,ProcessRecord

2.6 recents

//標志性開頭,dumpRecentsLocked ACTIVITY MANAGER RECENT TASKS (dumpsys activity recents) 復制代碼

主要輸出的對象:

  • TaskRecord

2.7 activities

//標志性開頭,dumpActivitiesLocked ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)Display #0 (activities from top to bottom):Stack #0:Task id #[n]* Hist #[m]:Stack #1: 復制代碼

主要輸出的對象:

  • ActivityStackSupervisor, ActivityStack,
  • TaskRecord, ActivityRecord
  • ActivityThread, Activity
  • ViewRootImpl
  • Looper, MessageQueue

輸出格式樣例:

//{Hashcode #TaskId Affinity UserId 該task的Activity個數}; TaskRecord{e6d7a8e #156 A=com.gityuan.demo U=0 sz=1} userId=0 effectiveUid=1000 mCallingUid=1000 mCallingPackage=android realActivity=com.gityuan.demo/.Blog//ProcessRecord{Hashcode pid:進程名/uid} ProcessRecord{7c8a2af 12265:com.gityuan.demo/1000} 復制代碼

2.8 processes

//標志性開頭,dumpProcessesLocked ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes)All known processes:Isolated process list (sorted by uid):UID states:UID validation:Process LRU list (sorted by oom_adj, 60 total, non-act at 2, non-svc at 2):PID mappings:Foreground Processes: 復制代碼

主要輸出的對象:

  • AMS各種進程對象
  • ProcessRecord, UidRecord

轉載:http://gityuan.com/2017/07/04/ams_dumpsys/


轉載于:https://juejin.im/post/5c067ed8f265da613b6f8bfa

總結

以上是生活随笔為你收集整理的转:AMS之dumpsys篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。