您现在的位置是:首页 > 正文

Android性能优化——数十家一线互联网公司项目实战+案例演练

2024-02-23 13:38:28阅读 34

前言

对于有一定 Android 应用开发经验的同学来说,性能优化是避不开的话题,一般来说,Android 上我们常说的性能优化包括,内存优化和界面优化,当然还有电量优化、网络优化等等。性能优化知识的学习是一个长期的过程,也不可能通过一两篇文章就能说的清楚,需要在具有相关的理论知识的前提下,同时在日常开发中加以实践,才能在这方面的工作中得心应手。

性能优化的过程是一个非常困难的过程,需要你对优化的方向不仅有知识上的充足储备还要有对现存业务上的了解。拿第一篇App启动优化来举例:

  • 查看官方文档对启动优化的概述;
  • 梳理App启动的逻辑;
  • 使用工具对启动逻辑代码进行准确的度量;
  • 针对瓶颈确定优化方案;
  • 优化、测试。

难点在于中间三步:

  • App多人开发,又历经多个版本,没人说得清App启动有多少逻辑以及补偿逻辑;
  • 不同风格的代码读起来,那感觉绝对是一个酸爽;
  • 确认了问题点,如何优化?重构还是重做?

这时我们就可以从一些互联网公司中性能优化项目实战中吸取经验,掌握优化过程,同时又加深对产品的理解。相信下面这篇一线互联网公司的性能优化实战能给你带来不一样的启发,其内包含了腾讯、阿里、字节、百度、网易、美团、谷歌等多家团队的项目实战+案例。

腾讯团队

  • 腾讯光影研究室—Android P之Smart Linkify
  • 腾讯Bugly—动态下发 so 库在 Android APK 安装包瘦身方面的应用
  • QQ音乐—彻底弄懂浏览器缓存策略
  • QQ音乐Android编译提速之路
  • 全民k歌适配arm64-v8a方案
  • 全民K歌内存篇1——线上监控与综合治理
  • 全民K歌内存篇2——虚拟内存浅析
  • 全民K歌内存篇3——native内存分析与监控
  • 腾讯Bugly—对字符串匹配算法的一点理解

字节团队

  • 字节跳动技术团队— 深入理解Gradle框架之一:Plugin,Extension, buildSrc
  • 字节跳动技术团队—深入理解gradle框架之二:依赖实现分析
  • 字节跳动技术团队—Scene:Android 开源页面导航和组合框架
  • 字节跳动技术团队—AwCookieManager.nativeGetCookiecrash 排查
  • 字节跳动技术团队—另类 BadTokenException 问题分析和解决
  • 字节跳动技术团队—抖音包大小优化-资源优化
  • 字节跳动技术团队—二维码扫描优化
  • 字节跳动—Android Camera内存问题剖析
  • 抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%
  • 抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%(二)
  • 抖音 Android 性能优化系列:Java 内存优化篇
  • 今日头条 Android ‘秒’ 级编译速度优化

阿里团队

  • 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
  • 支付宝 App 构建优化解析:通过安装包重排布优化 Android 端启动性能
  • 支付宝 App 构建优化解析:Android 包大小极致压缩
  • 解决支付宝包体积优化的遗留问题:运行时获取dexpc
  • 闲鱼技术—曾梦想 if-else 走天涯?看看“责任树模式”优化
  • 闲鱼如何在2个月内实现Android启动速度翻倍的?
  • 高德技术—Android Native 内存泄漏系统化解决方案
  • 天猫精灵技术—史上最全Android渲染机制讲解(长文源码深度剖析)

百度团队

  • 百度APP-Android H5首屏优化实践
  • 百度App技术—一种简单优雅的TextView行间距适配方案
  • 百度App技术—Android 10分区存储介绍及百度APP适配实践
  • 百度App技术—Gradle 与 Android 构建入门
  • 百度App组件化之路
  • 百度App网络深度优化系列《三》弱网优化

在这里插入图片描述

网易团队

  • 网易新闻客户端 H5 秒开优化
  • 网易新闻构建优化:如何让你的构建速度“势如闪电”
  • 网易传媒技术团队—AOP技术在客户端的应用与实践
  • 网易大数据|互联网产品决策秘笈: AB测试

美团团队

  • 美团技术团队—Android静态代码扫描效率优化与实践
  • 美团技术团队—Probe:Android线上OOM问题定位组件
  • 美团技术团队—移动端UI一致性解决方案
  • 美团—设计稿(UI视图)自动生成代码方案的探索

爱奇艺团队

  • 爱奇艺技术产品团队—干货|安卓APP崩溃捕获方案——xCrash
  • Android篇 | 爱奇艺App启动优化实践分享
  • 二维码扫描优化及爱奇艺App的实践

