声明:本篇文章已授权微信公众号 YYGeeker 独家发布

导语

随着近年来移动互联网的逐渐成熟稳定,风口浪尖褪去,移动端从高速增量转变成存量阶段,厮杀惨烈。一方面,互联网企业的增长也逐渐放缓,岗位需求骤降,竞争变得越来越激烈;而另一方面,越来越多同质化的产品出现。用户对产品的质量及体验要求越来越高,白热化的竞争让app产品的生存压力不断加大。早期行业风口来临时,企业对移动端岗位需求暴增,较低的技术门槛以及可观的薪资回报吸引了大量的人才涌入互联网行业。如今面对前景不明的现状,许多企业曾经高速扩张的模式已经难以为继,纷纷选择战略调整,优化人员结构(裁员)。面对这样的情况,开发者们很多都开始迷茫和焦虑。

回过头来反思一下,作为移动应用开发者,我们的核心竞争力是什么?我们主要的职责是为公司的战略目标作出技术支撑,实现app的功能,在技术层面保证应用可以稳定及流畅运行。在当今环境下,更加需要通过不断提升自身实力,提高我们的技术深入及广度,来凸显我们的竞争力。

通常情况,一个优秀的应用都具备稳定流畅的性能,良好的用户体验。用户体验这个概念想必大家早已熟知,总体来说一个App除了有非常吸引人的功能和交互之外(产品/设计层面),在性能上也应该有一个严格的把控及追求(技术层面)。本系列将着眼于性能优化方向展开探索,通过这些知识点提供给大家参考,希望可以帮助开发者个人或者团队少走弯路,做到技术赋能业务,提升我们所开发app的性能及质量。

正文

众所周知,由于Android系统的碎片化和开源,各大厂商定制系统,兼容性问题比较严重。此外,由于项目历史包袱以及开发者代码质量良莠不齐等各种原因,不可避免地,我们会遇到诸多诸如 Crash/ANR,UI不流畅等问题。若对这块了解不够深入,有时往往会不知所措,并做出错误决策,甚至可能酿成严重线上事故。


而作为一名开发者,我们如何在开发过程中避免产出这类有问题的代码呢?同时对于线上已出现的问题,我们又该如何快速定位解决故障呢? 本系列将通过以下几个方面进行系统性的探索及讨论。

1. 流畅性优化

流畅性主要从以下几个方面着手:

  • 启动优化
  • UI优化
  • 线程优化

2. 稳定性优化

相对其他几点来说,我们要处理的应用稳定性优先级是比较高的。它体现在长时间使用,应用不异常退出或显示异常等。 而应用异常退出主要有以下几个原因:

  • Java Crash
  • Native Crash
  • ANR

以上几点往往也是我们平时最常见的,也是我们重点需要解决的。应用出现的问题点通常最后都会体现在这里。

3. 包体积优化

随着业务需求的叠加,时间的推移,apk 的体积容易出现过大的情况,size过大会影响用户下载和更新的意愿,因此对于这块我们也是需要适当去考虑的。主要有如下几个大方向去深入挖掘:

  • 资源优化
  • 代码优化
  • 图片优化
  • 考虑插件化,按需加载

4. 耗电优化

从经验总结来看,耗电的大小跟CPU的使用率及频繁网络操作成正比,因此我们可以通过分析这些去优化。

5. 存储优化

这里包括io操作,数据存储等

6. 网络优化

主要包括网络请求频率,网络切换,数据上传等方面。

结语

本文主要概述了性能优化系列的大致的知识点,详细的知识点将会陆续在后续文章发布出来。通过以上几个方面的探索,相信应该能够帮助大家解决 80% 以上常见的性能问题。希望通过这个系列的文章可以帮助大家少走弯路,提升技术实力,用技术赋能业务,驱动app的成长和发展。此外若有一些建议或不错的优化技巧,也可以提出或者指正~ 有优秀的文章也欢迎投稿,谢谢大家的支持。

更多相关文章

  1. 写给Android开发者的混淆使用手册
  2. Android(安卓)性能优化之内存优化
  3. Android动态加载技术 简单易懂的介绍方式
  4. 盘点Android应用开发中曾经很流行但是已经过时或即将过时的技术
  5. Android(安卓)APP启动优化二 使用Systrace和TraceView分析启动耗
  6. Flutter 1.0 正式版: Google 的跨平台 UI 工具包
  7. Unity与Android交互方案优化版
  8. 2019年Android开发者常见面试题(一)
  9. 开发者大杀器 —— Battery Historian,刨根问底,揪出 Android(安卓

随机推荐

  1. Android相对布局实现各种梅花效果
  2. Android入门
  3. Android(安卓)shape使用和属性含义
  4. Android修改主机名和IP地址问题
  5. [Android]笔记19:RatingBar的功能与用法
  6. Android(安卓)KitKat 4.4平台开发-添加US
  7. 【Android】1:Android(安卓)APP开发入门篇
  8. Android中文合集 最终版
  9. 手机和平板之外——带你理解跨设备的Andr
  10. 我眼中的Qt for Android