NDKサンプルのコンパイルの仕方

本物のページはこちら→sample

Included page "ndk:sample" does not exist (create it now)

サンプルはどこ?

ndkをインストールした後、のsampleフォルダにサンプルが入っている。

各サンプルの概要

  • hello-jni… 一番シンプルなサンプル。文字を表示する。
  • two-libs — a simple application that loads a shared library dynamically and calls a native method provided by the library. In this case, the method is implemented in a static library imported by the shared library.

san-angeles — a simple application that renders 3D graphics through the native OpenGL ES APIs, while managing activity lifecycle with a GLSurfaceView object.

  • hello-gl2…OpenGL ES 2.0のサンプル。主にシェーダを使って書く。
  • hello-neon — a simple application that shows how to use the cpufeatures library to check CPU capabilities at runtime, then use NEON intrinsics if supported by the CPU. Specifically, the application implements two versions of a tiny benchmark for a FIR filter loop, a C version and a NEON-optimized version for devices that support it.

bitmap-plasma — a simple application that demonstrates how to access the pixel buffers of Android Bitmap objects from native code, and uses this to generate an old-school "plasma" effect.
native-activity — native-app-glue static libraryを使ったnative activityのサンプル
native-plasma — a version of bitmap-plasma implemented with a native activity

プロジェクトの構成

<ndk>/samples/<name>/ ..Android.mkとApplication.mkという大事なファイルが入っている。
<ndk>/samples/<name>/jni/…Cのソースコードが入っている。

ndk-buildでコンパイル

<ndk>/samples/<name>/

の場所に行き、コマンドプロンプト上で

ndk-build

と打つ。すると、

<ndk>/samples/<name>/libs/armeabi/

か、

<ndk>/samples/<name>/libs/armeabi-v7a/

というフォルダが作成され、
その下にshared libraryってやつ(gdb.setup,gdbserver,<name>-lib.soとかのファイル達)ができる。

IDEにてプロジェクト立ち上げ

"Import from Existing Source" でプロジェクトを立ち上げ、
インポートするプロジェクトの場所は

<ndk>/samples/<name>/.

にする。
なんか、プロジェクト名がcom.example.みたいになっちゃうのが不満だけど。。。どうしたらいいの?
APIレベルはAndroid 1.5以上にすること。

<ndk-root>/samples/<name>
の場所へ行き、

実行する

エラー

Selected project (com.example.hellojni.HelloJni) does not have C/C++ nature. To add native support, right click on the project, Android Tools -> Add Native Support
Android Tools -> Add Native Support
プロジェクトを右クリックして「Android Tools」からAdd Native Supportに行ってみたが、NDKの場所が正しくないとか言われた。
EclipseのPreference->Android->NDKでNDKのある場所をちゃんと教えてあげた。

Description Resource Path Location Type
Program "sh" not found in PATH com.example.hellojni.HelloJni C/C++ Problem
Program "ndk-build" not found in PATH includeCProjectNDK C/C++ Problem
Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties. tests line 1 Android ADT Problem
Cygwinが有効じゃないとこのようなエラーになるらしい。

サポートサイト Wikidot.com