android – 性能:ViewGroup with Children VS.自定义绘制视图

我正在开发一个包含大量自定义视图的应用程序,并遇到了一个非常复杂的性能问题.它们用于测量和绘制的时间是高的(典型地> = 30ms).提供更多细节:它是一个自定义viewGroup(扩展RelativeLayout),带有自定义视图(尽管扩展RelativeLayout),因为它是它的子项.

所以我想到了解决这些性能问题可能是更好/更快的方法:优化子项和布局或切换到完全自定义绘制的视图(线条,矩形和类似的东西)?

你们中的任何一个人都有过这方面的经历吗?甚至一些人做了一些基准并且愿意分享它们?

解决方法:

简单的方法是简化和展平当前的视图层次结构,也许你将能够使测量和绘图过程更便宜(或者至少是体面的).你没有发布布局,所以没有具体的说法,我看到你在RelativeLayouts中提到过RelativeLayouts,也许你可以删除一个并将视图向上移动一级(即使添加其他帮助器视图的费用) ,每个级别都很重要(特别是嵌套RelativeLayouts).您可能已经知道了,但布局中的合并和包含标签可能非常有用.

标准SDK中的RelativeLayout是作为通用小部件构建的,因此很可能无法实现自定义设计布局的性能.让当前布局扩展RelativeLayout以扩展ViewGroup并手动实现子项的测量和布局会更有意义,尤其是当您可能知道应用程序中的用例场景时(例如,RelativeLayout总是需要处理所有大小约束)如果您知道自定义视图将具有特定大小,那么另一方面,您的自定义布局可以更快地处理这种情况.

与完全自定义绘制的视图相关,它是一个选项,但它取决于布局的复杂性.

Or even some done some benchmarks and is willing to share them?

我不知道各种视图基准(很可能不适用于您的具体情况)将有所帮助.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...