前言
性能问题是造成App用户流失的罪魁祸首之一。
App的性能问题包括崩溃、网络请求错误或超时、响应速度慢、列表滚动卡顿、流量大、耗电等等。而导致App性能低下的原因有很多,除去设备硬件和软件的外部因素,其中大部分是开发者错误地使用线程、锁、系统函数、编程范式、数据结构等导致的。
即便是最有经验的程序员,也很难在开发时就能避免所有导致性能低下的“坑”,因此解决性能问题的关键是在于能不能尽早地发现和定位这些“坑”。
何为App的性能
拿小车举例,大家知道什么是一辆小车的性能吗?同学甲说,是否省油、加速是否够快、开起来是否稳定、安全等等。
没错,那就是小车的性能。
那App的性能又是指什么呢?同学乙说,App启动是否够快,运行是否流畅,是否省电、省流量,安装包体积是否够小等等。
是的,这就是App的性能。
关注App性能优化,有什么用
1.性能优化目的是使app更稳定、更流畅、损耗低。
- 更稳定: 应用程序能够稳定运行,能够正常使用,不出现Crash 和 ANR这两个错误
- 更流畅: 应用程序运行得更加流畅
- 损耗更低: 应用程序对内存,电量以及网络资源占用更低 2.拥有性能优化技术的开发者,对于岗位的招聘更加吃香,现在各大公司面试都会问关于性能优化的问题,如果你掌握了该技术,将会在众多应聘者中脱颖而出。
如何进行App性能优化
掌握App性能优化,是Android开发人员进阶中高级的必备技能。那如何进行App的性能优化呢?
我们可以从这几个方面入手:卡顿优化、内存优化、稳定性优化、耗电优化、安装包大小优化、数据库SQLite优化、网络优化。
《Android性能优化—实战解析》,该资料包含各种性能优化的知识要点以及学习资料,共有61个章节,720页,下面是该资料的部分展示
百度App网络深度优化系列《三》弱网优化
弱网优化需要解决的核心问题有两点 【1】移动网络环境如此复杂,我们如何确定当下就是弱网环境。 【2】确定为弱网环境下,我们如何提升弱网下的成功率,降低弱网下的时延,进而提升用户的网络体验。
- 前言
- 背景
- 判断弱网的指标
- 如何建立弱网标准
- 网络探测的整体架构和实现
- 弱网状态下百度App如何改善用户体验
- 百度App网络整体架构
网易新闻客户端 H5 秒开优化
H5 因其“天生”的跨平台、实时更新、便于传播等特性,一直是各家 APP 承载内容的重要手段之一。
- 资源离线
- JsBridge
- 实际应用
- 结语
字节跳动技术团队一抖音包大小优化-资源优化
随着业务的快速迭代,抖音 Android 端的包大小爆发式增长。包大小直接影响到下载转化率、推广成本、运行内存和安装时间等因素,因此对 apk 进行瘦身是一件很有必要且收益很大的事情。
- 图片压缩webp无侵入式兼容
- 多DPI优化
- 重复资源合并
- shrinkResource严格模式
- 资源混淆(兼容aab模式)
- ARSC瘦身
- 总结
Android 项目一般使用 gradle 作为构建打包工具,而其执行速度慢也一直为人所诟病,对于今日头条 Android 项目这种千万行级别的大型工程来说,全量编译一次的时间可能高达六七分钟,在某些需要快速验证功能的场景,改动一行代码的增量编译甚至也需要等两三分钟,这般龟速严重影响了开发体验与效率,因此针对 gradle 编译构建耗时进行优化显得尤为重要。
今日头条Android'秒'级编译速度优化
- 背景介绍
- 历史优化方案
- 编译耗时恶化
- 近期优化方案
- 编译耗时防恶化管控
- 总结
- 更多分享
工程编译,是Android应用开发工作中的重要一环。而随着工程代码量膨胀,编译耗时也越来越长,拖慢了开发效率。
QQ音乐Android编译提速之路
- 序言
- 问题分析
- 优化思路
- 增量编译的诞生
- 核心原理
- 结语
......
由于篇幅有限,无法将资料显示完全,有需要的小伙伴请点击这里,深入系统的学习完这份《Android性能优化—实战解析》,相信你会在性能优化领域大有提升。