Android 性能优化

 

  1. 布局优化

1.减少布局层级嵌套

ui布局嵌套超过五层就会显示卡顿,所以减少层级进行UI

2.使用<include> 复用布局

include标签复用避免同样的布局反复创建

3.使用merge 标签合并布局 减少布局层次

merge标签会忽略父容器的包裹实现减少布局层次

4.避免创造不必要的布局层级

父容器内可以实现排列 就不需要在加入一层嵌套

5.使用惰性空间 ViewStub 动态加载布局

ViewStub本身不参与绘制 在使用到的时候才进行绘制 例如 网络请求失败

  1. 绘制优化

就是避免view在ondraw方法执行大量的操作

1.在onDraw中不要创建局部对象,因为onDraw会被频繁调用 创建大量的临时对象 不仅占用内存还会引起频繁GC 降低程序执行效率

2.官方给出的view绘制标准是每帧的绘制时间不超过16ms  所以在onDraw不做耗时操作  降低onDraw方法的复杂度

  1. 内存优化

1.内存浪费

使用ArrayMap代替 hashMap

2.内存泄漏

一些不用的对象被长期持有,导致内存无法被释放。

主要的引起内存泄漏的是:

1.内部类引用导致activity泄漏

2.Activity Context被传递到其他实例中,这可能导致自身被引用而发生泄漏。

3.静态造成的内存泄漏

4.还有静态变量持有View

5.注意监听器的注销

6.注意Cursor对象是否及时关闭

7.WebView的引起的泄漏

 

4.启动页白屏优化

为什么会出现白屏

    • 当系统启动一个APP时,zygote进程会首先创建一个新的进程去运行这个APP,但是进程的创建是需要时间的,在创建完成之前,界面是呈现假死状态,于是系统根据你的manifest文件设置的主题颜色的不同来展示一个白屏或者黑屏。而这个黑(白)屏正式的称呼应该是Preview Window,即预览窗口。
    • 实际上就是是activity默认的主题中的android:windowBackground为白色或者黑色导致的。
    • 总结来说启动顺序就是:app启动——Preview Window(也称为预览窗口)——启动页

解决办法

当前启动页添加一个有背景的style样式,然后SplashActivity引用当前theme

主题,注意在该页面将window的背景图设置为空

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

paterWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值