【发布时间】:2014-08-28 13:00:33
【问题描述】:
当我分析一个应用程序内存问题时,我发现它的映射 (cat /proc/pid/maps) 是这样的:
903 5fec1000-5fec2000 r--s 00001000 b3:10 98 /system/app/PacProcessor.apk
904 5fec2000-5fec3000 r--s 00000000 b3:10 98 /system/app/PacProcessor.apk
905 5fec3000-5fed7000 r--s 00560000 b3:10 125 /system/app/iReader.apk
906 5fed7000-5ff09000 r--s 0019a000 b3:10 125 /system/app/iReader.apk
907 5ff09000-5ff0b000 r--s 00043000 b3:10 81 /system/app/Galaxy4.apk
908 5ff0b000-5ff0c000 r--s 00042000 b3:10 81 /system/app/Galaxy4.apk
这个应用似乎将其他应用的代码加载到它的堆栈中。
如何避免这种内存分配?
【问题讨论】:
-
进程名称是什么?如果它是一个系统进程,那么它是不可避免的。我猜你必须杀死应用程序本身才能释放这些资源。
-
是的,它是一个系统应用程序(不是持久的,但安装在 /system/app 中),但我检查了 /system/app 目录中的其他应用程序,他们没有这些分配。