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也是能够的。