vlambda博客
学习文章列表

这份 Android 性能优化手册 对标大厂!

互联网行业永远不缺新的创意,之前的人员异动、组织架构优化都已经过时啦,这次京东和B站就整了个好活儿,把裁员叫做“毕业”,“毕业须知”上还暖心的跟你说“毕业快乐”。对于裁员给出的名头,各大厂其实也是早就百花齐放:


上学的时候常说,毕业即失业,如今却在互联网从业者的身上应验,真是浓浓的黑色幽默。据内部人士透露,这次的毕业潮不同以往:以前还有异动选项,这次多条业务线全部裁员,异动都没去处,只能领着赔偿寻找下一份工作了。互联网行业的寒风,终究还是让从业者光秃秃的脑门蒙上了一层霜。好多人瞬间失去了奋斗的方向,曾经梦中光鲜亮丽的大厂,如今看来也不过残破如絮,进了大厂也迟早要被毕业,所谓人生,莫不如从此躺平。

这份 Android 性能优化手册 对标大厂!

(有赞裁员工牌都堆了一箱子)

被这波裁员潮所波及的人,收拾心情之后都要继续踏上征途。技术还算过硬的,去小厂有机会谋求一个技术总监的岗位,技术一般的,在和别人竞争小厂的一个岗位时,凭借大厂的履历还是更有机会胜出的。所以,虽然互联网行业不如以前那样风头正劲,大厂也不像以前那样屹立不倒,但如果有一份大厂的履历,那么在整个行业内,你仍然还是可以比别人站的更稳一些,这就是“打铁还需自身硬”的最佳诠释。

想要拥有大厂高级工程师的实力,一定要从业务开发中跳出来。多少人错把项目经验当做过硬的资本,但回过头看一看,一次又一次的CV,又给你带来过什么成长?遇到bug就只能百度,百度无果的那份焦虑一次又一次的让你头皮发麻。唯有扎实的深耕技术,让自己从CV机器成为有技术深度、懂底层原理的技术人员。且要与时俱进,对新技术保持足够的敏感度,这样才能更好地提升的开发效率。例如在性能优化方面,很多人对于出现的BUG、OOM都不知道从何下手,简历写得再好看,一旦到岗也就露出了马脚。


Android的性能优化,主要从以下几个方面开展:
稳定(内存溢出、崩溃) 
流畅(卡顿) 
耗损(耗电、流量) 
安装包(APK瘦身) 
影响稳定性的原因很多,比如对 内存使用不够合理、代码异常、场景考虑不周全、代码逻辑不合理等,都会让应用的稳定性出现问题。其中最常见的两个场景是: Crash 和 ANR,这两个错误将会使得程序彻底崩溃。所以做好Crash全局监控, 处理闪退同时把崩溃信息、异常信息收集记录起来,以便后续分析;合理使用主线程处理业务,不要在主线程中做耗时操作,防止ANR程序无响应发生。

这份 Android 性能优化手册 对标大厂!

(一)稳定——内存优化
(1)Memory Monitor 工具
(2)LeakCanary工具
(3)Android Lint 工具

(二)流畅——卡顿优化
卡顿的场景通常发生在用户交互体验中。影响卡顿的两大因素,分别是界面绘制和数据处理。
界面绘制:主要原因是绘制的层级深、页面复杂、刷新不合理,由于这些原因导致卡顿的场景更多出现在 UI 和启动后的初始界面以及跳转到页面的绘制上。
数据处理:导致这种卡顿场景的原因是数据处理量太大,一般分为三种情况,一是数据在处理 UI 线程,二是数据处理占用 CPU 高,导致主线程拿不到时间片,三是内存增加导致 GC 频繁,从而引起卡顿。
(1)布局优化
(2)绘制优化
(3)启动优化

(三)节省——耗电优化
在 Android5.0 以前,关于应用电量消耗的测试即麻烦又不准确,而5.0 之后Google专门引入了一个获取设备上电量消耗信息的API—— Battery Historian。Battery Historian 是一款由 Google 提供的 Android 系统电量分析工具,直观地展示出手机的电量消耗过程,通过输入电量分析文件,显示消耗情况。
(1)计算优化
(2)避免 Wake Lock 使用不当
(3)使用 Job Scheduler 管理后台任务
(四)安装包——APK瘦身

