Callback mechanism from native to java ?? – android-ndk | Google グループ
Androidに限らず、JNIを使ってnativeの関数を呼び出すのは良いのだけど、逆に非同期でnativeからJavaにコールバックしたいときはどうするの?というケースは意外と多いんじゃないかと思う。
どうも、AttachCurrentThread()とやって、コールバック元のnativeスレッドをDalvikVMに関連づければ良さそうなんだけど…。
native層でさらに別プロセスとプロセス間通信とかやってたりしたらもう少し厄介なのかなぁ…。でもVMのすぐ下にあるJNIのnative層はVMと同じプロセスなはずだから、getVM()か何かでVMへの参照は取れるって事なのかな…。
JNI関係はそこそこニーズがあるものの、ちゃんとまとまった情報があまり無い感じ。AndroidなんかもNDKや独自ハードへの移植とかを考えると、JNIのノウハウはけっこう大事になってきそうだけどね。
関連する記事:
- AndroidでJavaとNativeとのやり取り(JNIは絶対必要?Socketなどは…?) 本家フォーラムにちょっと興味深いネタが。 Registering a java method as a callback function -...
- AndroidのMadiaPlayerはSurfaceをどうやってNativeに渡しているか? 本家フォーラムより。 Surface to Native - Android Developers | Google Groups...
- AndroidでNativeのデバッグが(未だに?)できない件 Debug Native JNI code on Android emulator - Android Developers...
- [android]masterブランチにOpenCORE 2.05がマージ Announcing OpenCORE 2.05 release - android-platform | Google グループ 変更箇所は多岐にわたるっぽいけど、ざっと見て目玉になりそうなのは何だろう?...
- Android2.0,Eclairブランチがgitリポジトリに Eclair is now in AOSP - android-platform | Google グループ...
- x86で動くAndroidのLiveCD”live-android” live-android - Google Code Android本家フォーラムを眺めていたときに見つけたもの。 LiveCD形式のためPCにインストールしなくてもAndroidを動かしてみることができる。 VirtualBoxでブートさせてみたところ、時々Androidのエラーが表示されるけれどキーボードでフォーカスを移動することで操作できる。一部起動しないアプリがあった(メーラーとか)。 キ......
コメント:0
トラックバック:0
- この記事のトラックバック URL
- http://www.swingingblue.net/mt/archives/002659.html/trackback
- トラックバックの送信元リスト
- JNIでnativeからJavaをコールバックするには?…JNIは分かりづらい - きままな日記帳 より
