Android性能优化总结

在Android开发过程中,我们经常会遇到App启动慢、页面跳转慢、事件响应慢、滑动和动画卡顿、内容显示慢等问题,因此要对项目进行性能优化,那么该怎么进行性能优化呢?

我们从以下几个方面进行入手,讲解一下如何对Android的性能进行优化:

  • 启动优化
  • 内存优化
  • 布局优化
  • 卡顿优化
  • 网络优化
  • 电量优化
  • 稳定性优化

1.启动优化

  • 预览窗口优化:将App启动页背景设置成闪屏页图片,可以让用户无感知平滑过渡进入App中;
  • 业务梳理优化:在App启动的过程中,除Activity之外的组件启动要谨慎,把非必要耗时操作延后处理,必要耗时操作考虑在工作线程进行;
  • 尽量避免启动时在主线程做密集繁重的工作,如:避免 I/O 操作、反序列化、网络操作、锁等待等;
  • 对模块以及第三方库按需加载,采取分步加载、异步加载、延期加载等策略;
  • 利用线程池管理线程,避免创建大量线程,造成 CPU 竞争,导致主线程时间片减少;
  • 启动过程中,尽量避免频繁创建的大量对象,减少 GC 给启动性能带来的卡顿影响;
  • 对主页面进行布局优化,主页面的数据预加载或懒加载,大大缩短启动时间。

更多启动优化介绍可以查看下列文档:

Android App 启动优化全记录

Android性能优化笔记(一)——启动优化

App启动优化 这篇文章最后的思维导图很有参考意义

2.内存优化

内存频繁的分配和回收,当分配速度大于回收速度时,最终会产生OOM。因此我们要对内存进行优化,减少不必要的开销

  • 能用int就不要用Integer
  • 内存复用:视图、对象、图片复用
  • 选择最优的数据类型
  • 使用注解替换枚举
  • 图片内存优化
  • 字符串拼接使用StringBuilder或StringBuffer,别用+=
  • 内存泄漏处理
    常见的内存泄漏场景:
    • 资源未关闭Cursor、IO流;
    • Timer、动画Animator未cancel
    • 注册对象未销毁:广播、回调监听等
    • 静态变量、单例、Handler、非静态内部类持有可被销毁的数据引用
    • 匿名内部类默认隐式地持有外部类的引用
    • 容器中的对象未清理
    • webview使用单独进程

内存优化的具体介绍网上有很多文章,可以参考:
内存异常处理

未完待续。。。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 性能优化主要可以从以下几个方面入手: 一、界面 1.1 布局优化 思想:尽量减少布局文件的层级 措施: 删除无用的...
    _Once1阅读 1,703评论 0 3
  • 前言 在Android进阶之路上, 性能优化是一个绕不开的问题。这部分内容非常考验程序员的内功和项目经验,必须要对...
    万户猴阅读 5,773评论 0 20
  • NimbleDroid 是美国哥伦比亚大学的博士创业团队研发出来的分析Android app性能指标的系统,分析的...
    码农弟弟阅读 3,780评论 0 6
  • 本文大体分为四部分 内存优化 布局优化 编码优化 网络优化 内存优化 主要参考胡凯文章 首先说一下内存泄漏和OOM...
    KwokKwok阅读 2,910评论 0 2
  • 安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android 9.0 已经发布,An...
    KingWorld阅读 3,926评论 0 8