内容へ移動
ユーザ用ツール
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
現在位置:
home
»
wiki
»
Android
»
Tips
»
003 JNIを利用してC言語の関数を実装する
トレース:
wiki:android:tips:003
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 003 JNIを利用してC言語の関数を実装する ====== ===== 概要 ===== Javaで作成された簡単な関数を、JNIを利用してC言語で実装してみます。 <code java> // 加算した値を返す。 protected int addValue(int value1, int value2) { return value1 + value2; } </code> これをC言語に置き換えてみます。 ==== jniフォルダの作成 ==== プロジェクトのディレクトリにjniフォルダを作成します。この中にソースコードとメイクファイルを配置していきます。 ==== ソースコードの追加 ==== <code c> #include <jni.h> // 加算した値を返す。 jint Java_com_example_addapp_MainActivity_addValue( JNIEnv* env, jobject thiz, jint value1, jint value2 ) { return value1 + value2; } </code> 関数名が長くなっていますがこれは "Java_パッケージ名_クラス名_メソッド名" というメソッド名の規約があるためです。これを間違えていると実行時にエラーになります。 ==== Android.mkファイルの追加 ==== <code> -Android用のmakefileを追加します LOCAL_PATH := $(call my-dir) #変数の初期化 include $(CLEAR_VARS) #出力するモジュール名 LOCAL_MODULE := calcvalue #モジュールを構成するC/C++のソースコード LOCAL_SRC_FILES := calcvalue.c #共有モジュールを出力 include $(BUILD_SHARED_LIBRARY) </code> ==== 呼び出し方 ==== <code java> // ロードするモジュールを指定 static { System.loadLibrary("calcvalue"); } // 加算した値を返す。(nativeをつけることでJNI関数であることをを宣言する) protected native int addValue(int value1, int value2); </code> これでネイティブコードでの実装に置き換えることが出来ます。
Permalink
wiki/android/tips/003.txt
· 最終更新: 2014/11/06 07:45 (外部編集)
ページ用ツール
ログイン
文書の表示
文書の先頭へ
印刷
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
oeffentlich