1

この質問は、Java ユーザーにとってばかげているように聞こえるかもしれません。すみません、初心者です。

システムでの実行時にライブラリがどのようにロードされるのか疑問に思っていますAndroid

javax.net.sslパッケージにある関数のみを呼び出す非常にシンプルな Android アプリがあるとします。

jar (dex) を含むjavax.net.sslものは apk に挿入されます (それを静的ライブラリに変えます)? または、実行時にDalvik VM、Android マシンにインストールされている jar (または dex) ファイルにリンクしますか? それともDalvik VM、すべての javax インクルード自体を含むようにコンパイルされただけですか?

前もって感謝します

4

1 に答える 1

2

これらは、デバイスに保存されている追加の最適化された dex コードをロードすることにより、実行時に実際に動的にリンクされます。

実際には、多くのコンポーネントで、これはシステムの起動時に 1 回発生し、そこに含まれるプロセスと仮想マシンにより、各アプリケーションは既にメモリ内にある共有コピーへの読み取り専用アクセスを継承します。

ネイティブ ライブラリはほぼ同じように機能しますが、プロセス自体で、仮想マシンのレベルの下でリンクが発生するだけです。

于 2013-01-25T13:18:04.110 に答える