【问题标题】:Android app reason of large RAM usage and how to reduceAndroid应用程序内存使用量大的原因以及如何减少
【发布时间】:2013-11-02 22:38:13
【问题描述】:

当我多次启动和退出我的应用程序时,它的RAM 使用量会增加到超过 500 mb。当我使用adb shell dumpsys meminfo 检查内存转储时,我检查了未知的pss value 是问题的原因。 pss 值大的原因是什么以及如何降低 pss 值。

Shared  Private     Heap     Heap     Heap

                   Pss    Dirty    Dirty     Size    Alloc     Free

                ------   ------   ------   ------   ------   ------

       Native        0        0        0   534460   531827     1604
       Dalvik    51013    17868    50664    90480    82266     8214
       Cursor        0        0        0                           
       Ashmem        0        0        0                           
    Other dev    14292       52    14288                           
     .so mmap     3810     2320     1720                           
    .jar mmap        0        0        0                           
    .apk mmap     1305        0        0                           
    .ttf mmap        0        0        0                           
    .dex mmap     2960        0        0                           
   Other mmap     1738      440      236                           
      Unknown   504718      296   384284                           
        TOTAL   579836    20976   451192   624940   614093     9818

【问题讨论】:

  • 应用程序dalvik堆大小变化不大,原生堆大小随着使用而增加。

标签: android android-memory


【解决方案1】:

我找到了 RAM 使用率高的原因。当我分析应用程序的本机堆转储时,我知道库 libharfbuzz.so 的实例占用了巨大的空间,并且该库用于显示字体,所以当我检查代码时,代码中有很多 TypeFace 的实例在许多地方。由于 TypeFace 分配在本机内存中,它使本机堆大小变大,这就是 RAM 使用率更高的原因。我删除了这些实例并创建了单个 TypeFace 实例并在我的应用程序中使用它并减少了 RAM 使用量。

【讨论】:

  • 如何获取原生堆转储并进行分析??
  • @AnkitBansal 这个链接bricolsoftconsulting.com/…对我有很大帮助。
  • @anuj 字体信息对我帮助很大......经过几个月的搜索,我终于找到了答案。修改自定义 TextView 以使用全局静态创建的字体。现在 20Mb 以前的 300Mb 内存大小。
  • 我也遇到了同样的问题。我正在使用更多和大尺寸的图像来开发应用程序,我检查了 Android Studio 内存,应用程序在使用/播放应用程序时会增加 100MB。这个不知道怎么减?请帮我。提前致谢。 @harshal
  • 通过库删除自定义字体使用帮助我减少了 50% 的内存使用。
猜你喜欢
  • 2018-03-06
  • 2010-09-28
  • 2020-12-24
  • 2010-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-06
  • 1970-01-01
相关资源
最近更新 更多