随着互联网的发展,大众对程序员这个职业有了更多的了解,除了高薪工资之外,压力太大,黑白颠倒,作息不规律等等,也是身为一个程序员必须经历的事情。
大部分程序员都是安静的、稳重的,有什么问题发给他们修改,收到的都是简洁明了的“OK”。
但是,很多时候,只要一句话,就能让这些可爱的程序猿瞬间被激怒
项目实战- 启动速度
- 流畅度
- 抖音在APK包大小资源优化的实践
- 优酷响应式布局技术全解析
- 网络优化
- 手机淘宝双十一性能优化项目揭秘
- 高德APP全链路源码依赖分析
- 彻底干掉OOM的实战经验分享
- 微信Android终端内存优化实践
在Android应用优化方面,我们主要从以下6个方面进行优化:
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据存储优化
- APK大小优化
一、启动速度与执行效率优化
-
冷启动和热启动解析
本节主要介绍启动方式、特点、应用启动的流程、测量应用启动的时间、什么才是应用的启动时间、降低应用启动时的耗时、优化应用启动时的体验。 -
APP启动黑白屏解决办法
解决方法1,把启动白屏的背景换成一张图片;解决方法2,把启动白屏背景变透明。 -
APP卡顿问题分析及解决方案
16ms原则;
卡顿处理;
Triple Buffer,既然丢帧的情况不可避免,Android 团队从未放弃对这块的优化处理,于是便出现了Triple Buffer(三缓冲机制)。 -
启动速度与执行效率优化之StrictMode
StrictMode 详解、Systrace和TraceView。
二、布局检测与优化
-
布局层级优化
程序的每个组件和 Layout 都需要经过初始化、布局和绘制,如果布局嵌套层次过深,就会导致加载操作更为耗时,更严重的话还可能导致内存溢出。本节学习使用两个工具来检查和优化 Layout。 -
过度渲染
既然能够通过系统设置知道过度渲染次数,测试时候就读取该值,填写报告就完了啊,为何要自动化呢?因为在对app进行系统的测试时,会发现页面非常多,如管家一二级页面就多大20多个,且集成包,灰度包,正式包,回归包都要进行一次测试,所以进行自动化过度渲染计数读取是有必要的。
三、内存优化
由于Android应用的沙箱机制,每个应用所分配的内存大小是有限度的,内存太低就会触发LMK(Low Memory Killer)机制,进而会出现闪退现象。如果要对内存进行优化,就需要先搞懂java的内存是如何分配和回收的,关于这方面,可以重点参考下面的内容:
主要包含
- 内存抖动和内存泄漏
- 内存大户,Bitmap内存优化
- Profile内存监测工具
- Mat大对象与泄漏检测
四、耗电优化
如果一个app使用的很少,但是app的耗电量却很高,这时候用户肯定想直接卸载这个app。那么如何降低自己app的耗电量就是一个很重要的事情了。
耗电的因素有那些呢?
(1)Alarm Manager wakeup 唤醒过多
(2)频繁使用局部唤醒锁
(3)后台网络使用量过高
(4)后台 WiFi scans 过多
详细内容包含
- Doze&Standby
- Battery Historian
- JobScheduler、WorkManager
五、网络传输与数据存储优化
- google序列化工具protobuf
- 7z极限压缩
六、APK大小优化
让我们的apk文件尽可能更小,移除那些未使用的代码和资源文件,节省下载和提高效率。
- APK瘦身
- 微信资源混淆原理
结尾
我还总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料,免费分享给大家。
(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。