【问题标题】:Why section "Native" uses so much RAM?为什么“Native”部分使用这么多内存?
【发布时间】:2019-02-26 01:57:46
【问题描述】:

所有活动的用法几乎相同。如果我手动让垃圾收集器运行,我可以将其总使用量减少到 80MB,但“Native”使用的 ram 一直保持在最高值,最小,60MB。

我的总 Ram 记录是 1.4GB(所以 android 设置显示)那里发生了什么?

我的应用目前使用 app bundler 和 2 个软件包是否相关信息?

【问题讨论】:

  • 并不意味着你使用的框架不使用本机内存。 Android 界面工具包使用内存。你可以做的是开始从你的应用程序中删除一些东西,看看有什么特别的东西会产生很大的不同。 VM 将为编译器操作和代码优化保留内存。

标签: java android native ram


【解决方案1】:

许多 Java Android API 最终都会调用本机函数,因此也会消耗本机内存。例如,当使用相机拍摄照片并在屏幕上显示预览时,来自相机帧缓冲区的所有数据处理都是用本机(C 或 C++)代码编写的,这比编写时性能更高Java。

那么您可以做些什么来减少本机内存使用量?不多,因为希望原生实现经过精心设计并且无论如何都无法更改,但您可以考虑以下几点:

  • 仅包含或链接您实际需要的库
  • 仅在需要时使用库和 API
  • 尽快释放资源(例如回收位图)
  • 配置 API 和库以减少内存使用(如果支持)

【讨论】:

    猜你喜欢
    • 2012-11-08
    • 2017-05-03
    • 2013-06-06
    • 2012-06-28
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多