---
title: "Android PSS 内存的含义与分析方法"
author: "Perrin Yong"
author_profile: https://www.pystone.net/profile/
published_by: "Perrin Yong"
canonical: https://www.pystone.net/notes/android-pss-memory-analysis/
type: note
content_role: unspecified
visibility: public
id_stability: rename-stable
source_path: "10-计算机、信息技术与工程/05-游戏图形与运行时/Unity/【内存】PSS内存组成.md"
content_hash: d1e2d54fec9c85ef9e175ed5575db1a1d8c75932adfa1491da95ae5756241594
knowledge_version: 224c990773de.5fa8af6e39fa
site_commit: 224c990773de166d23a886306577dd90379529ce
notes_commit: 5fa8af6e39fa3891d1b9b4832bfa6c4e0ecaaf0a
---
# Android PSS 内存的含义与分析方法

> **note · 通用化说明**
> 原笔记中的项目截图已移入私有工作资料。本文不使用固定“合格线”，因为内存预算必须结合设备、系统版本、进程模型和业务场景确定。

## PSS 是什么

PSS（Proportional Set Size，按比例分摊集）用于估算一个进程应承担的物理内存：私有页全部计入，共享页按共享进程数近似分摊。它比简单相加 RSS 更适合比较进程的总体内存压力，但仍是一次采样结果，不等于进程独占内存，也不能单独证明发生泄漏。

Android 的内存报告常见分类包括：

- **Java/Kotlin Heap**：ART 管理的对象。
- **Native Heap**：原生分配器管理的内存。
- **Code**：可执行文件、共享库、DEX/OAT 等映射。
- **Stack**：线程栈。
- **Graphics**：图形缓冲和驱动相关分配；不同系统版本的归类可能变化。
- **Private Other / System / Unknown**：无法归入上述类别或由系统按其他口径统计的内存。

Private Dirty、Private Clean、Shared Dirty、Shared Clean 描述页面的共享性与是否被修改；它们不是“好/坏”的标签，需要结合映射来源和变化趋势解释。

## 采样

```bash
adb shell dumpsys meminfo <package-name>
adb shell dumpsys meminfo --local <package-name>
```

必要时结合以下信息：

- Unity Profiler 或 Memory Profiler 中的托管堆、原生对象与纹理等分类；
- Perfetto、Android Studio Memory Profiler 或 heapprofd；
- `/proc/<pid>/smaps` 或系统提供的等价明细；
- 场景、设备、系统版本、构建配置和采样时间。

## 可复现的分析流程

1. **定义场景**：冷启动、登录、进入关卡、反复切换、退回大厅等。
2. **控制变量**：固定设备、构建、画质、资源包和操作脚本。
3. **建立基线**：在相同时间点采样多次，记录中位数和波动范围。
4. **观察趋势**：完成一轮操作并回到稳定状态，判断 PSS 与各分类是否持续抬升。
5. **交叉验证**：用对象快照、分配调用栈或映射明细定位增长来源。
6. **验证释放**：触发资源卸载、场景切换或 GC 后复测；注意分配器保留内存不等于仍有可达对象。

## 避免常见误判

- 一次 PSS 变大不等于泄漏，缓存、资源预热和分配器扩容都可能造成增长。
- Java/Native/Graphics 的分类不能直接映射为 Unity 的 Managed/Native 分类。
- 系统回收压力、后台进程和驱动会影响结果，跨设备绝对值不可直接横比。
- “回不到启动值”不是充分证据；应寻找多轮操作后单调增长且无法解释的保留对象或映射。

## 参考资料

- [Android Developers：内存管理概览](https://developer.android.com/topic/performance/memory-overview)
- [Android Developers：游戏性能工具](https://developer.android.com/games/tools)
