关于android中应用内存优化实践

来源:互联网 发布:全能行证券交易软件 编辑:程序博客网 时间:2024/06/16 05:10

 内存对于java程序员来说是个既熟悉又陌生的概念,毕竟有gc这个神器,回收内存跟咱没关系,但不代表完全的无关,上层在某些时候,代码不规范,还是会造成内存无法回收。

 然后程序使用的内存一点点变大直至卡死。

 说到内存优化,不得不说java的四大引用,强弱虚软。当然,告诉你这些有什么用怎么用的,不是我的作风,我将告诉你我用了之后的后果是什么。

 由于我们公司的开发板质量极低,属于低档机器中的战斗机,在这么差的平台上,内存就是一个很重要的概念,所以我第一次使用到了弱引用,后果是随着引用的调用,gc的频率变高。然后我换做其他虚软引用,结果任然相同,gc变快。有人要问了,gc变快不好么,答案是,不好,gc一次软件便会停顿一次,卡。代价太过于巨大,难怪四大引用不出名,用到的人也不多。

  然后再说说我有次代码不规范导致程序跑了两天卡死的经历,由于我是工业应用,需要程序永远不死不灭,Memory永远不增不减。

  这是一个代码不规范导致的,并且不会输出任何错误。代码形式如下

  public void xxx(int x,int y){

  

         if(x>y||x+y>y||x-y>x||x*y=x*10){

         }

   }

  大家可能看不出来有什么问题,我当时也没看出来,百度也不会告诉我我的apk为什么两天由内存占用4m变成80m然后卡死了。

  问题在于,我偷懒使用实参直接去多重运算判断。   后来我改成这样

  public void xxx(int x1,int y1){

     int  x=x1;

     int y=y1;

         if(x>y||x+y>y||x-y>x||x*y=x*10){

         }

   }

apk占用的内存就稳定了下来,一个星期未关机,没有任何错误,现在开发板都开在那测试着。

 最后,祝大家少踩坑。


原创粉丝点击