前言

安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android 9.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS。 但是,到了各大厂商手里,改源码、自定义系统,使得Android原生系统变得鱼龙混杂,然后到了不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。

  • 在 Android开发中,性能优化策略十分重要
  • 本文主要讲解Android性能优化—实战解析希望你们会喜欢

这一份《Android性能优化—实战解析》,是整理了业内有赞技术团队、腾讯技术团队、阿里巴巴技术团队、美团技术团队、爱奇艺技术团队、得到技术团队、携程技术团队、蘑菇街技术团队等性能监控实战中遇到的问题以及解决方案。从各个方面对目标产品进行全方位的“优化”,让产品的性能得到提升。

对于大部分程序员来说,哪怕工作很久经验丰富,但依然会出现面对棘手问题束手无策的状况,大多是因为对出现问题的情况和处理思路模糊不清,导致此原因就是因为对性能优化方面的实战经验不足

即便是最有经验的程序员,也很难在开发时就能避免所有导致性能低下的“坑”,因此解决性能问题的关键是在于能不能尽早地发现和定位这些“坑”。

只有通过在实践中总结常见性能问题,才能在你遇到性能问题的时候快速定位问题、解决问题,那你在工作中、团队里、面试时,也就拥有了同行难以复制的核心竞争力。

目录

  • 对字符串匹配算法的一点理解

  • 安卓APP崩溃捕获方案———xCrash

  • 深入理解Gradle框架之一:Plugin,Extension, buildSrc

  • Android H5首屏优化实践

  • 任意URL跳转漏洞修复与JDK中getHost()方法之间的坑

  • 支付宝客户端架构解析:Android_客户端启动速度优化之「垃圾回收l

  • 支付宝App构建优化解析:通过安装包重排布优化Android 端启动性能

  • 支付宝App构建优化解析:Android包大小极致压缩

  • 深入理解Flutter多线程

  • 携程技术—从智行Android项目看组件化架构实践

  • Flutter您需要知道的知识点

  • 二维码扫描优化

原本Lark直接集成了zxing实现扫一扫功能。由于Lark的特殊业务需求,因此并不需要支持到这么多格式,只需要支持QR Code,因此我们对zxing内部进行定制,使得zxing只支持QR Code。这样既可以减少zxing库的大小,也可以加快zxing处理一帧数据的速度。

优化主要包含两方面:

扫描性能 交互体验

图片

  • AOP技术在客户端的应用与实践

  • 互联网产品决策秘笈:AB测试

  • Android Native 内存泄漏系统化解决方案

  • Android P之Smart Linkify

  • 百度App组件化之路

  • 百度App网络深度优化系列《三》弱网优化

  • 深入理解gradle框架之二:依赖实现分析

  • Probe: Android线上OOM问题定位组件

  • Android静态代码扫描效率优化与实践

  • Scene: Android开源页面导航和组合框架

  • 网易新闻客户端H5秒开优化

  • 解决支付宝包体积优化的遗留问题:运行时获取dexpc

精简安卓应用的包体积是提升其质量的重要手段之一。安卓应用的安装包(apk文件)中dex保存的是应用的代码,占有可观的体积。如果能够将这一部分的体积减小,那么无疑会有效地减小安装包的体积。

图片

  • Android篇│爱奇艺App启动优化实践分享

  • 二维码扫描优化及爱奇艺App的实践

  • 动态下发so库在Android APK安装包瘦身方面的应用

  • 史上最全Android渲染机制讲解(长文源码深度剖析)

  • 花椒Android端自动化测试实践

  • 一种简单优雅的TextView行间距适配方案

  • Android 10分区存储介绍及百度APP适配实践

  • 抖音BoostMultiDex优化实践: Android低版本上APP首次启动时间减少80%

  • 抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%(二)

  • 携程Android 10适配踩坑指南

  • 抖音包大小优化-资源优化

随着业务的快速迭代,抖音 Android 端的包大小爆发式增长。包大小直接影响到下载转化率、推广成本、运行内存和安装时间等因素,因此对 apk 进行瘦身是一件很有必要且收益很大的事情。

apk 主要由 dex、resource、asserts、native libraries 和 meta-data 组成,针对每一部分,都可以专项去做包大小优化。抖音 Android 端经过一段时间努力,包大小优化已经取得了阶段性的成果。目前仍在持续的优化中。

图片

  • Gradle 与 Android构建入门

  • AwCookieManager.nativeGetCookie crash排查

  • 开源|BoostMultiDex:挽救Android Dalvik 机型APP升级安装体验

  • 字节跳动技术团队—另类BadTokenException问题分析和解决

  • LayoutInflater原理分析与复杂布局优化实践

  • 今日头条Android '秒级编译速度优化

  • 曾梦想if-else走天涯?看看"麦任树模式"优化

  • 谷歌—协程中的取消和异常│异常处理详解

  • QQ音乐—彻底弄懂浏览器缓存策略

  • 闲鱼如何在2个月内实现Android启动速度翻倍的?

随着闲鱼App端更多新功能、新技术的加入,应用冷启动速度越来越慢,这也意味着用户看到有效内容的时间被拉长,对用户体验有着很大的伤害。目前,在内部测试版本中,我们已经将安卓在低端机上的冷启动时间从原来的10s降低到了5s内。

图片

  • Android Camera内存问题剖析

  • 有赞移动Crash平台建设

  • 贝壳APP Top Experience系列|Android方法耗时统计工具

  • 抖音Android性能优化系列:Java内存优化篇

  • QQ音乐Android编译提速之路

  • 移动端UI—致性解决方案

  • Android D8编译器" bug"导致Crash的问题排查

  • 今日头条ANR优化实践系列–设计原理及影响因素

  • 今日头条ANR优化实践系列–监控工具与分析思路

  • 全民k歌适配arm64-v8a方案

  • 全民K歌内存篇1——线上监控与综合治理

  • 全民K歌内存篇2——虚拟内存浅析

  • 全民K歌内存篇3———native内存分析与监控

  • 一种按照library的维度进行Android包大小分析的方法和实践

  • 网易新闻构建优化:如何让你的构建速度"势如闪电"?

  • 美团—设计稿(UI视图)自动生成代码方案的探索

图片

由于文章篇幅有限,文档资料内容较多,本可以提供链接下载,但无奈容易被和谐,所以全部存档,需要这些文档这里的朋友,可以点击我的【Gitee】,希望能够共同进步,共勉!

总结

作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统,所以我们应该更加去注重性能优化的一个使用和技术上提升,综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。