美文网首页
第15章 Android性能优化

第15章 Android性能优化

作者: 貌似还没想好叫什么 | 来源:发表于2018-02-22 20:24 被阅读0次

    1.布局优化

    布局优化的思想很简单,就是尽量减少布局文件的层级。

    优先使用LinearLayout 而不是Relativelayout,如果需要嵌套的方式实现,那还是建议使用RelativeLayout

    布局优化的另一种手段是采用<include>标签,<merge>标签和ViewStub
    include标签主要用于布局重用 . merge标签一般和include配合使用,他可以降低布局的层级,而ViewStub则提供了按需加载的功能,当需要的时候才会加载

    15.1.2绘制优化
    绘制优化是指View的onDraw方法要避免执行大量的操作,onDraw不要穿件新的布局对象,因为onDraw方法可能会被频繁调用,这样会在一瞬间产生大量的临时对象,这不仅会占用了过多的内存而写会导致系统更加频繁的gc,降低程序的执行效率,另一方面ondraw不要做耗时的任务,view的绘制频率保持60fps为最佳,这就要求每帧的绘制时间不能超过16ms(16ms = 1000 / 60)

    15.1.3 内存泄漏优化

    1.静态变量导致的内存泄漏
    2.单例模式导致的内存泄漏
    3.属性动画没有停止导致的内存泄漏

    15.1.4 相应速度优化和ANR日志分析

    当前一个进程发生了ANR,系统会在/data/anr目录下创建一个文件trace.txt 通过分析这个文件就能定位出ANR的原因

    adb pull /data/anr/trace.txt . .代表当前目录

    15.1.5ListView和Bitmap优化

    实现使用ViewHolder并避免在getView中执行耗时操作
    bitmap的优化主要通过bitmapFactory.options来根据需要对图片进行采样,过程中主要用到BitmapFactory.options的inSampleSize参数

    15.1.6 线程优化

    采用线程池

    15.1.7 一些性能优化建议
    1.避免过多创建对象
    2.不要过多使用枚举,枚举占用空间比整形大
    3.常量请使用static final 来修饰
    4.使用一些android特有的数据结构,比如SparseArray和Pair等,他们有更好的性能
    5.适当使用软引用和弱引用
    6.采用内存缓存和硬盘缓存
    7.尽量采用静态内部类,这样可以避免潜在的由于内部类而导致的内存泄漏

    15.2
    内存泄漏分析之MAT

    15.3提高程序的可维护性

    相关文章

      网友评论

          本文标题:第15章 Android性能优化

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