我正在开发一个 Android 应用程序,我必须将设备上运行的每个应用程序的 RAM 消耗显示为前台和后台,我已经经历了多种解决方案,但他们只谈论总 RAM 和可用 RAM,所以我的查询是
- 是否有可用的公共 API?我在Android官方文档中没有找到太多。
- 是否可以通过系统APP然后如何?
- 框架中是否有任何私有 API 可用?我也可以修改我的框架,但不知道在哪里。
我正在开发一个 Android 应用程序,我必须将设备上运行的每个应用程序的 RAM 消耗显示为前台和后台,我已经经历了多种解决方案,但他们只谈论总 RAM 和可用 RAM,所以我的查询是
ActivityManager.getProcessMemoryInfo (int[] pids)是公共 API。然而,
从 Android Q 开始,对于常规应用程序,此方法将仅返回有关作为调用者 uid 运行的进程的内存信息的信息;没有其他进程内存信息可用并且将为零。
你可以看到Settings -> System -> Developer Options (You need to enable the Developer Options) -> Memory -> Memory used by apps
如何做到这一点。
设置应用程序使用com.android.internal.app.procstats.ProcessStats
,ActivityManager.getProcessMemoryInfo
用于ProcessStats
实现。