美文网首页
内存优化要点

内存优化要点

作者: wind_sky | 来源:发表于2019-08-01 15:27 被阅读0次

    手机的内存(RAM,Random-access memory)是宝贵的,如果应用运行消耗大量内存,可能还会导致OOM 问题,所以优化应用的运行内存是每一个应用都应该进行的工作。

    本篇主要记录优化应用内存的一些要点。

    1. 谨慎地使用Service

    避免在不必要的情况下,在后台一直运行一个Service,如果确实需要一个后台job ,可以考虑使用JobScheduler 来代替。

    2. 使用更优化的数据结构

    例如,当key 为int、long 等基本类型时,可以使用SparseArray 系列来代替HashMap,将会使内存的使用得到减少。

    3. 注意代码抽象

    开发人员经常将抽象简单地用作良好的编程实践,因为抽象可以提高代码的灵活性,便于维护。但是,抽象的成本很高:通常它们需要更多的代码才能执行,需要更多的时间和更多的RAM才能将代码映射到内存中。因此,如果抽象没有提供显着的好处,就无需使用。

    4. 可以使用nano protobuf 来做数据的序列化

    Protocol buffers 是谷歌开发的用于序列化、结构化数据的,类似XML,但是要更小、更快,但是如果决定要使用protobuf 的话,在客户端应该使用nano protobuf,因为普通的protobuf 会产生大量额外的代码,会增加内存使用。

    5. 避免内存抖动

    无论是ART 还是Dalvik VM,都有垃圾收集器,一次GC 对于应用的表现并没有很大影响,但是短时间内频繁的GC 会造成卡顿等现象,这种短期内的频繁GC 会造成内存抖动。

    一般出现这种情况的场景是,在for 循环中创建大量的临时对象,或者在View 的onDraw 方法中创建大的对象比如Paint、Bitmap 等。

    6. 谨慎地使用内存密集型的资源或类库

    一些很大的资源文件或者类库在加载或运行时都会增加内存的使用。

    7. 谨慎地使用静态变量

    静态变量的生命周期和应用是一样长的,静态变量持有的资源越多,占用的内存就会更大。

    相关文章

      网友评论

          本文标题:内存优化要点

          本文链接:https://www.haomeiwen.com/subject/jctcdctx.html