还有冷启动、热启动等很多性能优化方面的技巧,在这里就不展开赘述了。 针对“性能优化”这个要点,分享给大家一份 Android性能优化-大厂面试高频问题实战解析》 ,这份学习手册将会带领大家一步一步深入探索Android的性能优化,让产品的性能从各个方面得到提升,希望大家喜欢。
这份 Android 性能优化手册 对标大厂!
扫码即可领取资料

这份 Android 性能优化手册 对标大厂!
目录
这份 Android 性能优化手册 对标大厂!

这份 Android 性能优化手册 对标大厂!

这份 Android 性能优化手册 对标大厂!
腾讯团队
这份 Android 性能优化手册 对标大厂!

  • 腾讯光影研究室—Android P之Smart Linkify

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

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

  • QQ音乐Android编译提速之路

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

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

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

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

  • 腾讯Bugly—对字符串匹配算法的一点理解

  • ......



这份 Android 性能优化手册 对标大厂!

这份 Android 性能优化手册 对标大厂!
字节团队
这份 Android 性能优化手册 对标大厂!

  • 字节跳动技术团队— 深入理解Gradle框架之一:Plugin,Extension, buildSrc

  • 字节跳动技术团队—深入理解gradle框架之二:依赖实现分析

  • 字节跳动技术团队—Scene:Android 开源页面导航和组合框架

  • 字节跳动技术团队—AwCookieManager.nativeGetCookiecrash 排查

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

  • 字节跳动技术团队—抖音包大小优化-资源优化

  • 字节跳动技术团队—二维码扫描优化

  • 字节跳动—Android Camera内存问题剖析

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

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

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

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

  • ......


这份 Android 性能优化手册 对标大厂!

这份 Android 性能优化手册 对标大厂!
阿里团队
这份 Android 性能优化手册 对标大厂!

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

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

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

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

  • 闲鱼技术—曾梦想 if-else 走天涯?看看“责任树模式”优化

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

  • 高德技术—Android Native 内存泄漏系统化解决方案

  • 天猫精灵技术—史上最全Android渲染机制讲解(长文源码深度剖析)

  • ......


这份 Android 性能优化手册 对标大厂!

这份 Android 性能优化手册 对标大厂!
百度团队
这份 Android 性能优化手册 对标大厂!

  • 百度APP-Android H5首屏优化实践

  • 百度App技术—一种简单优雅的TextView行间距适配方案

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

  • 百度App技术—Gradle 与 Android 构建入门

  • 百度App组件化之路

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

  • ......


这份 Android 性能优化手册 对标大厂!

这份 Android 性能优化手册 对标大厂!
网易团队
这份 Android 性能优化手册 对标大厂!

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

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

  • 网易传媒技术团队—AOP技术在客户端的应用与实践

  • 网易大数据|互联网产品决策秘笈: AB测试

  • ......


这份 Android 性能优化手册 对标大厂!

这份 Android 性能优化手册 对标大厂!
美团团队
这份 Android 性能优化手册 对标大厂!

  • 美团技术团队—Android静态代码扫描效率优化与实践

  • 美团技术团队—Probe:Android线上OOM问题定位组件

  • 美团技术团队—移动端UI一致性解决方案

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

  • …...

  • …...


这份 Android 性能优化手册 对标大厂!


这份 Android 性能优化手册 对标大厂!
尾声

每个程序员朋友都有自己的架构师梦,可往往梦想是美好的,现实又是残酷至极的。不努力不奋斗,可能就会在基层一辈子止步不前。也许有很多朋友还会说,程序员也是干的年轻饭,年纪大了也就爬不上了,脑子跟身体都跟不上了。那既如此,又为何不趁着自己还年轻,好好把握机会,努力一把,美好的未来才有机会和你招手!当然咯,这也仅仅代表我个人的观点,毕竟一百个人有一百个不同的脑子,就会有成千上万种不同的想法。
不过,只一句,如果你还在做这一行,还是一名程序猿(媛),想走上坡路的你,也许我这到手的  十几家一线互联网公司-性能优化项目实战 可能会对你有所帮助。
如果你需要这份完整版的性能优化项目实战笔记,赶紧扫描下方二维码领取吧!!!