android性能优化

  • 布局优化

    • 根布局尽量使用RelativeLayout
      • 因为正常的frameLayout和LinearLayout无法实现效果,通过嵌套就增加了布局层级,会降低性能的
    • 使用< include>标签
    • 使用< merge>标签
      • 一般配合include使用
    • 使用 ViewStub
  • 绘制优化

    • 尽量不要在View的onDraw中执行大量的操作!
    • 不要在onDraw中创建局部对象,因为onDraw会被频繁调用,这个会产生大量临时对象..占用内存
    • 不要在onDraw中做耗时操作
  • 内存泄漏优化

    • 静态变量导致的内存泄漏

    • 不要在activity中引用静态的Context对象– sContext = this
    • 不要使用静态的View去引用activity对象– sView =new View(this)
  • 单列模式导致的内存泄漏

    这个可以联想到EventBus.getDefault().register(this);和EventBus.getDefault().unregister(this); 如果定义类似的单列(引用了activity = this),没有在onDestroy中注销的话 也会引起内存泄漏的!

  • 属性动画导致的内存泄漏

    如果属性动画中执行了infinite无限执行的模式,就需要在onDestroy中执行cancel的操作!否则activity就无法释放…

  • 响应速度优化和ANR日志分析

    • activity如果5秒内无法响应屏幕触摸事件或者键盘输入事件就会ANR
    • BroadcastReceiver10秒内还未执行也会出现ANR
    • 如果出现ANR,系统会在/data/anr中创建一个traces.txt文件,通过 adb pull /data/anr/traces.txt . 注意后面的 点 ,导出会进行分析
  • ListView 和 Bitmap优化

    • listview
      1.使用ViewHolder
      2.在滑动的过程中不执行加载操作,停止滑动在执行
      3.开启硬件加速
    • bitmap
      通过BitmapFactory.Options来进行图片采样,用到BitmapFactory.Options中的inSampleSize参数进行压缩
  • 线程优化

    注意就是合理的使用线程池,来避免启动过多的Thread

  • 其他优化

    1.避免过多的创建对象
    2.不要过多的使用枚举
    3.常量用staticfinal修饰
    4.是当使用软引用和弱引用
    5.采用内存缓存LruCache 和 磁盘缓存DiskLruCache
    5.尽量采用静态内部类,可以比喵潜在的由于内部类二导致的内幕才能泄漏


观看 android艺术开发与探索总结
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值