【Android】NDKのインストール
現在,Androidアプリを作成していてNDK(Native Development Kit)が必要になったので導入してみた。
以前,Eclipseで開発していた時には導入していたが,開発環境をAndroid StudioにしてからはNDKを使用する機会が無かったので導入していなかった。そこで,今回改めて導入することにした。
NDK(Native Development Kit)
Android環境において,C/C++コードを使用できるようにするツールセット。処理速度を向上させたい場合や,C/C++ライブラリを使用したい場合などに使う。
導入
導入時環境
導入しようとしたときの環境は下記の通り。
- Android Studio 1.2
- Gradle 2.2.1
ちなみにPCのスペックは下記の通り。
- Windows 7 Professional SP1
- 64bit
Android Studioのアップデート
色々なサイトを見ると,Android Studioメニュー「Help」→「Check for Update...」をクリックして開いた「Platform and Plugin Updates」ダイアログの「Update Now」ボタンを押せば アップデートできるらしいが,1.2だと「Update Now」ボタンが無かったので,手動でダウンロードを行い,Android Studio 1.5.1にアップデートした。
Gradleのアップデート
Android Studioメニュー「File」→「Project Structure...」をクリックして「Project Structure」ウィンドウを開く。「Project Structure」ウィンドウの左にあるタブから「Project」を選択し,「Gradle version」に変更したいバージョンを入力すると自動でインストールされる。下図の通り,Gradle 2.10にアップデートした。
NDKのインストール
Android Studioの「Project」にある「app」を右クリックし,「Open Module Setting」を選択する。
開いた「Project Structure」ウィンドウの左にあるタブから「SDK Location」を選択し,「Download NDK」をクリックしてNDKをダウンロード。
インストールが完了するとNDKのパスが表示される。
experimental pluginの設定
別途作成したCソース(yyy.c)とヘッダファイル(yyy.h)を./app/src/main/jniにおき,buildをしてみると下記エラーが出る。
Error:Execution failed for task ':app:compileDebugNdk'.
> Error: NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
experimental pluginが必要らしいので,下記ページを参考にexperimental pluginを入れてみる。
Experimental Plugin User Guide - Android Tools Project Site
まずexperimental pluginはgradleのバージョンごとに対応するバージョンがある。
Plugin Version | Gradle Version |
---|---|
0.1.0 | 2.5 |
0.2.0 | 2.5 |
0.3.0-alpha3 | 2.6 |
0.4.0 | 2.8 |
0.6.0-alpha1 | 2.8 |
0.6.0-alpha5 | 2.10 |
なお,Gradleのバージョンは下記ファイルで確認できる。
./gradle/wrapper/gradle-wrapper.properties
Gradle Versionが2.10なので,Plugin Version 0.6.0-alpha5を入れる。「0.6.0-alpha5」とそれ以前のバージョンでは以下の設定ファイルの記述方法が異なるようなので注意。以下はPlugin Version 0.6.0-alpha5の場合の設定方法である。
pluginのクラスパスを下記の通り書き換える。
./build.gradle
さらに,下記の通り書き換える。
9行目のapplicationIdには,各アプリのIDを指定する。
./app/build.gradle
ここまでの設定でbuildをすると,yyy.cの#include
Cannot find ‘yyy.h’
moduleNameを指定する必要があるようである。また,ソースディレクトリをjniフォルダ内のsrcに変える。(デフォルトではソースディレクトリがsrc/main/javaとなっている。)
./app/build.gradle
上記の変更でbuildが通り,Andorid環境でC/C++をコードを使用できるようになった。