Android NDKでの OpenGL ESアプリ製作に興味があったので環境を作ってみました。僕のこれまでのAndroid開発経験は、Javaでちょっと書いてみたことがあるぐらいでした。
最近は Visial Studio Code で何でもできるようになってるので、Android NDK開発用のプラグインがないかなーと思ったのですが、残念ながら見つからず。素直に Android Studio を使うことにします。
公式に従って Android Studio をインストール。
Android Studio のインストール
https://developer.android.com/studio/install
起動したら、Empty Activity でプロジェクト作成。NDKインストールしたいだけなので、このプロジェクトは捨てプロジェクトです。Configureはデフォルトのままで作りました。
Install NDKに従って NDK をインストール。
NDK と CMake のインストールと設定
https://developer.android.com/studio/projects/install-ndk
Tools – SDK Manager を開いて、(…と思ったらToolsになかったのでアイコンから開いた)
SDK Tools で、NDKとCMake にチェック。インストールします。
NDKインストール終わったら、あらためて、新規プロジェクトを作成。
NativeC++ プロジェクトを選びます。最初なのでいつものHelloWorld的なのを作ってみます。
Languageに Kotlin / Java が選べますね。時流に従ってKotlinのままにしときます。
(よくわからんけど)
Minimum SDKは、Android側ロジックではそんな大したことする予定ないのでデフォルトの
API16 Android 4.1のままで。SDKとしてはかなり前のものですね。
C++のバージョン選べますね。Toolchain Default のままにしました。
Finish でプロジェクト完成!
app/java/com.exsample.hellondkworld/java/MainAcrivity.kt が、Kotlin側のソース
app/java/com.exsample.hellondkworld/cpp/native-lib.cpp が、C++側のソースですね。
Kotlinソースも java の下になるのか。
C++側から表示する文字列を取得して、layout.activity_mainの sample_text 内容にセットする処理です。何もしなくても最初から Hello world 完成してた。
アプリを動作させるために、AVD Managerからエミュレータを設定します。
デフォルトで選ばれてた Pixel 2 API R を作成しました。
エミュレータ動作させるには、PCのVT-x(Virtualization Technology:仮想化支援技術) 設定が有効になっている必要があります。
「VT-x is disabled in BIOS.」のエラーが出るので、BIOS設定で有効にしましょう。僕のPCもOFFになってて、BIOS入り方がわからなくて悪戦苦闘しました…。あとは言われるがままにいろいろインストール。
エミュレータ設定したら、アプリ起動!エミュレータ起動、初回はかなり時間かかります。(僕のPCの性能がたいしたことないからというのが大きい)
起動しましたー。
layout.activity_mainで文字位置とサイズを変えてみる。日本語も普通に行けますね。