Mis*_*ith 8 xml performance android android-layout
您的UI描述位于应用程序代码的外部,这意味着您可以修改或修改它,而无需修改源代码并重新编译.
我知道XML布局和资源的许多优点,但由于XML文件放在APK中,我认为没有重新打包就没有真正的方法来修改GUI.我的意思是,我们大多数人都使用eclipse ADT插件和ANT打包应用程序,因此没有编译类文件没有真正的好处(因为在修改资源文件后,开发人员将不得不重新打包应用程序并生成新的APK文件).因此,如果不重新部署整个APK,就无法在设备上重新部署GUI.
如果这个假设是真的,那么在APK文件的生命周期中XML文件将是相同的.我想这些文件(特别是布局文件)必须在运行时(在活动的onCreate之前)进行解析和处理,这比以编程方式构建GUI(如Swing)效率低.布局通常不是瓶颈,但如果我是正确的,我会在这里看到一些可以更好地使用的浪费时间(例如,使用动画).
阅读同一页面,它指出:
编译应用程序时,每个XML布局文件都会编译为View资源.
检查我的一个APK,我一直在寻找一个预编译的文件classes.dex,除了我的java类和R.class文件.布局XML文件在里面/res/layout folder,并且有一个名为的文件resources.arsc似乎包含有关其他资源(字符串,图标名称)的信息,但是我认为没有任何与视图相关的信息(如果我错了,请纠正我).
我的问题:
提前致谢.
如果您对LayoutInflater的类文档有所了解,您会注意到他们说:
出于性能原因,视图通胀在很大程度上依赖于在构建时完成的XML文件的预处理.因此,目前还不能使用
LayoutInflater有XmlPullParser过在运行时一个纯XML文件; 它只适用XmlPullParser于从编译资源返回(R.something file.)
所以,布局文件确实在某种程度上是预编译的, 并且,根据上面的摘录判断,它将在预编译的布局文件位于已编译的APK包中,如R$layout.class输出文件中(但我不是100%肯定)./res/layout/<layout_id>.xml.您会注意到,如果您将其解压缩并在文本编辑器中打开,大多数纯文本XML元素都已映射到某种二进制形式.
它可能与您在AndroidManifest.xml打包到APK 中的文件中看到的压缩类型相同.
| 归档时间: |
|
| 查看次数: |
1006 次 |
| 最近记录: |