性能优化

2019-02-22  本文已影响0人  taijielan
页面优化

Android的绘制原理
首先了解fps(Frames Per Second 每秒传递的帧数),通俗来讲就是指动画或视频的画面数, 在Android如果让用户感觉到页面不卡顿,那么需要的fps是60fps,也就是每一帧的绘制需要在16ms内完成,如果传递的帧数低于50fps的话,那么用户就会觉得很卡了,此时就要做一些优化了。Android 系统每隔16ms发出 vsync (Vertical Synchronization 垂直同步)信号,cpu收到这些信号会对UI进行更新,如果此时某个layout的绘制有24ms,那么用户在下次更新的32秒之内观察到的还是上一个帧的视图。(简单点说就是我传递了60帧的信号,但是你只绘制了50帧的信号,丢帧了,导致界面看上去很卡)。
通常的引起卡顿的原因有:


电量优化

尽量减少一些不必要的刷新,当应用退到后台之后,一切的界面刷新都是无意义的而且浪费内存和电量的,如通过广播监听网络的变化,刷新页面。


布局优化

include(共享标签) ,merge(合并标签) ,viewstub(延迟加载) 标签的使用。


网络请求方面

避免DNS解析,因为通过DNS域名URL需要去在网络上面映射表中查找对应的IP地址,这个过程可能需要上百秒的时间,而且有可能存在DNS劫持的危险,根据具体的业务要求,可以用过IP直连的方法,达到更快的网络请求,坏处是不够灵活,因此IP方法需要增加动态更新的能力,或者在IP方法失败后,切换到域名访问的方式。


图片的优化

内存优化 释放掉没有用掉的资源。主要有集合内泄露,单利模式的内存泄漏,内部类/匿名内部类的泄漏,以及资源忘记关掉导致的泄漏。
MVP
MVP的好处:
MVP的缺点:

ANR(Application Not Response)产生的原因:

只有应用的主线程相应超时才会引起ANR,超时原因一般有俩种:

上一篇下一篇

猜你喜欢

热点阅读