Android查看app内存和cpu占用
1.可以使用adb shell showmap pid查看一个进程的showmap,这对于我们来说非常有用,可以确定进程中哪些库占用内存比较多
1,确定app进程号,通过jarvis过滤,ps-A显示全部进程
ps命令使用
cmd通过adb shell进入与移动设备的命令交互界面。 然后使用ps指令, 最常用的是ps -aux和ps -ef与grep混合用, 筛选要查找的进程信息ps -ef|grep "筛选的进程字符" adb shell ps|more 显示全部进程信息(加|more为了分页显示)
筛选需要的进程信息 adb shell ps -ef |findstr "筛选进程信息" ps: adb shell ps -ef |findstr "baidu"
g6sa:/ # ps -A | grep jarvis
ps -A | grep jarvis
u0_a37 21979 2223 3858620 193980 SyS_epoll_wait 0 S cn.alios.jarvisd
u0_a47 22750 2223 3829168 172756 SyS_epoll_wait 0 S com.ebanma.jarvis
2,showmap
可以通过adb shell showmap 22750 > log7.txt 将info保存到日志里
adb shell showmap 22750virtual shared shared private privatesize RSS PSS clean dirty clean dirty swap swapPSS # object
-------- -------- -------- -------- -------- -------- -------- -------- -------- ---- ------------------------------336 336 103 336 0 0 0 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/base.apk44 44 44 0 0 36 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libBroadcastSignal.so44 44 44 0 0 36 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libCarVapiSignal.so268 268 268 0 0 252 16 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libCosmoSignal.so96 88 88 0 0 80 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libDistributeActuator.so592 356 356 0 0 340 16 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libLbsFenceActuator.so164 164 164 0 0 152 12 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libLbsSignal.so44 44 44 0 0 36 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libMapSignal.so48 48 48 0 0 40 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libStatusActuator.so52 52 52 0 0 44 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libStatusSignal.so56 56 56 0 0 48 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libalios_log.so20 20 20 0 0 12 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libatrace.so348 244 244 0 0 228 16 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libbase.so892 656 656 0 0 620 36 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libc++_shared.so1904 1012 1012 0 0 848 164 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libcrypto.so40 40 40 0 0 32 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libfreexl.so1684 732 732 0 0 668 64 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libgeos.so464 68 68 0 0 64 4 0 0 2 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libicudata.so1416 724 724 0 0 680 44 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libidot.so21960 15624 15624 0 0 15136 488 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libjarvis_engine.so936 916 916 0 0 880 36 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libjarvis_items.so360 352 352 0 0 336 16 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libjarvisbase.so140 68 68 0 0 64 4 0 0 2 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libjarvisdlzma.so1472 248 248 0 0 204 44 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libjarvisdxml2.so88 72 72 0 0 64 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libjarvisdz.so84 84 84 0 0 76 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libjarvisjniloader.so168 160 160 0 0 152 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libjsoncpp.so304 76 76 0 0 64 12 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libproj.so32 32 32 0 0 24 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libproperties.so1220 1136 1136 0 0 1108 28 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libsgmainso-5.4.193.so5204 128 128 0 0 112 16 0 0 2 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libspatialite.so1324 1160 1160 0 0 1140 20 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libsqlite3.so164 164 164 0 0 156 8 0 0 3 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/lib/arm64/libuv.so4 4 4 0 0 4 0 0 0 1 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/oat/arm64/base.art72 72 72 0 0 68 4 0 0 4 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/oat/arm64/base.odex3540 3028 3028 0 0 3028 0 0 0 1 /data/app/com.ebanma.jarvis-49tUzEJIztwJUQdjlSRzhg==/oat/arm64/base.vdex17152 17108 1784 14300 1412 0 1396 0 0 3 /data/dalvik-cache/arm64/system@framework@boot.art
2.dumpsys meminfo分析
Applications Memory Usage (in Kilobytes):
Uptime: 11439815 Realtime: 11439815** MEMINFO in pid 22750 [com.ebanma.jarvis] **Pss Private Private SwapPss Heap Heap HeapTotal Dirty Clean Dirty Size Alloc Free------ ------ ------ ------ ------ ------ ------Native Heap 14246 14188 0 0 20480 14419 6060Dalvik Heap 2342 2004 0 0 3901 1951 1950Dalvik Other 893 892 0 0 Stack 44 44 0 0 Ashmem 2 0 0 0 Other dev 13 0 12 0 .so mmap 26613 1404 23732 0 .apk mmap 383 0 12 0 .ttf mmap 23 0 0 0 .dex mmap 3926 8 3336 0 .oat mmap 910 0 0 0 .art mmap 1722 1392 4 0 Other mmap 190 4 36 0 GL mtrack 7005 7005 0 0 Unknown 1666 1628 0 0 TOTAL 59978 28569 27132 0 24381 16370 8010App SummaryPss(KB)------Java Heap: 3400Native Heap: 14188Code: 28492Stack: 44Graphics: 7005Private Other: 2572System: 4277TOTAL: 59978 TOTAL SWAP PSS: 0ObjectsViews: 19 ViewRootImpl: 1AppContexts: 5 Activities: 1Assets: 3 AssetManagers: 0Local Binders: 22 Proxy Binders: 31Parcel memory: 9 Parcel count: 38Death Recipients: 6 OpenSSL Sockets: 5WebViews: 0SQLMEMORY_USED: 0PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 117
3,cpu占用率分析
top -d 5 | grep 17618 设置top频率5s一次
top -d 5 | grep 17618
18101 shell 20 0 8.8M 6.2M 1.8M S 0.0 0.1 0:00.01 grep 17618
17618 u0_a56 10 -10 3.6G 169M 134M S 0.0 3.2 0:03.64 com.ebanma.jarv+
17618 u0_a56 10 -10 3.6G 169M 134M S 0.6 3.2 0:03.64 com.ebanma.jarv+
[H[JTasks: 356 total, 1 running, 286 sleeping, 0 stopped, 1 zombie
17618 u0_a56 10 -10 3.6G 171M 134M S 0.6 3.2 0:03.70 com.ebanma.jarv+
17618 u0_a56 10 -10 3.6G 175M 134M S 0.8 3.3 0:03.77 com.ebanma.jarv+
[H[JTasks: 358 total, 2 running, 287 sleeping, 0 stopped, 1 zombie
17618 u0_a56 10 -10 3.6G 170M 134M S 0.4 3.2 0:03.83 com.ebanma.jarv+
17618 u0_a56 10 -10 3.6G 170M 134M S 0.4 3.2 0:03.86 com.ebanma.jarv+
18217 shell 20 0 8.8M 6.2M 1.9M S 0.4 0.1 0:00.01 grep 17618
[H[JTasks: 357 total, 2 running, 287 sleeping, 0 stopped, 1 zombie
18101 shell 20 0 8.8M 6.2M 1.8M S 0.2 0.1 0:00.01 grep 17618
也可查看占用cpu最高的前10个程序(-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量):
top -m 10 -s 9 (数字9代表按照cpu占用率排序,-s后面只能跟数字)
做cpu占用率测试时需要执行一些命令辅助我们测试,比如每隔500ms发一次广播,可以借助脚本:
while true
doadb shell am broadcast -a android.intent.action.openTinyAppp -e data datavaluesleep 0.5secho '+++++++++++++++++++'
done
Android查看app内存和cpu占用相关推荐
- Android Q app内存压缩优化方案介绍
Android Q app内存压缩优化方案介绍 原创文章,谢绝转载! Android Q新增了部分系统性能优化方案,这里简单学习下,本篇文章先分析app compaction. 一.愿景: 在保证后台 ...
- Android性能测试——获取内存和cpu使用情况
Android性能测试--获取内存和cpu使用情况 在测试Android应用的过程中,内存和cpu值大小是测试的重点之一,本文将列举几种工作中常用的获取方式. 一.使用top获取内存和cpu信息 获取 ...
- Ubuntu查看系统内存和CPU运行情况
Ubuntu下可以使用top命令查看当前内存和CPU使用情况 如下图 输入时主要参数 d:指定更新的间隔,以秒计算. q:没有任何延迟的更新.如果使用者有超级用户,则top命令将会以最高的优先序执行. ...
- Android 查看App冷启动时间/热启动时间/页面打开时间
Android 查看App冷启动时间/热启动时间/页面打开时间 冷启动时间 热启动时间 页面打开时间 通过adb查看 adb shell am start -W packageName/Activit ...
- ubuntu下查看电脑内存硬盘CPU显卡驱动等配置命令
ubuntu16.04查看电脑内存硬盘CPU显卡驱动等配置命令 按Ctrl+Alt+T键,调出终端窗口. 1.内存总大小:free -m mem:后面的 total 栏显示你的内存总大小. 如图:内存 ...
- win10msmpeng占内存_微软win10吃内存,CPU占用高,没有优化好?做好这3点系统快如飞...
随着win7更新关闭日期的到来,还剩两天时间了,届时微软将不在为win7提供补丁了,安全问题就会日益严重,尽管win7使用起来很省内存,CPU占用不高,但安全问题大于一切,使用win10就成了大多数网 ...
- android查看存储占用,Android获取App内存使用情况的方法
1.代码获取当前app内存的使用情况 ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SER ...
- 查看服务器内存、CPU、网络等占用情况的命令--汇总
搭建测试环境过程中,需要对正在使用的aws服务器(实际这是一台虚拟出来的服务器),查看它在运行脚本,启动脚本时的内存,CPU,网络等使用情况 1.查看服务器cpu内核个数: -cat 每个物理cpu中 ...
- Linux查看内存和CPU占用排名前10相关
查看内存占比占用最多前十排名 ps auxw|head -1;ps -auxf|sort -nr -k4|head -10 查看CPU占比占用最多前十排名 ps auxw|head -1;ps -au ...
最新文章
- dropdownlist绑定的二种方法
- soapui工具_python接口自动化(四)--接口测试工具介绍(详解)
- java文件用editplus乱码,EditPlus设置编码后,编译时仍然出现乱码
- 如何使用CSS创建巧妙的动画提示框
- gdb vscode 不进入断点_VScode配置MASM32运行环境(断点/运行/debug/配合emu8086(非DOSBox))...
- FOI冬令营 Day2
- python如何创建txt_如何通过读取.txt文件为每个键创建包含多个“列表”的Python字典?...
- SQL Server数据库中的T-SQL如果存在语句概述
- HTML语言的一些元素(二)
- visual studio-wdk8.1+vs2013中使用winusb模版开发usb设备驱动
- php 调用redfish,Huawei iBMC 通过redfish接口设置KVM key登录html5远程控制台操作记录
- IBM刀片服务器虚拟化方案
- TUIO学习笔记2-TUIO C++ Reference Implementation and Demo Application参考实现和Demo程序(图片版,防查重)
- 积分器-微分器-抽取器
- 对于java文件不能访问的情况分析
- 继电器触点RC吸收电路
- 如何查看有关计算机系统类型,电脑系统类型在哪查看
- QT从入门到入土(三)——信号和槽机制
- PCIE--1--概念认知
- adams功能区不显示_2019新版PPT,不知道这7个新功能,怎么做好幻灯片?