Android开发经验谈Android开发

Android性能优化整理总结

2019-10-11  本文已影响0人  YoungerHu

性能优化的目的

在不断地迭代开发过程中,我们的应用功能会越来越复杂,代码量也会不断增加。再加上偶尔的重构、人员的变更等等原因,我们曾经那个如丝顺滑的项目也会渐渐变得卡顿。
那么这个时候,就不得不提性能优化这个话题了。正好这段时间有空,就整理了一下常见的性能优化的几个方面以及各个方面的注意事项。一来是给自己脑中的知识做个梳理,加深下记忆,二来也能给一些萌新提供点思路。

内存优化

内存优化,可以说是性能优化中最重要的一部分内容了。如果应用占用内存过大,轻则应用卡顿降低用户体验,重则内存溢出(OOM),程序崩溃。所以内存优化很重要,接下来我们从一下几个方面来进行讲解

android的内存管理

android内存监测

内存优化方案

布局优化 详情

避免过度绘制

布局优化技巧

网络优化 详情

为什么要网络优化

网络优化的方式

启动优化 详情

闪屏页优化

主流APP是在应用启动时候会加载一个默认的主题,用来去掉应用启动时候的黑/白屏的情况

<style name="AppThemeWelcome" parent="Theme.AppCompat.NoActionBar">
    ...
    <item name="android:windowBackground">@drawable/logo</item>  <!-- 默认背景-->
</style>

应用主题到ApplicationActivity

<activity android:name=".ui.activity.DemoSplashActivity"
  android:configChanges="orientation|screenSize|keyboardHidden"
  android:theme="@style/AppThemeWelcome"
  android:screenOrientation="portrait">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>

其实就是个障眼法而已,提前让你看到了假的界面。也算是一种不错的方法,但是治标不治本。

第三方库懒加载

在开发中会用到很多的三方库,如友盟、百度、bugly、图片库、网络库等。

这些都是必须的,不能去掉,那么办法就是异步加载了,可以有以下几种思路

按照以上方式处理后,还可以进一步降低应用启动时间。

WebView启动优化

数据项预加载

主页数据变化不大时候,可以再第一次启动后,缓存主页数据到本地,下次启动先读取本地数据,页面完全显示后再去请求新数据进行增量更新。

安装包体积优化

体积优化的必要性

安装包体积是用户搜索应用后能第一眼看到的数据,虽然现在的应用体积越来越大,但小体积的App依旧是很多存储空间紧张用户的痛点。所以减少安装包体积是性能优化方面必不可少的一步。

减少应用体积的N种办法

电量优化

电量优化我放到最后说,是因为这个优先级比较低,因为一般APP在使用过程中,很难造成电量的明显下降,除非是游戏、相机或者视频类APP

电量优化相对来说比较简单,在开发中注意一下几点就可以了:

总结

Android的性能优化是一个长期且漫长的过程。一般企业在开发中都是先实现功能再去管性能,这样做会导致后期优化起来麻烦且耗时。建议有可能的话尽量保持一个好的开发习惯,在项目初期就注意性能方面的事情,不要引入无用的内容、保持代码整洁、及时删除已废弃模块等,这样开发的项目才回高效且易维护。


这篇文章也是根据我开发的经验以及网络中的好多精品文章整理而来,其中一些精彩的深入分析文章大家可以点击详情去查看。

上一篇下一篇

猜你喜欢

热点阅读