7

私は最近、Eclipse + ADTからAndroid Studioに切り替えました。私のアプリケーションは完全なネイティブC++アプリケーションです。私はAndroid Studio 2.0 Beta 5とGradle Experimental 0.6.0-beta4を使用しています。Android Studioのネイティブコードのコンパイルが遅い

Android Studioのビルドプロセスは、ネイティブコードでは非常に遅いです。私はStackoverflowとインターネットに関するすべての質問を読んでいます。私はすべての提案された方法を適用しました(--offline、--daemon、--parallel、-XmxSizeなど)。彼らは主にJavaコードの構築をスピードアップするために取り組んでいます。ネイティブC++ファイル(ndk-build)のコンパイルプロセスはまだまだ遅いです。 1行のC++コードを記述しても、Eclipseのコンパイル時間は同じジョブで約15〜20秒であった[実行]ボタンをクリックするたびに5〜7分待ちます。

Android Studioのネイティブコード(C/C++)のコンパイルプロセスをスピードアップするための提案はありますか?

+0

http://ph0b.com/android-studio-gradle-and-ndk-integration/ –

+0

@AlexCohnに記載されているように、ndkBuildの手順を分けてください。これは、Android Studioから仕事を引き出します。それは、ネイティブファイルを扱わないが、いくつかのネイティブライブラリを使用するJavaアプリケーションのためのオプションかもしれない。私のアプリは純粋なネイティブアプリです。私はgradle-experimentalビルドシステムの中の解決策を探しています。 – Rancs

+1

Androidスタジオが構築するABIを制限する方法が1つあります。 –

答えて

1

あなたがLinux上で構築している場合、私はあなたがNDKビルドをスピードアップするためのハックを持っている:

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

は今、次を含む「NDKビルド」と呼ばれるシェルスクリプトを作成します。

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

新しいスクリプトの実行権限を設定します。

chmod 775 ndk-build 

、中(NDKビルドを起動し、誰Cluding gradle/android studio)は、同時に8つのコアにオブジェクトファイルを書き込むように強制されます。 8つのコアは単なる例です。この数を、使用可能なコアの数に設定する必要があります。使用可能なコアの数に比べて高く設定すると、通常パフォーマンスが低下します。 CPUにハイパースレッディングがある場合は、コアの数を2倍にすることができます。

バッチスクリプトなどでWindows上で実行するのと同等の方法があると確信していますが、Windowsマシンで使用できるatmはありません。

+0

なぜ** 8 **コアですか?それは不変であるか? –

+0

それはハイパースレッディング付きの4つのコアがあるからです。あなたはこれまでに入手可能なものに設定する必要があります。物理コア数(ハイパースレッディングの場合は倍数)よりも高く設定すると、通常パフォーマンスが低下します。 – bofjas

関連する問題