Shared Libraryを作成するとき、 インスタンスの管理はなかなか悩ましい問題ですが、 Androidのmediaパッケージで、 JNIを利用したちょっと変わったインスタンス管理をやっていたので紹介&覚書。 /* envはJNIEnv*, thizはjobjectで、JNI呼び出しクラスのインスタンス */ /* NativeClassはAndroidミドル側の適当なクラス */ jclazz clazz = env->FindClass("hoge/foo/JavaClass"); jfieldID context = env->GetFieldID(clazz, "mNativeContext", "I"); NativeClass* pNative = new NativeClass; env->SetIntField(thiz, context, (int)pNative)
Is there any way in which I can pass/get an object of android context in my ndk appliation. I want to use SharedPreferences in my ndk application via jni interface. To get an instance of SharedPreferences object, I need to call getSharedPreferences() on Context object. But I do not have access to the context object. OR How can I read and write an xml file from NDK ? Any pointers will be appreciate
メールアドレスがこのグループでは匿名化されているか、メンバーのメールアドレスを表示する権限がないため、元のメッセージを表示できません javaのcom.ServersServiceクラスのgetIpv6を C言語側から呼び出しでいますけど 何とか連携まではできだ感じです。(Method not found: 'getIpv6' '(I;)I' のようなエラーは既に解決済み) 問題なのはCallIntMethod()でgetIpv6関数の戻り値をファイルに出力してみたら [99]じゃ無くで「-1091242504」とか「11212」とか 変な数値ばっかり出力されています。 getIpv6関数のLog.i()ログも吐き出していないです。 本当に呼び出していないと思いますが、原因はなんでしょうか? よろしくお願いします。 javaのコード: public void onCreate() { se
ネイティブコードからクラスやオブジェクトのフィールドを取得する. サンプル インスタンスネイティブメソッドとスタティックネイティブメソッドの違い JNIEnv jobjectからjclassを取得する フィールドIDの取得 フィールド値の取得 まとめ サンプル説明は後にしていきなりサンプルを示す.特にネイティブコードの最初の関数で雰囲気を掴めると思う.まず問題のフィールドを保持しているクラス. public class Fields{ /* ���ƥ��å��ʥե������ */ public short publicFieldShort = 0; int pkgPrivateFieldInt = 1; protected long protectedFieldLong = 2L; private double privateFieldDouble = 3.0; /* �����ƥ�
JavaのライブラリをC/C++から呼ぶ方法のメモ. フルのソースコートはこちら 参考にしたページ: シンプルな C言語からJava言語を呼び出すJNIサンプル ここでは以下のようなJavaのクラスをC++から利用することを想定する. package my.hoge; public class Hoge { public Hoge() { } public void printHoge(){ System.out.println("Hoge!"); } public String getHoge(){ return new String("Hoge"); } public int add(int i, int j) { return i + j; } public String getMsg(String msg){ return new String("Hoget is " + msg)
ネイティブコードからクラスやオブジェクトのメソッドを呼び出す. 流れ サンプル インスタンスメソッドとスタティックメソッド メソッドIDの取得とシグネチャ javap 流れメソッドを呼び出す時の流れは,フィールドの取得や設定とそんなに変わらない.以下にその流れを示す. インスタンスメソッドの場合スタティックメソッドの場合 <Type>にはメソッドの返り値の型と対応するInt,Short,Byteなどが入る. サンプル流れが掴めたところでサンプルを示す.まずはネイティブコードから呼び出されるメソッドを保持するクラス. public class Methods{ public void publicVoidMethod(){ System.out.println("publicVoidMethod()"); } static int pkgPrivateStaticIntMethod(){ i
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く