Android xml vs java 布局性能

标签 android performance

Android SDK 为开发人员提供了在 xml 文件中或直接在 java 代码中编写布局。我读过它,每个人都说 xml 更易于维护和编写更简单,但它们是静态的。否则java布局是动态的,但没有人评论性能问题。我发现关于性能的唯一一件事是嵌套布局对性能有负面影响。与其编写嵌套布局,不如制作自定义布局。到目前为止一切顺利;)。

版面设计呢? xml还是java代码? xml 文件如何在运行时或编译时解析我的 android?即使它们在编译时被解析,它们也应该在运行时使用。那么在xml中声明RelativeLayout还是在onCreate方法中声明哪个更快呢?

最佳答案

布局定义用户界面的视觉结构,例如 Activity 或应用小部件的 UI。您可以通过两种方式声明布局:

  • 在 XML 中声明 UI 元素。 Android 提供了一个简单的 XML 对应于 View 类和子类的词汇表,例如 与小部件和布局一样。

  • 在运行时实例化布局元素。您的应用程序可以创建 View 和 ViewGroup 对象(并操作它们的属性) 以编程方式。

Android 框架让您可以灵活地使用其中一种或两种方法来声明和管理应用程序的 UI。例如,您可以在 XML 中声明应用程序的默认布局,包括将出现在其中的屏幕元素及其属性。然后,您可以在应用程序中添加代码,在运行时修改屏幕对象的状态,包括那些在 XML 中声明的对象。

用于 Eclipse 的 ADT 插件提供 XML 的布局预览 — 打开 XML 文件后,选择“布局”选项卡。

您还应该尝试使用 Hierarchy Viewer 工具来调试布局 - 它会显示布局属性值、使用填充/边距指示器绘制线框,以及在模拟器或设备上进行调试时完整呈现的 View 。

layoutopt 工具可让您快速分析布局和层次结构是否存在效率低下或其他问题。

The advantage to declaring your UI in XML is that it enables you to better separate the presentation of your application from the code that controls its behavior. Your UI descriptions are external to your application code, which means that you can modify or adapt it without having to modify your source code and recompile. For example, you can create XML layouts for different screen orientations, different device screen sizes, and different languages. Additionally, declaring the layout in XML makes it easier to visualize the structure of your UI, so it's easier to debug problems.

当你编译你的应用程序时,每个 XML 布局文件都被编译成一个 View 资源。您应该在 Activity.onCreate() 回调实现中从应用程序代码加载布局资源。通过调用 setContentView() 来实现,将布局资源的引用传递给它,格式如下:

我认为它太多了,只需访问此链接 http://developer.android.com/guide/topics/ui/declaring-layout.html并获取更多信息..

关于Android xml vs java 布局性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13878053/

相关文章:

performance - 每个存储桶的最大沙发床 View 数

python - 如何优化在 `django-mptt` 中添加新节点?

android - listview onClick 返回错误结果

android - 多个dex文件定义Lcom/google/android/gms/internal/zzrx;

java - 使用Java/Eclipse测试代码执行速度

java - 如何从 Java 中的 ArrayList 中删除重复的对?

Java 集合和垃圾收集器

java - 当我单击 mainActivity 中的汉堡按钮时,抽屉导航未打开

android - 可扩展 ListView 将组图标指示器向右移动

java - Android 7.1.1 SSLHandShakeException 连接被对端关闭