7

我最近從Eclipse + ADT切換到Android Studio。我的應用程序是完整的原生C++應用程序。我使用Android Studio 2.0 Beta 5和Gradle實驗0.6.0-beta4。Android Studio本機代碼編譯速度慢

對於本機代碼,Android Studio的構建過程非常緩慢。我閱讀了Stackoverflow和Internet上的所有問題。我應用了所有建議的方法(--offline,--daemon,--parallel,-XmxSize等)。他們主要致力於加快Java代碼的構建。本地C++文件(ndk-build)的編譯過程仍然非常緩慢。即使我編寫一行C++代碼,每次單擊「運行」按鈕時,我都會等待5-7分鐘,其中Eclipse的編譯時間對於同一作業而言大約爲15-20秒。

您有什麼建議可以加快Android Studio上本機代碼(C/C++)的編譯過程嗎?

+0

嘗試分離ndkBuild步驟,如http://ph0b.com/android-studio-gradle-and-ndk-integration/ –

+0

@AlexCohn中所述,將作業從Android Studio中移出。對於不處理本機文件但使用某些本機庫的Java應用程序來說,它可能是一個選項。我的應用程序是純粹的本機應用程序我正在尋找gradle-experimental構建系統內的解決方案。 – Rancs

+1

一個技巧可能是限制Android Studio構建的ABI –

回答

1

如果你正在構建在Linux上我有一劈爲你加快NDK編譯:

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

現在創建一個名爲shell腳本「NDK建造」包含以下內容:

#!/bin/sh 
$(dirname $0)/ndk-build2 -j 8 [email protected] 

現在設置了新的腳本執行權限:

chmod 775 ndk-build 

現在,誰推出NDK建造(以包括gradle/android studio)將會強制同時在8個核心上轟出目標文件。 8核心只是一個例子。您必須將其設置爲您可用的核心數量。如果將其設置得太高而不是可用內核的數量,則通常會失去性能。如果CPU具有超線程,則可以使核心數量加倍。

我相信有一個等效的方式,使用批處理腳本或類似的東西,但我沒有Windows機器可用atm。

+0

爲什麼** 8 **核心?這是一個不變的? –

+0

這只是因爲我有4個超線程核心。你應該把它設置爲你所擁有的。如果將其設置爲高於物理內核的數量(如果超線程爲雙倍),則通常會失去性能。 – bofjas