【发布时间】:2019-02-02 11:56:05
【问题描述】:
我有一个 Android 应用程序在运行 KitKat 的嵌入式 Android 设备上作为特权系统应用程序(/system/priv-app 中的 apk)运行。嵌入式系统有 1GB 的内存,应用程序本身看起来有大约 140MB 的堆内存。当我试图在 RecyclerView 中分配新的位图图像(图像是用毕加索加载的)时,我遇到了不断调用 GC_FOR_ALLOC 的性能问题。这会在您滚动时导致明显的卡顿。设备本身 (cat /proc/meminfo) 有大约 350MB 的可用内存。
由于我可以访问在此设备上运行的框架代码,我想知道是否有任何方法可以增加堆中可用的默认内存量?当我运行adb shell dumpsys meminfo 时,应用程序似乎再也不想占用内存了。
编辑
对于那些想知道我在 Android 清单中已经有 largeHeap=true 的人,它对这种情况没有帮助。
【问题讨论】:
-
您是否尝试过在启用
largeHeap的情况下运行该应用程序?诚然,文档表明这不是首选,因为在一天结束时;设备对它可以分配多少内存拥有最终决定权...developer.android.com/guide/topics/manifest/… -
是的,抱歉忘记提到 largeHeap 已启用。
-
啊,那么也许你也可以寻找一些优化技巧(也许甚至从下面的答案中)......经过一番搜索,我发现这是一个很常见的问题:stackoverflow.com/questions/27396892/…。第一个答案也涉及一些毕加索的用法。
标签: android performance memory android-source dalvik