背景
- http://qiita.com/alingogo/items/203477c9da373ab7eacb に、Android上に、NDK実装を試してみた
- android.mkは、自作じゃないので、仕組みなどが分からない
- https://github.com/openxc/android-webcam などのライブラリは、コマンドラインでndk-buildを使って、ビルドしたことがある
目的
- コマンドラインで、ndk-buildの使い方を理解できる
- .mkファイルの書き方を理解できる
ndk-buildの使い方
事前準備
- Windows 7
- Android NDKのダウンロード
- 環境変数の PATH にも NDK のフォルダを追加する
コマンドの例
コマンド | 意味 |
---|---|
ndk-build | 普通のビルド |
ndk-build clean | 生成した.soファイルを削除 |
ndk-build NDK_DEBUG=1 | デバッグ可能なバイナリの生成(デフォルト: 0) |
ndk-build V=1 | ビルドコマンドを表示 |
ndk-build NDK_LOG=1 | NDKのログを表示(デバッグのために) |
補足
- この記述は、Android NDK r4以降の限定
android.mkの書き方
必須
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := webcam
LOCAL_SRC_FILES := webcam.c yuv.c video_device.c util.c capture.c
include $(BUILD_SHARED_LIBRARY)
説明
- LOCAL_PATH := $(call my-dir)
- LOCAL_PATH: 現在のファイルがあるパス、$(CLEAR_VARS)ではクリアされない
- my-dir: 最後にincludeしたmakefileが含まれるディレクトリを返す
- include $(CLEAR_VARS)
- CLEAR_VARS: LOCAL_XXX変数を消す
- LOCAL_MODULE
- モジュールの名前
- LOCAL_SRC_FILES
- ソースファイルのリスト(LOCAL_PATHからの相対パス)
- include $(BUILD_SHARED_LIBRARY)
- lib$(LOCAL_MODULE).so
その他
- http://www.kandroid.org/ndk/docs/ANDROID-MK.html に参照してください(英語)
参照
- http://developer.android.com/tools/sdk/ndk/index.html
- http://www.kandroid.org/ndk/docs/OVERVIEW.html
- https://sites.google.com/site/hippunosource/home/android/pureinsutorupuroguramunoandroid-mkno-shuki-fang
- http://blog.makotokw.com/memo/android/android-ndk/
- http://ameblo.jp/ekispresso/entry-10918205130.htmlAp
- https://github.com/openxc/android-webcam