性能优化笔记

本文探讨了Java内存管理中的栈和堆空间使用,强调了局部变量和成员变量的生命周期,指出内存泄露主要发生在堆内存中。同时提出了通过智能调度非紧急任务,如在设备充电时执行大耗电操作,来优化性能。
摘要由CSDN通过智能技术生成
三方面:Android的渲染机制,内存与GC,电量优化。

渲染优化
UI达到60fps需要再16ms内完成绘制
工具:打开手机里的开发者选项,选择Profile GPU Rendering,选中On screen as bars的选项。
1,层叠组件来实现复杂的UI效果,可能造成过度绘制,canvas.clipRect指定绘制区域
2,减少布局嵌套,推荐使用constraintLayout, 约束集 LinearLayout(线性布局),RelativeLayout(相对布局),百分比布局等的功能于一身,扁平式的布局方式,无任何嵌套,减少布局的层级,优化渲染性能。使用merge,viewSub

Refresh Rate:代表了屏幕在一秒内刷新屏幕的次数,这取决于硬件的固定参数,例如60Hz。
Frame Rate:代表了GPU在一秒内绘制操作的帧数,例如30fps,60fps。
GPU会获取图形数据进行渲染,然后硬件负责把渲染后的内容呈现到屏幕上,他们两者不停的进行协作。

绘制流程 :Android需要把XML布局文件转换成GPU能够识别并绘制的对象。这个操作是在DisplayList的帮助下完成的。DisplayList持有所有将要交给GPU绘制到屏幕上的数据信息。任何时候View中的绘制内容发生变化时,都会重新执行创建DisplayList,渲染DisplayList,更新到屏幕上等一系列操作。

RecyclerView的尺寸在每次改变时,比如你加任何些东西。setHasFixedSize 的作用就是确保尺寸是通过用户输入从而确保RecyclerView的尺寸是一个常数。RecyclerView 的Item宽或者高不会变。每一个Item添加或者删除都不会变。如果你没有设置setHasFixedSized没有设置的代价将会是非常昂贵的。因为RecyclerView会需要而外计算每个item的size
 控件:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>