9

有没有办法使用 maven 加快编译和部署到 android 项目的设备?

我在 IntelliJ Idea 中测试了一个空白 android 项目(使用“android create project”从命令行创建)的构建时间——从按下“运行”按钮到在设备上启动应用程序需要 4 秒。然后我为它添加了 maven 支持——现在它需要将近 7 秒。

对于更大的项目,它需要更多的时间。例如,添加了 ActionBarSherlock 依赖项的空白项目需要大约 25-30 秒来编译、部署和运行。

有没有办法加快这个过程?

我想听听 Square 开发人员(尤其是 Jake Wharton)的回答 :) 编译您的 android 项目需要多长时间?

4

6 回答 6

4

我做的几件事让我有了一点进步:

  • 关闭调试版本的 dex 优化
  • 打开库预索引(这会减慢第一次构建但加快以下构建速度)

配置类似于:

<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <inherited>true</inherited>
    <configuration>
        <!-- All your current configuration -->
        <dexOptimize>false</dexOptimize>
         <dex>
            <preDex>true</preDex>
            <preDexLibLocation>/tmp/predexedLibs</preDexLibLocation>
        </dex>
    </configuration>
</plugin>

顺便说一句,我怀疑增量编译器存在一些问题,并且每次所有代码都是从头开始重新编译的。

于 2013-09-18T07:26:15.497 回答
3

Maven 3 具有多线程构建。我至少会尝试一下。鉴于你已经在 20 秒,它可能不会做太多,但它确实加快了我们更大的 maven 构建

mvn -T 4 clean install # Builds with 4 threads
mvn -T 1C clean install # 1 thread per cpu core
mvn -T 1.5C clean install # 1.5 thread per cpu core

Maven 3 中的并行构建

于 2013-09-24T21:00:49.270 回答
2

25-30 秒制作、部署和运行应用程序?幸运的人!我正在使用 Windows 笔记本电脑...

以下是我为加快开发速度所做的几件事:

  • 通过将模拟器映像和 SD-Drive 放在 SSD 上,我取得了一些不错的进展。
  • 从快照运行模拟器会更快地启动它。
  • 如果有可能,我会在实际设备而不是模拟器上运行我的代码 - 根据实际设备,即使使用虚拟化模拟器,这也会更快(在我的 Sony Xperia 上是 2 倍)。当然,这样做的缺点是,您无法测试不同的 Android 版本和设备配置文件。

但是模拟器中的所有小变化仍然存在,部署通过 TCP/IP 堆栈进行,这是它的瓶颈。

PS:我不是Jake Wharton,也不认识他。但是,如果他可以更改部署中的某些内容,他应该这样做:-)

于 2013-09-18T07:16:23.810 回答
1

您可以尝试为 MAVEN_OPTS 设置更高的 -Xms 和 -Xmx 选项。

此外,确保没有将idea中的maven配置为每次都下载/同步jar的存储库。

你也可以通过一些体面的硬件升级;-)

于 2012-11-28T15:46:21.010 回答
1

答案有点奇怪,但 Jake Wharton 建议转向真正增量的gradle-builds 。此外,使用Genymotion代替 SDK 仿真器和 USB 设备使我急需减少部署时间。

所以现在我的构建时间从 ~1m 减少到 ~10-20sec。

于 2013-11-28T14:44:37.057 回答
0

您可以尝试使用仅将增量更改上传到模拟器的工具:仅将更改的类推送到设备,应该节省一些时间。您可以尝试该工具: http: //www.instareloader.com/download/使用“inirwetrust”作为密码

于 2013-11-16T00:28:59.370 回答