BLOGワンダープラネットの開発者ブログです。モバイルゲーム開発情報を発信。2013-11-01Cocos2d-xにおけるJNI(その2)Cocos2d-x今回のエンジニアブログを担当する村田です。前回の「Cocos2d-xにおけるJNI(その1)」の続きです。Android端末に設定されている言語情報をC/C++側へ返すプログラムを作成します。Javaプログラムの定義C/C++側から呼び出すJavaプログラムを定義します。「TestJniActivity」と付けます。今回は、JNI用のファイルを作成して実装します。ポイントCocos2d-xには、JNIを簡単に扱うためにJniHelperクラスが存在します。staticメソッドを呼び出す場合は、JniHelper::getStaticMethodInfo関数を使用します。インスタンスメソッドを呼び出す場合は、JniHelper::getMethodInfo関数を使用します。第1引数:JniMethodInfo構造体を渡します。第2引数:パッケージ名を含んだ形でクラスを指定します。第3引数:メソッド名を指定します。第4引数:メソッドのシグニチャを指定します。処理が正常に終了すると、JniMethodInfo構造体に必要なデータが格納されます。Javaで実装されたメソッドを実行する時は、状況に応じた関数を呼び出します。CallタイプMethod例:CallDoubleMethod文字列を取得した場合は、jstringからstringに変換する必要があります。JniHelperクラスには、この変換を簡単に行ってくれるjstring2string関数があります。あとは、この関数をC/C++から呼び出すことで、Android端末に設定されている言語情報を取得する事ができます。シグニチャは下記のとおりになっており、最初は取っ付きにくい部分です。[D2回に渡りJNIを説明してきました。JNIを利用することでAndroidネイティブの機能を呼び出す事ができるため、アプリ内課金なども実現可能となります。実現できる事の幅が広がりますので、覚えておいて損は無いかと思います。13:58Cocos2d-xにおけるJNI(その2)Tweet関連記事2015-10-23動画広告UnityAdsをCocos2d-xに導入してみよう今回のエンジニアブログを担当する大原です。昨今、カジュアル...2015-03-03FirebaseでiOSアプリを作ってみよう!今回のエンジニアブログを担当する村田です。Compilerで状態遷移プログラムを出力しよう今回のエンジニアブログを担当する大原です。アプリ開発を行っ...2014-08-12AndroidでBluetooth通信を行おう今回のエンジニアブログを担当する大原です。以前のブログ「An...2014-06-11AndroidでBluetooth対応デバイスを検索しよう今回のエンジニアブログを担当する大原です。採用情報ワンダープラネットではモバイルゲーム開発者を募集しております。(S編)C/C++でネットワークプログラミングをやってみよう(2)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。