Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
androidxml与java布局性能_Android_Performance - Fatal编程技术网

androidxml与java布局性能

androidxml与java布局性能,android,performance,Android,Performance,Android SDK为开发者提供了用xml文件或直接用java代码编写布局的功能。我读过这篇文章,每个人都说xml更易于维护和编写,但它们是静态的。否则java布局是动态的,但没有人评论性能问题。关于性能,我发现的唯一一件事是嵌套布局对性能有负面影响。与其编写嵌套布局,不如创建自定义布局。到目前为止还不错 布局设计呢?xml还是java代码?我的android在运行时或编译时是如何解析xml文件的?即使它们是在编译时解析的,也应该在运行时使用。那么,用xml声明RelativeLayout还是

Android SDK为开发者提供了用xml文件或直接用java代码编写布局的功能。我读过这篇文章,每个人都说xml更易于维护和编写,但它们是静态的。否则java布局是动态的,但没有人评论性能问题。关于性能,我发现的唯一一件事是嵌套布局对性能有负面影响。与其编写嵌套布局,不如创建自定义布局。到目前为止还不错


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

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

  • 用XML声明UI元素。Android提供了一个简单的XML 与视图类和子类相对应的词汇表,例如 与小部件和布局相同

  • 在运行时实例化布局元素。应用程序可以创建 查看和查看组对象(并操纵其特性) 以编程方式

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

Eclipse的ADT插件提供了XML的布局预览——打开XML文件后,选择布局选项卡

您还应该尝试使用层次查看器工具来调试布局-在模拟器或设备上调试时,它会显示布局属性值、使用填充/边距指示器绘制线框以及完整的渲染视图

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

用XML声明UI的优点是,它使您能够更好地将应用程序的表示与代码分离 这控制了它的行为。您的UI描述在您的外部 应用程序代码,这意味着您可以修改或调整它而无需 必须修改源代码并重新编译。例如,你可以 为不同的屏幕方向、不同的设备创建XML布局 屏幕大小和不同的语言。此外,声明 XML中的布局使UI的结构更易于可视化, 因此,调试问题更容易

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


我认为仅仅访问此链接并获取更多信息太过分了。

决定在何处声明UI组件的一个主要因素是它在应用程序生命周期中的行为。如果它是静态的,我将用XML声明所有需要的属性,如果它根据用户交互而改变,我将不得不在活动中实现它


我会尽可能多地使用XML,因为上面提到的好处包括一致性、更好地管理各种屏幕大小、本地化、资源管理等。,

在性能方面没有太大区别,因为您的资源xml文件也将使用aapt工具进行预编译。因此,xml转换将发生在源资源文件上,并与java源文件一起编译为java类文件。所以,性能应该大致相同也是合乎逻辑的,因为最终两者都将被编译,并且在运行时为两者分配内存。我还检查了我的示例应用程序,通过XML和Java生成类似的视图,在对它们进行分析时,我发现视图的呈现大约需要相同的时间。:-)

我可以用我的话来写答案,但我想你们可以从Android开发者的文档中得到更好的理解。这就是为什么…-)谢谢您的回答,我已经阅读了android文档,但是性能如何?查看资源的加载速度是否比代码加载速度快?@KamenStoykov,只要正确声明XML布局,就不会有任何明显的差异。性能方面没有什么最差的。。两者都一样。。实际上,XML布局是一种JAVA类表示。实际上,当您在代码中声明
rl=new RelativeLayout()
时,它也会编译和执行。但您是用java格式编写的。同样,当您用XML编写
时,它也会编译为java类代码并执行。在XML中有一些代表性的格式。实例化视图比从XML文件中膨胀视图要快一些。除非你的Java代码太糟糕。使用XML比运行时创建布局的最大优势是“你可以看到预览,而不必每次都运行它”。我相信这本身就是一个很好的理由。