技术标签: Linux高效命令
dumpsys命令功能很强大,能dump系统服务的各种状态,非常有必要熟悉该命令的用法以及含义。
不同的Android系统版本支持的命令有所不同,可通过下面命令查看当前手机所支持的dump服务,先进入adb shell,再执行如下命令:dumpsys -l
。 这些服务名或许你并看不出其调用的哪个服务,那么这时可以通过下面指令:service list
。
表一:
服务名 | 类名 | 功能 |
---|---|---|
activity | ActivityManagerService | AMS相关信息 |
package | PackageManagerService | PMS相关信息 |
window | WindowManagerService | WMS相关信息 |
input | InputManagerService | IMS相关信息 |
power | PowerManagerService | PMS相关信息 |
batterystats | BatterystatsService | 电池统计信息 |
battery | BatteryService | 电池信息 |
alarm | AlarmManagerService | 闹钟信息 |
dropbox | DropboxManagerService | 调试相关 |
procstats | ProcessStatsService | 进程统计 |
cpuinfo | CpuBinder | CPU |
meminfo | MemBinder | 内存 |
gfxinfo | GraphicsBinder | 图像 |
dbinfo | DbBinder | 数据库 |
表二:
服务名 | 功能 |
---|---|
SurfaceFlinger | 图像相关 |
appops | app使用情况 |
permission | 权限 |
processinfo | 进程服务 |
batteryproperties | 电池相关 |
audio | 查看声音信息 |
netstats | 查看网络统计信息 |
diskstats | 查看空间free状态 |
jobscheduler | 查看任务计划 |
wifi | wifi信息 |
diskstats | 磁盘情况 |
usagestats | 用户使用情况 |
devicestoragemonitor | 设备信息 |
。。。 | 。。。 |
未完待续…
通过下面命令可打印具体某一项服务:dumpsys <service>
,其中便是前面表格中的服务名,比如:
dumpsys cpuinfo //打印一段时间进程的CPU使用百分比排行榜
dumpsys meminfo -h //查看dump内存的帮助信息
dumpsys package <packagename> //查看指定包的信息
系统服务非常之多,那么接下来将重点说说其中之一:dumpsys activity
用法.
dumpsys activity [options] [cmd]
下面分别说说options和cmd有哪些可选值
options可选值:
-a
:dump所有;-c
:dump客户端;-p [package]
:dump指定的包名;-h
:输出帮助信息;dumpsys activity
等价于依次输出下面7条指令:
dumpsys activity intents
dumpsys activity broadcasts
dumpsys activity providers
dumpsys activity services
dumpsys activity recents
dumpsys activity activities
dumpsys activity processes
cmd可选值
cmd | 解释 | 缩写 |
---|---|---|
activities | activity状态 | a |
broadcasts | 广播 | b |
intents | pending intent状态 | i |
processes | 进程 | p |
oom | 内存溢出 | o |
services | Service状态 | s |
service | service状态(Client端) | |
providers | ContentProvider状态 | prov |
provider | ContentProvider状态(Client端) | |
associations | tracked app associations | as |
permissions | URI permission grant state | perm |
package | package相关信息 | |
all | 所有的activities信息 | |
recents | recent activity状态 | r |
top | top activity信息 | |
write | 将状态持久化到存储区 | |
track-associations | 使能association tracking | |
untrack-associations | 禁止和清空association tracking |
包名
,另外services和providers还可以跟组件名
;下面以新浪微博App作为实例,由于输出结果较多,每个场景截图只挑选部分重要的信息。
场景1:查询某个App所有的Service状态
dumpsys activity s com.sina.weibo
解读:
com.morgoo.droidplugin.PluginManagerService
;7220
,进程名为com.sina.weibo
,uid=10094
;7306
,进程名为com.sina.weibo:PluginP03
。当然还有packageName,baseDir(apk路径),dataDir(apk数据路径),createTime等各种信息。另外,新浪微博采用的是360开源的Android插件机制(com.morgoo.droidplugin
),主要用于hotfix等功能。
场景2:查询某个App所有的广播状态
dumpsys activity s com.sina.weibo
解读:
7220
,进程名为com.sina.weibo
场景3:查询某个App所有的Activity状态
输出结果较多,尤其是View Hierarchy
,下面截取部分:
dumpsys activity a com.sina.weibo
解读:
1802
,Affinity=com.sina.weibo
,当前Task中Activity个数为1。com.sina.weibo
;com.sina.weibo/.SplashActivity
。场景4:查询某个App的进程状态
dumpsys activity p com.sina.weibo
com.sina.weibo:PluginP03
,uid=10094.其他
还有很多场景,会用到不同的参数,这里就不再一一列举,建议大家多去尝试,慢慢地就更加熟练,再比如:
dumpsys activity top //当前界面app状态
dumpsys activity oom //进程oom状态
Semaphore简介Semaphore是一个计数信号量,它的本质是一个"共享锁"。信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则线程必须等待,直到有可用的许可为止。 线程可以通过release()来释放它所持有的信号量许可。Semaphore的函数列表
页面预览该实战项目是(不怎么严谨的)电子商务网站。首页商品列表页面登录页面注册页面购物车列表支付完成页面Dashboard 页面普通用户页面购买历史页面资料更新页面管理员页面创建分类页面创建商品页面订单列表页面显示所有用户的订单客户端技术栈介绍脚本:TypeScript前端框架:React路由管理:react-router-dom用户界面:Ant Design全局状态管理:Redux一部状态更新:redux-saga路由状态同步:co
原文地址:http://www.cnblogs.com/developersupport/p/webpage-performance-best-practices.html你愿意为打开一个网页等待多长时间?我一秒也不愿意等。但是事实上大多数网站在响应速度方面都让人失望。现在越来越多的人开始建立自己的网站,博客,你的网页响应速度如何呢?在这篇文章中我们来介绍一下提高网页性能的最佳实践,以及相应的
目录需要注意的细节:1.绘制多幅图像,很好的一种思路:2.求最大值3.关于维度的问题4.求准确率的方法5.10分类的最大损失值6.初始值不合适,直接发散。见下图7.全部代码7.1加载数据7.1.1可视化数据7.1.2预处理数据7.2建立模型7.2.1训练前的测试7.2.2训练模型7.2.3训练后的测试7.2.4准确率计算需要注意的...
zabbix的安装方式有很多,这次用个比较简单的,通过阿里云进行安装。我的环境是centos7.3 1.3.10.0-514.26.2.el7.x86_641.由于默认安装的PHP是 5.4,漏洞较多,所以先把PHP5.6 安装上,安装连接http://adamcrab.blog.51cto.com/842470/19465162.使用阿里yum源[[email protected]...
IBM Java 和 Sun Java支持的第三方工具不太一样,在AIX 服务器上只能安装IBM JAVA,那么当我们运行的Java程序出现可疑的内存泄漏,该如何诊断呢?一、什么是heapdump HeapDump文件是一个二进制文件,它保存了某一时刻JVM堆中对象使用情况,这种文件需要相应的工具进行分析。二、如何生成Heapdump: 1. 设置参数
这篇博客将介绍如何使用Python,OpenCV对图像进行亚像素检测,并对亚像素点进行椭圆拟合绘制。
我们最常见的mp4类型的视频,直接通过vue原生的video引入就可以了。但是当接入的视频是直播视频流时,video是不支持的,所以我们需要通过一定的插件辅助,在实现功能前先介绍几个概念。
1.HTML DOM(文档对象模型)当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)HTML DOM模型被构造为对象的树HTML DOM树通过这个对象模型,javascript获得了足够的能力来创建动态的HTMLJavaScript能够改变页面中的所有HTML元素JavaScript能够改变页面中的所有HTML
【题目链接】http://www.lydsy.com/JudgeOnline/problem.php?id=1012【解题报告】 水题,可以解决的算法很多,不过第一眼看上去会倾向于线段树解决,思路更自然,不过如果用单调栈维护的话显然代码更短更不容易出错,所以就写了一下。 单调栈用来维护什么呢?我们要知道要查找后l个数中的最大值,那么当我们在栈中维护一个单调递减数列时,可以保证在数列中取
转载自:https://blog.csdn.net/songyunli1111/article/details/78690447标准版:大部分人都知道的比较快的方法:判断从 2 到 sqrt(n) 是否存在其约数,时间复杂度 O(sqrt(n))高配版:判断 2 之后,就可以判断从 3 到 sqrt(n) 之间的奇数了,无需再判断之间的偶数,时间复杂度 O(sqrt(n)/2)尊享版:...
嵌入式软件,就是运行在嵌入式系统上的软件,而不是运行在通用PC上。嵌入式系统一般用在专用设备上。像手机、可穿戴设备、数字相机、机顶盒、游戏机、智能玩具、数控设备或仪表、汽车电子、医疗仪器、航天航空设备等都是典型的嵌入式系统。嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体...