zoukankan      html  css  js  c++  java
  • Android 查看设备信息

    借助getprop、dumpsys来了解一些系统相关信息。

    一、getprop

    adb shell cat /system/build.prop 文件中存放的是用于启动系统时需要的配置文件,通常可以通过命令getprop获取,setprop设置。

    adb shell getprop就是将配置文件里的信息读取出来并经过整理后,并以字典的形式展示给用户的。

    它的格式如下:
    getprop [key]  取得对应的key的属性值
    getprop  列出所有配置属性值
    如果要修改属性的话,很简单,只需修改字典值就可以了,如:
    setprop [key] [value] 设置指定key的属性值;
    watchprops  监听系统属性的变化,如果期间系统的属性发生变化则把变化的值显示出来
    其实这三个命令都是toolbox的子命令,如果有兴趣的可以看在android源码中看到其对应的源码:system/core/toolbox/

    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)版本号

    adb shell getprop dhcp.wlan0.ipaddress 获得IP

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

    adb shell getprop ro.serialno 查看serial number

    adb shell getprop|grep heapgrowthlimit 查看单个应用程序最大内存限制

    adb shell getprop|grep dalvik.vm.heapstartsize 查看应用启动后分配的初始内存

    adb shell getprop|grep dalvik.vm.heapsize 查看单个java虚拟机最大的内存限制

    二、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,查看某一程序的内存使用情况

     三、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也是可以的。

  • 相关阅读:
    用正则表达式简单加密(C#为例)
    新浪微博error:redirect_uri_mismatch的解决方法 [
    UITableView延伸:点击cell关闭键盘,加载不同cell,监听里面的textfeild内容改变
    iossharesdk微信登录出错
    关于IOS项目QQ空间授权提示安装最新版本的QQ的解决方法!
    如何解决 错误code signing is required for product type 'xxxxx' in SDK 'iOS 8.2'
    UITableView加载几种不同的cell
    iOS学习小结(一)
    开源中国+soucetree
    获取本机ip地址
  • 原文地址:https://www.cnblogs.com/Jason-c/p/7606796.html
Copyright © 2011-2022 走看看