内存优化
降低OOM率
● 做内存优化的一个常见原因是为了降低OOM率 申请内存过多而没有及时释放,常常就会导致OOM 引起OOM的原因有多种,在后面我们再细谈
减少卡顿
● Android中造成界面卡顿的原因有很多种,其中一种就是由内存问题引起的. 内存问题之所以会影响到界面流畅度,是因为垃圾回收. 在GC时,所有线程都要停止,包括主线程.当GC和绘制界面的操作同时触发时,绘制的执行就会被搁置,导致掉帧,也就是界面卡顿
增加应用存活时间
● Android会按照特定的机制清理进程,清理进程时优先会考虑清理后台进程,如果某个应用在后台运行并且占用的内存更多,就会被优先清理掉 我们通常希望App能尽量存活的久一点,所以内存不再使用时应该尽快释放
导致卡顿的因素
● 硬件因素:CPU、RAM、ROM、HeapSize、SDK Version
● 软件因素:UI渲染相关、UI线程操作相关
卡顿优化
如何定义发生了卡顿现象:
● 如果App的FPS平均值小于30,最小值小于24,即表明应用发生了卡顿
● 线下很难复现,与发生场景强相关(所以需要我们去做卡顿监控,收集现场信息)
启动优化
网上流行一种说法,就是8秒定律,意思是说,如果用户在打开一个页面,在8秒的时间内还没有打开,那么用户大概的会放弃掉,意味着一个用户的流失。从这里就可以看出,启动优化的重要性了
启动的分类
冷启动
先来看看冷启动的流程图:

从图中可以看出,APP启动的过程是:ActivityManagerProxy 通过IPC来调用AMS(ActivityManagerService),AMS通过IPC启动一个APP进程,ApplicationThread通过反射来创建Application并且绑定,最后通过ActivityThread来控制activity的生命周期,在相关页面的生命周期中通过ViewRootImpl来对view的实现;从而完成应用的启动
热启动
热启动的速度是最快的,它就是进程从后台切换到前台的一个过程。
温启动
温启动只会重新走一遍页面的生命周期,但是对于进程,application不会重新在创建。
优化方向
上面介绍了启动的几种方式可以看出,我们针对启动优化,基本只是优化冷启动就可以了。但是从冷启动的启动流程中很多都是系统做的,我们没有办法操控。我们能做的,就是application的生命周期和activity的生命周期这部分,启动优化往往就是从这两块入手。
优化总结
性能优化是我们进阶的必经之路
所以,我们必须要会,至于“会”到什么程度,就要看个人理解了
本文地址:百科知识频道 https://www.hkm168.com/zhibai/698228_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!



相关阅读








