64 ビット Linux カーネルと 64 ビット Android を備えた 64 ビット ハードウェアがあるとします。
したがって、Zygote は、DVM の独自のインスタンスを使用して 64 ビット プロセスとして実行されます。
ここで、system.loadlibrary
call を使用して実行時にロードされる 32 ビット ネイティブ ライブラリを含むサード パーティ アプリケーションがあるとします。
このアプリケーションを実行しようとすると、apk が 32 ビット マシン用にビルドされていても、zygote はプロセスを開始でき、DVM は classes.dex ファイルを解釈できると思います。ただし、アプリケーションが 32 ビットのネイティブ ライブラリをロードしようとすると失敗します。これは、デバイスの bionic libc およびその他のライブラリがすべて 64 ビットになるためです。
この理解は正しいでしょうか?