美文网首页
Android性能优化相关

Android性能优化相关

作者: 竖起大拇指 | 来源:发表于2020-09-22 17:30 被阅读0次

1.Apk体积相关的优化

  • 将图片转换为webp格式
  • 去除多语言
  • 去除不必要so库
  • 去除无用资源Link检查
  • 开启混淆
  • 移除无用资源shinkResource
  • 离线资源建议从服务器下载 不必打入APK包中

2.电量优化

  • GPS优化 选择合适的定位模式,选择合适的定位间隔,不使用时即时注销。
  • JobScheduler 把工作任务放到合适的时间去执行,比如充电时间,wifi连接之后
  • 减少view绘制,
  • 硬编码替换软编码 降低CPU负荷
  • TCP心跳机制建议30s以后
  • 定时器任务如果不是特殊的尽量在30s以后

3.后台存活

  • Activity授权:监控手机锁屏解锁事件,在屏幕锁屏时启动1个像素透明的Activity,在用户解锁时将Activity销毁掉,从而达到提高进程优先级作用
  • Service 授权:SDK>=26通过startForegroundService启动一个前台服务,如果开启startForegroundService前台服务,那么必须在5s内开启一个前台进程服务通知栏,不然会报ANR
  • 广播拉活:在发生特定系统事件时,系统会发出广播,通过注册对应广播监听器,即可在发生响应事件时拉活。7.0开始,对广播进行了限制,8.0以上更加的严格。
  • 全家桶拉活
  • Service机制拉活:将service设置为START_STICKY,利用系统机制在Service挂掉后自动拉活,但是某些ROM系统不会拉活,Service第一次被异常杀死后很快被重启,第二次会比第一次慢,第三次会比前一次慢。
  • JobScheduler拉活(官方推荐)
  • 推送拉活:根据终端不同,在小米手机 接入小米推送,华为手机接入华为推送
  • 双进程守护
  • 加入白名单

4.布局优化

  • 减少布局层级(merge标签,ConstraintLayout 布局使用)
  • 布局复用:如果多个xml布局中都会使用相同的布局对象,那么可以考虑把相同布局抽出来一个单独的布局,然后以include形式添加
  • 避免过度绘制(在多层次重叠的UI结构里面,如果不可见的UI也在做绘制的操作,会导致某些像素区域被绘制了多次。这样就会浪费大量的CPU以及GPU资源。过度绘制最直观的影响就是会导致APP卡顿):移除xml中非必须的背景,去掉默认背景
  • viewStub标签加载不常用的布局

相关文章

网友评论

      本文标题:Android性能优化相关

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