Android 查看設備信息

藉助getprop、dumpsys來了解一些系統相關信息。java

1、getpropandroid

adb shell cat /system/build.prop 文件中存放的是用於啓動系統時須要的配置文件,一般能夠經過命令getprop獲取,setprop設置。shell

adb shell getprop就是將配置文件裏的信息讀取出來並通過整理後,並以字典的形式展現給用戶的。app

它的格式以下:
getprop [key]  取得對應的key的屬性值
getprop  列出全部配置屬性值
若是要修改屬性的話,很簡單,只需修改字典值就能夠了,如:
setprop [key] [value] 設置指定key的屬性值;
watchprops  監聽系統屬性的變化,若是期間系統的屬性發生變化則把變化的值顯示出來
其實這三個命令都是toolbox的子命令,若是有興趣的能夠看在android源碼中看到其對應的源碼:system/core/toolbox/iphone

adb shell getprop 查看機器的所有信息參數
adb shell getprop ro.serialno 查看機器的序列號
adb shell getprop ro.carrier 查看機器的CID號
adb shell getprop ro.hardware 查看機器板子代號
adb shell getprop ro.bootloader 查看SPL(Hboot)版本號socket

adb shell getprop dhcp.wlan0.ipaddress 得到IPide

adb shell getprop ro.sf.lcd_density 得到屏幕密度ui

adb shell getprop ro.serialno 查看serial numberspa

adb shell getprop|grep heapgrowthlimit 查看單個應用程序最大內存限制線程

adb shell getprop|grep dalvik.vm.heapstartsize 查看應用啓動後分配的初始內存

adb shell getprop|grep dalvik.vm.heapsize 查看單個java虛擬機最大的內存限制

2、dumpsys

dumpsys 命令用來查看每一個服務的運行狀況。

常見的Service:

DMAgent
      NvRAMAgent
      SurfaceFlinger
      accessibility
      account
      activity
      alarm
      appwidget
      audio
      audioprofile
      backup
      battery
      batteryinfo
      bluetooth
      bluetooth_a2dp
      bluetooth_profile_manager
      bluetooth_socket
      clipboard
      connectivity
      content
      country_detector
      cpuinfo
      device_policy
      devicestoragemonitor
      diskstats
      drm.drmManager
      dropbox
      entropy
      gfxinfo
      hardware
      input_method
      iphonesubinfo
      isms
      location
      media.audio_flinger
      media.audio_policy
      media.camera
      media.mdp_service
      media.player
      meminfo
      memory.dumper
      mount
      mtk-agps
      mtk-epo-client
      netpolicy
      netstats
      network_management
      notification
      oppo.com.IRUtils
      package
      permission
      phone
      power
      samplingprofiler
      search
      sensorservice
      simphonebook
      statusbar
      telephony.registry
      telephony.registry2
      textservices
      throttle
      uimode
      usagestats
      usb
      vibrator
      wallpaper
      wifi
      wifip2p
      window

adb shell dumpsys window 或者adb shell dumpsys window displays 查看設備的分辨率
adb shell dumpsys meminfo $package_name or $pid   經過使用程序的包名或者進程id,查看某一程序的內存使用狀況

 3、top

adb shell top -m 5 -s cpu 查看前5個進程cup的使用狀況

日誌說明:





User 35%, System 13%, IOW 0%, IRQ 0% // CPU佔用率 User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306 // CPU使用狀況 PID CPU% S #THR VSS RSS PCY UID Name // 進程屬性 xx xx% x xx xx xx xx xx xx CPU佔用率: User 用戶進程 System 系統進程 IOW IO等待時間 IRQ 硬中斷時間 CPU使用狀況(指一個最小時間片內所佔時間,單位jiffies。或者指所佔進程數): User 處於用戶態的運行時間,不包含優先值爲負進程 Nice 優先值爲負的進程所佔用的CPU時間 Sys 處於核心態的運行時間 Idle 除IO等待時間之外的其它等待時間 IOW IO等待時間 IRQ 硬中斷時間 SIRQ 軟中斷時間 進程屬性: PID 進程在系統中的ID CPU% 當前瞬時因此使用CPU佔用率 S 進程的狀態,其中S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值是負數。 #THR 程序當前所用的線程數 VSS Virtual Set Size 虛擬耗用內存(包含共享庫佔用的內存) RSS Resident Set Size 實際使用物理內存(包含共享庫佔用的內存) PCY OOXX,不知道什麼東東 UID 運行當前進程的用戶id Name 程序名稱android.process.media // ps:內存佔用大小有以下規律:VSS >= RSS >= PSS >= USS // PSS Proportional Set Size 實際使用的物理內存(比例分配共享庫佔用的內存) // USS Unique Set Size 進程獨自佔用的物理內存(不包含共享庫佔用的內存)

咱們通常觀察Uss來反映一個Process的內存使用狀況,Uss 的大小表明了只屬於本進程正在使用的內存大小,這些內存在此Process被殺掉以後,會被完整的回收掉,

Vss和Rss對查看某一Process自身內存情況沒有什麼價值,由於他們包含了共享庫的內存使用,而每每共享庫的資源佔用比重是很大的,這樣就稀釋了對Process自身建立內存波動。 而Pss是按照比例將共享內存分割,某一Process對共享內存的佔用狀況。

so

查看USS和PSS可使用adb shell procrank,前提是手機須要root

bixiaopeng@bixiaopengtekiMacBook-Pro ~$ adb shell procrank |grep xiami

若是隻是查看PSS也可使用adb shell dumpsys meminfo

bixiaopeng@bixiaopengtekiMacBook-Pro ~$ adb shell dumpsys meminfo fm.xiami.main|grep TOTAL
        TOTAL   143070    15312   130020   135179   122279    12667

舒適提示:

在取內存數據前能夠前判斷一下手機是否root, 若是root了取USS比較好一些,若是沒有root取PSS也是能夠的。

相關文章
相關標籤/搜索