TextureView+MediaPlayer实现在线短视频播放
性能优化 - 消除卡顿
消除卡顿
- 什么是卡顿及卡顿的衡量标准
- 产生卡顿的原因
- 通用优化流程
- 定位卡顿原因
什么是卡顿
卡顿是人的一种视觉感受,比如我们滑动界面时,如果滑动不流程我们就会有卡顿的感觉,这种感觉我们需要有一个量化指标,在编程时如果开发的程序超过了这个指标我们认为其是卡顿的。
FPS(帧率):每秒显示帧数(Frames per Second)。表示图形处理器每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。一般来说12fps大概类似手动快速翻动书籍的帧率,这明显是可以感知到不够顺滑的。30fps就是可以接受的,但是无法顺畅表现绚丽的画面内容。提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps就不容易察觉到有明显的流畅度提升了,如果是VR设备需要高于75fps,才可能消除眩晕的感觉。
开发app的性能目标就是保持60fps,这意味着每一帧你只有16ms≈1000/60的时间来处理所有的任务。Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps。
性能优化
性能优化系列阅读
内存优化
1-内存的管理机制
2-常见问题
3-Memory Monitor工具使用
4-内存抖动案例及优化
5-利用Allocation Tracker查找内存抖动中有问题的代码
6-利用Heap Viewer监控内存泄漏
7-利用AS中的Heap Viewer查看内存泄漏原因
8-AS中的Heap Viewer展示信息说明
9-利用LeakCanary工具监控内存泄漏
10-利用LeakCanary工具监控应用市场项目中的内存泄漏
11-Handler内存泄漏原因分析
12-内存碎片问题展示
13-使用对象池优化内存碎片问题
内存优化
为什么内存优化?
在一个商业项目中,很有可能因为工程师的疏忽,导致代码质量不佳,影响到程序的运行效率,从而让用户感知到应用的卡顿、崩溃。而Android开发中,每个Android应用在手机上申请的内存空间都是有限的。虽然手机发展越来越快,可申请到的内存越来越大,但是也不能大手大脚,随便浪费应用可使用的内存空间。内存一旦不够时,你这个应用就会因为OOM(out of memory)而崩溃。因此,内存优化这一块内容,在开发应用时是非常重要的。
1. 内存优化的关键点—避免内存泄露
内存优化中非常关键的一点,就是避免内存泄露。因为内存泄露会严重的导致内存浪费,所以避免内存泄露,是内存优化中必不可少的。