加快IntelliJ IDEA的Android项目建造时间(Speed up Android pro

2019-07-03 18:00发布

我想知道,如果有什么办法,如何设定skip packaging and dexing中的IntelliJ IDEA像Eclipse和ADT。 还有Additional VM Options中的IntelliJ Android的DX Compiler部分领域Preferences ,也许这可能是一个办法,如何设置它。 我还希望另一个秘诀,如何加快的IntelliJ Android项目建设。

Answer 1:

在Eclipse首选项,的完整名称skip packaging and dexing你指是Skip packaging and dexing until export or launch. (Speeds up automatic builds on file save) Skip packaging and dexing until export or launch. (Speeds up automatic builds on file save) ,这是因为奥德12 ADT增添了应对Eclipse的增量编译问题(它们会减慢对Eclipse开发),检查出的一个特点修订12.0.0(2011年7月)和此链接为更多详细信息,请注意,包装和德兴是重要的一步,当你在调试/运行的项目,无论你使用哪一个IDE(或无)。

作为CrazyCoder在他的评论中提到,的IntelliJ不支持的Eclipse般渐进式编译和问题窗格默认情况下,换句话说,当文件改变了它不会自动编译您的项目。 所以这真的不是在的IntelliJ的问题,也不功能。

您的构建过程中的瓶颈可能来自别的地方。 据我所知在中等规模的项目,大部分时间构建过程要花上编制资源(AAPT命令,检查出的构建过程图 )。 从xdadevelopers一些聪明人发现的瓶颈,创造AAPT的修复版本:

http://forum.xda-developers.com/showthread.php?t=1907281

我用它自己,我想说的速度提升是Eclipse的可感觉,请注意,它只能助长AAPT一步,而不是包装广告德兴。 如果你使用InteliJ,它可能没有太大的帮助,因为它不需要编译项目经常。



Answer 2:

我使用的IntelliJ 12.我已经赢得了时间部署和运行Android应用程序使的IntelliJ为“自动生成项目”。 要启用它,只要到首选项 - > 编译器并勾选“自动生成项目”。 在同一窗口中检查“编译独立模块在平行”。

启用“自动生成项目”可以让你跳过Android应用程序推出前“做”的任务。 您可以在“运行/调试配置”删除它,选择你的Android应用程序,并在“启动之前”部分删除“请”的任务。



Answer 3:

我没有一个解决方案,但我对为什么会出现的Eclipse和IntelliJ之间存在着巨大的编译时间差作出解释。 因为有。 当你依赖于外部的模块或库: 永远的IntelliJ依赖DEX'es模块 。 Eclipse中似乎缓存他们。

我也经历过在我的项目之一这巨大的差异。 我做了一些基本的计时测试,发现我的项目,该项目建在的IntelliJ40秒只花了20在Eclipse中。 大量的时间花费在的IntelliJ的状态为执行DEX的过程,所以我这是怎么发现这个问题。 然后我试图做的更彻底和可重复的实验,这是我发现了什么。

项目设置

  • 从Eclipse中的新的Android应用程序模板一个Hello World项目。
  • 对依赖AndEngine开源的Android游戏引擎项目*。
  • 月蚀:定义为“Android的图书馆” AndEngine项目。 添加Java构建路径/项目选项卡下的Android选项卡下的参考和必备项目。
  • 的IntelliJ:AndEngine定义为“模块”。 设定为主要模块的HelloWorld依赖, 选中的出口复选框(不是,我认为它很重要)。

*)我可以在这里使用的任何模块,但是这是一个很好的例子作为)是相当大的,和b)是一款Android模块,这意味着我必须链接它作为一个Android项目,而不是仅仅作为一个JAR的DBM提示中上述帖子。

我添加在记录码onCreate的方法MainActivity.java (的HelloWorld的启动活性),其也被称为在AndEngine的方法,其还记录的线。 (I修饰的构造SoundManager以输出线和称为从构造MainActivity.java )。 这让我看到了在应用程序中完成部署,它也已正确部署。

然后我做了以下的变化和他们每个人的定时在每个IDE三次:

  • 答:仅在修改记录在主模块中线路
  • A + B:改性两个主模块中和AndEngine模块中的记录线。

我做了人工计时与标准秒表,然后四舍五入向上/向下精确到秒。 我做了三个定时在每种情况下和计算的算术平均值。

结果:

注意:我并没有包括在Eclipse中“执行DEX”,因为它简单地输出“制造”或者在整个构建过程中“提神工作区”单独分列。

这是预期 - 如果从Eclipse中运行,你可以从我节省时间,当我只修改主模块的数字看。 但在的IntelliJ的编译时间是在两种情况下是一样的!

结论:

的IntelliJ做了很多不必要的DEX'ing的。 如果有谁知道,如果这是可配置的,我想我们会解决相信这是问题的根源。



Answer 4:

有时,当我添加大量的外部JAR来我(的Eclipse)项目似乎显著减缓构建过程。

我有,但是,注意到,而不是添加的罐子像往常一样( Project -> Properties -> Java Build Path -> Libraries -> Add External JARs... ),可以添加一个用户库,而不是( Project -> Properties -> Java Build Path -> Libraries -> Add Library... -> User Library )和外部JAR文件添加到这个库,而不是。

这个迄今一直解决了我的大的JAR-集结时间的问题。 一些聪明的家伙也向我解释为什么会这样,但不幸的是我真的不记得了解释。 我在的IntelliJ没有经验 - 我不知道这是不是在所有适合你的情况,不过,你可能会从这里得到进一步的想法?



文章来源: Speed up Android project build time in IntelliJ IDEA