Yah*_*hel 5 memory android themes
建立 :
我有这个应用程序,它在线性路径中有4个活动,非常简单的导航:A - > B - > C - > D.
所有活动共享相同的背景图像,并且都有一些常规按钮,textview或edittext.所有这些都在单独的视图xml文件中定义.
背景是渐变,有点沉重.大约3兆作为未压缩的位图.
该应用程序尚未执行任何操作,其中唯一的逻辑是启动活动并按下按钮单击它们
我试图使用MAT来查找内存泄漏但找不到任何内容.我的应用程序中保留的最大大小为656(ko?),应用程序的总保留大小为1520(ko?),我找不到任何可复制的对象.顺便说一下,dumpsys显示分配了27300(ko?)
问题 :
问题:
更新:我想真正的问题是为什么我有一个巨大的内存泄漏(一次5兆),冻结时应用程序大小为27megs,我在MAT中看不到它?
线索
在同一时间我有:dumpsys meminfo:
Applications Memory Usage (kB):
Uptime: 74006853 Realtime: 110962243
** MEMINFO in pid 22683 [com.kayenko.sosadresse] **
native dalvik other total
size: 20820 5767 N/A 26587
allocated: 18751 2901 N/A 21652
free: 312 2866 N/A 3178
(Pss): 1357 201 16782 18340
(shared dirty): 2264 1804 5456 9524
(priv dirty): 1280 116 16032 17428
Objects
Views: 0 ViewRoots: 0
AppContexts: 0 Activities: 0
Assets: 2 AssetManagers: 2
Local Binders: 18 Proxy Binders: 16
Death Recipients: 1
OpenSSL Sockets: 0
SQL
heap: 0 MEMORY_USED: 0
PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0
Run Code Online (Sandbox Code Playgroud)
而这个统治者树:

Thansk对任何想知道我想要寻找的人都有所了解.
内存在Android中是一个非常棘手的主题.
每个应用都会获得堆内存限制,具体取决于设备.此堆内存是dalvik内存加本机内存,您可以将其视为dumpsys meminfo结果中的总列.dalvik内存处理除了位图之外的所有内容,这些内容在本机内存中分配(在Honeycomb之前的Android版本中也是如此).
说过我只能回答你的一些问题:
据我所知,Android将始终为Bitmaps分配内存,即使它们是相同的.因此,在您的情况下,每个活动都会为您的后台分配内存.
我不知道它是否更适合使用主题,你必须尝试.
一方面,当设备有足够的内存来处理下一个活动时,不会回收活动.当您按下后退按钮时,每个活动都被推到一堆.如果Android需要更多内存,它会从堆中删除一个活动来释放其内存(回到第一个问题,也许这就是不共享内存的原因).另一方面,您可以设置活动launchMode以更改此行为(请查看此处).
我认为MAT不会显示本机内存数据.使用dumpsys meminfo本机列查看您拥有的位图分配的内存量.
我自己很难处理OutOfMemory问题.现在我对它的工作方式有了更清晰的认识,我能够处理大文件而不会耗尽内存.我强烈推荐这两个对我有帮助的资源:
祝好运!
| 归档时间: |
|
| 查看次数: |
4216 次 |
| 最近记录: |