谷歌团队

  • 谷歌开发者—Flutter 您需要知道的知识点
  • 谷歌—协程中的取消和异常 | 异常处理详解

京东团队

  • 京东技术—任意URL跳转漏洞修复与JDK中getHost()方法之间的坑
  • 京东—LayoutInflater原理分析与复杂布局优化实践

搜狐团队

  • 搜狐技术产品—深入理解Flutter多线程

在这里插入图片描述

其他

  • 花椒Android端自动化测试实践
  • 开源 | BoostMultiDex:挽救 Android Dalvik 机型APP升级安装体验
  • 有赞移动Crash平台建设
  • 贝壳APP Top Experience系列 | Android方法耗时统计工具
  • 一种按照library的维度进行Android包大小分析的方法和实践

结语

俗话说,工欲善其事,必先利其器,我们要做好性能优化,首先是要能够发现性能的问题,这就需要大量的经验积累了,性能优化不是一块孤立的知识,对性能优化的深入理解需要方方面面的技术为辅助,如果这篇项目实战对你有帮助,那么可以在下方二维码中领取。
在这里插入图片描述

网站文章

  • 模式识别c语言isodata算法,《模式识别-黄庆明》第二章(ISODATA算法实例).doc

    ISODATA算法实例:此例中N 8,n 2。假设取初始值Nc 1,z1 1 x1 0 0 T,则运算步骤如下:第一步:取K 2,θN 1,θS 1,θc 4,L 1,I 4预选:K 预期的...

    2024-02-23 13:38:19
  • 外贸网站 云服务器,外贸网站 云服务器

    外贸网站 云服务器,外贸网站 云服务器

    外贸网站 云服务器 内容精选换一换在云服务器上搭建网站后,部分客户通过本地网络访问网站时出现偶发性无法访问的情况。确认客户使用的本地网络。若客户的本地网络是NAT网络(本地主机通过NAT功能使用公网I...

    2024-02-23 13:38:10
  • 微博平台内容丰富多样,采集微博文章让你一次满足

    微博平台内容丰富多样,采集微博文章让你一次满足

    1.微博平台用户界面微博平台的用户界面简洁明了,主要以纯白色为背景,给人一种清爽的感觉。而在与之对比的其他平台中,有些界面过于花哨,给人眼花缭乱的感觉。2.微博平台内容呈现微博平台的内容呈现多样丰富,用户可以发布文字、图片、视频等多种形式的内容。与之相比,其他平台在呈现形式上较为单一

    2024-02-23 13:35:11
  • Android开发之事件+实例

    Android开发之事件+实例

    “机器人”的管理员——Activity Activity 是Android 最基本的组件之一,它就像是一个管理员。我们需要在屏幕上显示什么(通常情况下,一个Activity 占据一个屏幕),用户将要在这个屏幕上做什么,怎样来处理用户做出的不同操作都需要由该Activity 来管理和调度。 下面列出Activity 经常用到的事件: onKeyDown(int keyCode, KeyEven

    2024-02-23 13:35:04
  • 瑞萨RH850/F1L-片上资源分配(Flash,RAM,外设资源)

    瑞萨RH850/F1L-片上资源分配(Flash,RAM,外设资源)

    瑞萨RH850片上存储资源分配,本博文讲解RH850为176pin LQFP封装: 1、片上Code Flash 2、片上Data Flash 3、片上RAM 版权声明 本博文系广州欧科曼科技有限公司...

    2024-02-23 13:34:56
  • android webview设置自适应任意大小的pc网页

    android webview设置自适应任意大小的pc网页

    WebSettings webSettings = view.getSettings();  webSettings.setJavaScriptEnabled(true);        // User settings            webSettings.setJavaScriptEnabled(true);  webSettings.setJavaSc

    2024-02-23 13:31:51
  • Kotlin Reference (十二) Extensions

    most from referenceKotlin与C#和Gosu类似,提供了扩展一个新功能的类,而不必继承类或使用任何类型的设计模式,如Decorator(装饰者模式)。这是通过称为扩展的特殊声明完...

    2024-02-23 13:31:42
  • Eclipse 4.2.2版本下windowbuilder出错问题!!

    Eclipse 4.2.2版本下windowbuilder出错问题!!

    Internal Error WindowBuilder encountered unexpected internal error. This could be caused by a WindowBuilder bug or by a misconfiguration issue, conflict, partial update, etc.

    2024-02-23 13:31:33
  • APP_CPU使用率

    APP_CPU使用率

    android cpu

    2024-02-23 13:31:21
  • python中的tensorRT环境部署

    python中的tensorRT环境部署

    tensorrt的环境部署

    2024-02-23 13:28:17