Android性能优化——内存抖动触发GC问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/I123456789T/article/details/89705733

前面介绍过在AndroidStudio如何打开Profiler以观察程序内存使用情况,这里讲一下在项目中查看内存抖动引起程序崩溃问题

内存抖动原因:内存频繁的分配与回收,(分配速度大于回收速度时)最终会产生OOM

1、打开Profiler,下面显示我的一个页面出现内存抖动问题出现的情况:

可以看到粉色框起来的有很多垃圾箱显示,而且很密集,我这里就出现内存抖动,频繁的触发GC ,图中也能看出来内存情况的几种颜色呈现锯齿情况很严重。

这里查看哪里会引起这种情况:

点击右边粉色的部分,粉色部分是字体颜色看起来很明显的,说明是我们项目中自己写的代码可以进去修改的。点进去查看哪里代码引起的,去处理吧!

2、Android使用WebView加载网页出现的内存抖动问题,

扫描二维码关注公众号,回复: 6075724 查看本文章

说到这个WebView 我想大多数人都用过,可能我们还会用它做很多功能以代替原生的来实现热更新功能,但是使用WebView避免不了会出现内存抖动情况,比如加载gif图,或者视频等。那该如何解决呢?

我们要先说一下WebView这个玩意,都知道它是Google开发的,但是你知道Google为什么开发它呢?开发它的目的是什么呢?如果不知道,那你还是先搞清楚这个原因在决定怎么用它,这里我就一句话说一下目的:Google开发WebView只是用来显示文本信息或者Email文字的,Google并没有让他具备我们想要的那种展示各种功能的炫酷网页,就算后来webview支持了JS 功能,但是也同样不建议我们用它来做浏览器的那些功能,因为很容易出现内存问题。有些人好奇为什么腾讯等大公司也有很多用到它的啊,而且里面显示内容也很多啊,是的,但是它究竟是怎么处理的呢?那也是我们要说的,很简单,凡是用到webview的activity,全部新开一个进程,让他们运行在一个单独的进程中就行了,大公司处理也是这样做的,不要问为什么,也没有为什么,因为Google造就webview并不是让你处理那些东西的,如果你要用,只能这么操作,没有更好的方法。就是这样。

就像这样,我用这个activity运行webview,,让他运行在单独的进程中。

好了就简单提到这里!

猜你喜欢

转载自blog.csdn.net/I123456789T/article/details/89705733
今日推荐