首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中编译java文件后,注释会发生什么?

在Android中编译java文件后,注释会发生什么?
EN

Stack Overflow用户
提问于 2012-05-16 10:05:16
回答 2查看 5K关注 0票数 10

Android编译器是如何工作的?它会在编译时删除Java代码和Android XML文件中的注释吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-16 10:31:54

Java文件中的注释在编译成类文件时会被删除或忽略。类文件不是供人阅读的-它们被优化为在虚拟机上高效运行。如果要保留注释,它们只会导致类文件比所需的更大,并且没有额外的好处(例如,编译器和虚拟机不理解注释,所以为什么要包含它们)

对于XML文件,注释通常会被保留。编译后的类文件只有一个用途(在虚拟机上运行),而XML文件可以有多种用途。例如,您可以将XML文件加载到应用程序中并对其进行操作。根据应用程序中XML文件的使用情况,可能需要在其中保留注释-事实上,您的应用程序可能专门查找注释。因为XML文件可能有广泛的用途,所以不会从XML文件中删除注释,以防需要它们用于其他目的。

票数 15
EN

Stack Overflow用户

发布于 2012-05-16 10:19:53

file..comments的字节码/类版本中不存在注释。编译器在编译时会忽略这些注释。

编译器的工作方式是将所有高级语言代码逐行转换为once..not中机器可理解的Code..all,就像解释器一样。在Android的情况下..编译器将.java源文件转换为字节码/.class files..and,然后将其转换为.dex文件(Dalvik可执行文件)。安卓系统中的所有应用程序都运行在名为Dalvik Virtual Machine的虚拟机之上,该虚拟机需要.dex文件。

尝试打开一个像zip一样的apk文件。使用任何archiver..you都可以看到其中的classes.dex文件。

就xml文件而言..只有当你在屏幕上显示一些东西(即正在渲染的活动)时,应用程序才会使用它们。当活动被displayed..its时,相应的..so文件被用来构造UI。这个过程叫做充气!

编辑:[但我现在记得的一点是that..the系统应用程序,这些应用程序存在于安卓Phone..such中,因为所有谷歌提供的应用程序(Gmail,地图等)..the联系人,Phone.apk etc..all那些系统应用程序都在/ system / apks..present / directory..they中,它们可能包含也可能不包含.dex文件。

如果它们在apk文件中包含.dex (就像我们开发的任何普通应用程序一样),那么这个..then就被称为去解码的.dex(安卓操作系统的固件)。但是这又导致当第一次安装只读存储器时启动较慢,因为所有的.dex文件从系统.apk文件复制到dalvik cache..since在系统启动/引导时需要系统.dex的所有apks文件。

但是如果ROM是odexed的..系统.apk的所有.dex文件都不在.apk中,而是作为/ system /app/目录中的一个单独文件。使用扩展.odex

对于您和我开发的所有应用程序(非系统应用程序),play store..those的..just应用程序都包含.apk内部的.dex ]

编辑:我知道这与工作或问题没有太大关系。但只想提一下sys和非sys应用程序的.dex文件位置的不同!:)

希望它能有所帮助!:)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10611087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档