2011-12-08 4 views
0

私は最近Dalvik VMに興味を持っています。 Wikipediaといくつかのスライドから、私はDalvik VMに関する基本情報を知っています。私が知らないことがまだあり、簡単に文書を見つけることができません:Dalvik VMはどのようにI/Oにアクセスできますか?

Dalvik VMはどのようにI/Oにアクセスできますか?

ネイティブメソッドを呼び出すオペコードは表示されません。接頭辞「OP_INVOKE」で名前が付けられたオペコードは、すべて.dexファイル(Dalvik実行可能ファイル)のメソッドを呼び出すようです。おそらくオペコードのバージョンが間違っていることを確認したのでしょうか?)

AndroidでForthの実装方法はありますか?

dupをサポートしていないAndroidForthを試しました。

+0

再:ここで

は、のDalvik/AndroidのでJNIにいくつかの詳細です。 Forth:[jsForth](http://www.forthfreak.net/jsforth.html)は現時点で最善の策ですが、PhoneGapなどで持ち上げる可能性のある制限があります。 [Retro](http://retroforth.org/)(名前に反して、特に「Forth」ではなく「Retro」ではない)は、PhoneGapを通じてAndroid UIを持っています。デバイス上のプログラミングのオプションは、PalmOSに比べてかなり不自由です。 –

+0

よく私は自分の携帯電話にレトロをインストールしている、問題は遊ぶためだけです、私はアンドロイドの本当のしかし簡単なツールをmkaeにしたいです – jyf1987

+0

あなたのためにまだ何も存在しません。最も合理的な道は(私が行ったことである「いくつかの他の言語をあきらめて使用する」以外の)あなたのForthシステムにJavaを生成させることです。 –

答えて

3

あなたが言及している標準の「呼び出し」オペコードは、ネイティブメソッドを呼び出すために使用できます。気にしません。

この意味で、ネイティブメソッドは、「ネイティブ」指定子でマークされたjavaクラスのメソッドであり、javaの標準JNIモデルに従ってネイティブライブラリに実装されています。 http://developer.android.com/guide/practices/design/jni.html

+0

よく私はJavaクラスとの関係船を持ってほしくない、それは直接ネイティブcメソッドを呼び出すことができますか? Java言語のbridageなしで? – jyf1987

+0

dalvikバイトコードからネイティブメソッドを呼び出す唯一の方法は、JNIを使​​用することです。 – JesusFreke

関連する問題