借助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也是可以的。

Android 查看设备信息的更多相关文章

  1. 【MonkeyRunner】[技术博客]用python编写脚本查看设备信息

    [MonkeyRunner]用python编写脚本查看设备信息 原以为是个简单的操作,在实践的时候发现了一些问题. python脚本 test.py: from com.android.monkeyr ...

  2. Android 获取设备信息 异常

    /**获取设备信息 * @param c * @return */ public static void setDeviceInfo(Context c,RequestParams params){ ...

  3. Linux查看设备信息命令

    系统 #查看内核/操作系统/CPU信息 uname -a #查看操作系统版本 head -n 1 /etc/issue #查看CPU信息 cat /proc/cpuinfo #查看计算机名 hostn ...

  4. OpenCL 查看设备信息

    好久没搞OpenCL了.可是这是个好东西.不能不学,之前发了篇设置OpenCL的文章.看的人还真多,看来大家都知道这个好东西了,都想把OpenCL搞起.只是学习难度还是相当高的. 之前忙搞算法,所以非 ...

  5. iOS开发的另类神器:libimobiledevice开源包【类似android adb 方便获取iOS设备信息】

    简介 libimobiledevice又称libiphone,是一个开源包,可以让Linux支持连接iPhone/iPod Touch等iOS设备.由于苹果官方并不支持Linux系统,但是Linux上 ...

  6. ADB——查看手机设备信息

    查看设备信息 查看手机型号 adb shell getprop ro.product.model 查看电池状况 adb shell dumpsys battery ''' Current Batter ...

  7. 【Android】设备标识简介(imei imsi mac地址)

    IMEI: 1- 意义: 参考http://zh.wikipedia.org/zh-cn/IMEI  国际移动设备辨识码 ,共15位,和厂商,产地等有关. 2- 获取: 直接查看设备信息,设置-关于手 ...

  8. Android 设备,如何root,执行adb shell,查看设备中的数据库信息等【转】

    原文地址: Android 设备,如何root,执行adb shell,查看设备中的数据库信息等

  9. Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)

    ADB很强大,记住一些ADB命令有助于提高工作效率. 获取序列号: adb get-serialno 查看连接计算机的设备: adb devices 重启机器: adb reboot 重启到bootl ...

随机推荐

  1. (转载)Android之有效防止按钮多次重复点击的方法(必看篇)

    为了防止测试妹子或者用户频繁点击某个按钮,导致程序在短时间内进行多次数据提交or数据处理,那到时候就比较坑了~ 那么如何有效避免这种情况的发生呢? 我的想法是,判断用户点击按钮间隔时间,如果间隔时间太 ...

  2. Optional是以enum和泛型为基础的高阶类型

    结论:1.optionals使用时需要检查:2.可以通过!+赋值语句转化为非optionals. Optional-Generic Enumeration enum Optional<T> ...

  3. + (void)initialize vs 静态构造方法

    在继承体系中,多个子类的引用,父类缺省执行一次: 特殊情况: 1)子类没有实现.调用父类方法: 2)子类显示调用父类: 3)存在分类实现,分类实现覆盖本体. Initializes the class ...

  4. 用AI识别内部人威胁面临的道德规范

    用AI识别内部人威胁面临的道德规范 还记得汤姆·克鲁斯的<少数派报告>吗?人工智能可识别昭示未来风险的员工行为.该如何有效且有道德地使用这一数据呢? 为保护公司网络不受恶意软件.数据渗漏和 ...

  5. POJ-2240 Arbitrage BellmanFord查可循环圈

    题目链接:https://cn.vjudge.net/problem/POJ-2240 题意 套利(Arbitrage)就是通过不断兑换外币,使得自己钱变多的行为 给出一些汇率 问能不能套利 思路 马 ...

  6. 【转载】CPU架构、指令集与指令集体系结构(ISA)

    最近学习计算机系统基础,了解到指令集体系结构. 对CPU架构.指令集和指令集体系结构的关系不清楚,特此记录. 指令集体系结构(ISA)包括 指令集.指令集编码.基本数据类型等. CPU架构 实现了 指 ...

  7. Chrome扩展程序推荐

    Chrome扩展程序 AdBlock 印象笔记 网页截图:注释&录屏 油猴 zenmate-vpn sourcegraph 推荐网站

  8. Python排序 插入排序

    插入排序从前往后遍历数组的每一个元素,对每一位元素都将其插入到已经有序的部分数组中,所以插入排序的要点就是找出要插入元素在已经有序的部分中的位置,同时,由于插入排序采用原地排序(in-place)算法 ...

  9. 个人创业了,做了个网站和App,www.91tianwu.com

    大家好! 很久没有写文章了,响应党和政府号召,创业了.此文为了推广我的网站而写,希望有兴趣的看看. 我做了添物网,地址:http://www.91tianwu.com. 主要做购物导航推荐,目前集中在 ...

  10. 数学之路-python计算实战(6)-numpy-ndarray

    >>>> mya=np.zeros(shape=(2,2)) >>>> mya array([[ 0.,  0.], [ 0.,  0.]]) > ...