10

我最近从 Eclipse+ADT 切换到 Android Studio。我的应用程序是一个完整的原生 C++ 应用程序。我使用 Android Studio 2.0 Beta 5 和 Gradle Experimental 0.6.0-beta4。

对于原生代码,Android Studio 的构建过程非常缓慢。我阅读了有关 Stackoverflow 和 Internet 的所有问题。我应用了所有建议的方法(--offline、--daemon、--parallel、-XmxSize 等)。它们主要用于加速 Java 代码的构建。原生 C++ 文件(ndk-build)的编译过程仍然很慢。即使我编写了一行 C++ 代码,每次单击“运行”按钮时,我都会等待 5-7 分钟,而 Eclipse 的编译时间对于相同的作业大约需要 15-20 秒。

您有什么建议可以加快 Android Studio 上原生代码(C/C++)的编译过程吗?

4

2 回答 2

1

如果您在 linux 上构建,我有一个技巧可以让您加快 NDK 构建:

cd <ndk-bundle-path>
mv ndk-build ndk-build2

现在创建一个名为“ndk-build”的 shell 脚本,其中包含以下内容:

#!/bin/sh
$(dirname $0)/ndk-build2 -j 8 $@

现在为新脚本设置执行权限:

chmod 775 ndk-build

现在,任何启动 ndk-build(包括 gradle/android studio)的人都将被迫同时在 8 个内核上敲出目标文件。8核只是一个例子。您必须将其设置为您可用的内核数。如果您将其设置得太高,与可用内核的数量相比,您通常会失去性能。如果 CPU 具有超线程,您可以将内核数量加倍。

我确信有一种等效的方法可以在 Windows 上使用批处理脚本或其他方式进行操作,但我没有可用的 Windows 机器。

于 2016-05-13T21:32:35.153 回答
0

我将回答我的旧问题以关闭它。

故事的最后,我们将cmake集成到了项目中。它的运行速度与旧的 Eclipse 构建性能一样快。

于 2019-11-30T18:15:56.657 回答