0

FlexとJavaの両方で使用したい静的変数と関数を含む共有ライブラリがあります。したがって、私のFlexアプリケーションはANEファイルを介してライブラリをロードし、JavaはJNIを介してロードします(これはまったく同じライブラリですが)。Androidは、アプリケーションごとにライブラリの2つのインスタンスをロードしますか、それともそれを使用するすべてのアプリに同じインスタンスを使用しますか?

次に例を示します。ライブラリには、作成時に0に割り当てられる静的整数変数があります。Flexはその整数を3に変更しました。Javaコードがその変数を読み取った場合、Javaはどのような結果をもたらしますか。0または3?

4

1 に答える 1

1

つまり、技術的には、これらは2つの異なるアプリケーションです。

それらが2つの異なるアプリケーションである場合(たとえば、Playストアに2つの別々のエントリがある場合)、それらは別々のプロセスで実行されます。各アプリには、JNIコードのコピーがあります。各プロセスは、そのJNIコードの独自のコピーをロードします。2つのアプリケーションが別々のデバイスにインストールされている場合を除いて、それらの間で共有されることはありません。

于 2013-01-11T21:20:22.747 に答える