0

知りたかったのですが、Androidに、C /C++コードが記述されたアプリケーションがあるかどうかを考えてみてください。このコードを実行すると、ネイティブcライブラリが必要になります。では、DVMはこれらのライブラリとどのように通信するのでしょうか。ライブラリからリソースを取得するためにBinderを使用していますか?または、コードのこの部分はJVMで実行されません。そうでない場合、これはどこでどのように実行されますか?また、JVMとネイティブライブラリの間にリンクはありますか?

4

1 に答える 1

1

コミュニケーションとはどういう意味ですか?.soがvmにロードされると、vmはシンボルを解析し、存在する場合はjavaネイティブメソッドにバインドします。基本的に、vmは.soと通信しません。バイトコードの世界は、vmプロセス内の構造化メモリのようなものであり、ネイティブメソッドはvmの一部であるjni環境ルーチンを介して読み取りまたは書き込みを行うことができます。

于 2011-12-15T06:12:57.390 に答える