博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android官方开发文档Training系列课程中文版:创建自定义View之View的优化
阅读量:6005 次
发布时间:2019-06-20

本文共 625 字,大约阅读时间需要 2 分钟。

原文地址:

现在已经完成了一个拥有良好设计的View,它即可以响应手势,又可以在状态之间过渡。为了避免View有卡顿的感觉,需要确保动画始终是按照每秒60帧的频率执行的。

尽可能的降低频率

为了使View更加流畅,需要从频繁调用的方法中剔除不必要的代码。

首先从方法开始,在该方法中动刀会有明显的流畅感。尤其是应该移除方法中的内存分配代码,因为内存分配会导致垃圾回收,这可能会使程序暂停。应该在程序初始化时或在动画开始执行之前申请内存,绝不要在动画运行的过程中申请内存。

除了精简方法之外,还应该确保降低这些方法的调用频率。方法的大部分调用是由方法引起的,所以要移除不必要的执行代码。

另一项代价非常高昂的操作就是布局的测量。每次调用时,Android的UI系统都会测量整个View层级来确定每个View都需要多大尺寸。如果找到尺寸有冲突的,还需要进行多次测量。UI设计者有时候需要创建内嵌的深层级布局来使UI布局正确。这些深层级的布局层级会引起性能问题。要使View层级尽可能的潜。

如果你有一个稍微复杂一点的UI,考虑写一个自定义执行这样的布局。与内置的View不同,你的自定义View可以对它的子View的尺寸与形状作个假设,这样就可以不用去测量子View的尺寸了。饼图示例展示了如何将ViewGroup作为自定义View的一部分。饼图含有一些子View,但是绝对不会去测量它们。相反的,它通过独有的自定义布局算法直接为这些View设置了尺寸。

转载地址:http://depmx.baihongyu.com/

你可能感兴趣的文章
网上购物系统(Task010)——FormView编辑更新商品详细信息
查看>>
Struts2 技术全总结 (正在更新)
查看>>
PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念
查看>>
Bzoj 2252: [2010Beijing wc]矩阵距离 广搜
查看>>
《编程之美》——寻找发帖“水王”学习与扩展 转surymj博客
查看>>
Linux 虚拟机VMware安装失败,提示没有选择磁盘
查看>>
LeetCode-Permutations
查看>>
SpringMVC的REST风格的四种请求方式
查看>>
漫谈 Clustering (1): k-means(转)
查看>>
从零搭建mongo分片集群的简洁方法
查看>>
J2EE环境配置与工具使用
查看>>
bzoj3684: 大朋友和多叉树(拉格朗日反演+多项式全家桶)
查看>>
C#整数三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别
查看>>
【经典算法】第四回:希尔排序
查看>>
css 禁止选中文本
查看>>
bzoj2165
查看>>
烂泥:【解决】NFS服务器使用showmount –e命令报错
查看>>
烂泥:LVM学习之逻辑卷LV及卷组扩容VG
查看>>
9. ZooKeeper之搭建单机模式。
查看>>
紧急维护,阿里云服务器抢修记
查看>>