7

Android アプリのネイティブ コードのライフ サイクルについて、いくつか混乱があります。ネイティブ コードが Dalvik VM 内で実行されるというリファレンスを見たことがありますが、それは本当ですか? VM は Dalvik バイトコードのみを実行するという印象を受けました。一方、ネイティブ コードは、VM 内の Java から呼び出される JNI を使用します。最後に、NativeActivity を使用すると違いはありますか?

座って自分自身に説明しようとするまで、NDK をかなりよく理解していると思っていました。私は賢明な方法で質問をしているのかさえ確信が持てません。

4

1 に答える 1

8

ネイティブ コードが Dalvik VM 内で実行されるというリファレンスを見たことがありますが、それは本当ですか?

Dalvik VM を含むプロセス内で実行されます。個人的には、VM 内で実行されるとは言いません。おっしゃる通り、Dalvik バイトコードは VM 内で実行されます。「Dalvik VM の制御下にある」という表現の方が適切でしょう。もちろん、それはあなたの「in」の定義に帰結すると思います。

最後に、NativeActivity を使用すると違いはありますか?

NativeActivityJava で実装されている限り、そうではありません。Javaを使用していない場合でも、Java はネイティブ コードの実行に少し関与しています。

于 2012-08-16T18:05:13.063 に答える