今天一同事,过来咨询内存泄露的问题。于是有了这篇blog,简单写一下,做个记录吧。
他说他们的APP,查看内存占用,发现会快速增长,且不会减少,过来咨询一下大概原因。本来以为是使用大量图片,或者是代码逻辑问题导致内存无法释放,后来了解了一下,才发现他们的APP主要依赖WebView去访问大量的服务器端页面。这让我想到了以前曾经简单研究过的一个问题。
简单说,这个问题的现象就是,在一个Activity中包含着一个WebView,通过WebView不停的访问Web页面,会发现内存会一直增长,退出此Activity,甚至杀死此Activity,内存依然没有被释放。这就导致,即使是完全退出了整个APP,内存也没有被释放掉,机器会表现的越来越很慢。当时网上都说是Android系统本身的问题,就没有再继续深究了。此现象在2.X版本中会出现,在4.X版本中不会出现,所以猜测新的Android系统已经修复了此问题。
今天又遇到此问题,也算是缘分。于是再次简单搜索一下,惊喜看到网上已经有了一些解决方案,技术牛人还是多啊。虽然不能完美解决此问题,但是还是值得借鉴的。下面给个链接,有兴趣的或者开发过程中也有此问题的,就看看吧: