Android动态获取当前应用占用的内存PSS,Java

发布于:2025-07-17 ⋅ 阅读:(14) ⋅ 点赞:(0)

Android动态获取当前应用占用的内存PSS,Java

        Debug.MemoryInfo memoryInfo = new Debug.MemoryInfo();
        Debug.getMemoryInfo(memoryInfo);
        long pssKB = memoryInfo.getTotalPss();

单位是KB。

也可以通过adb命令获取:

adb shell dumpsys meminfo

PSS与RSS的区别

在Android和Linux系统中,PSS(Proportional Set Size)和RSS(Resident Set Size)是衡量进程内存占用的关键指标,主要区别如下:
‌RSS‌:表示进程‌实际占用的物理内存总量‌,包括私有内存和‌完整共享库内存‌(即使被多个进程共享也重复计算)‌。
例如:一个共享库被3个进程使用,RSS会将该库内存全量计入每个进程‌。

‌PSS‌:在RSS基础上对共享内存进行‌按比例分配‌。同一共享库被3个进程使用时,每个进程仅计算1/3的共享内存‌。

RSS‌    计算简单快速,适合实时监控‌36    缺点是很可能高估内存占用(共享库重复计算)。
‌PSS‌    更真实反映系统级内存压力(所有进程PSS之和=系统总占用)‌。缺点是计算开销较大(需统计共享比例)‌。

Android adb命令抓取应用的内存hprof文件-CSDN博客文章浏览阅读112次,点赞2次,收藏4次。摘要:本文介绍了两种Android调试方法:1)使用adb shell am dumpheap命令抓取应用内存hprof文件并导出;2)通过adb shell配合perfetto工具捕获systemtrace文件,用于性能分析和问题排查。文章详细说明了命令操作步骤及文件导出方法,并提供了相关博客链接供参考。(97字) https://blog.csdn.net/zhangphil/article/details/149361590

Android卡顿丢帧低内存与adb shell内存状态_android kswapd0-CSDN博客文章浏览阅读683次,点赞5次,收藏5次。通常kswapd0占用大核,而且是满频在跑,耗电、温升,如果此时有前台应用主线程跑到与kswapd0相同的核上,很大可能会出现 cpu 竞争,导致调度不到而丢帧卡顿。系统中有些内存虽然已被使用但是可以回收的,比如cache/buffer,有一部分可以回收,所以MemFree不能代表全部可用的内存,这部分可回收的内存加上MemFree才是系统可用的内存,即:MemAvailable ≈ MemFree + Buffers + Cached,是一个估计值。表示系统尚未使用的内存。MemFree:空闲内存数。_android kswapd0 https://blog.csdn.net/zhangphil/article/details/138819422


网站公告

今日签到

点亮在社区的每一天
去签到