Let's say we have 64-bit hardware with a 64-bit Linux kernel and 64-bit Android.
Thus, Zygote will work as a 64-bit process with its own DVM instance.
Now suppose there is a third-party application that contains a 32-bit source library that is loaded at runtime with a call system.loadlibrary.
I think that when we try to run this application, zygote will be able to start the process, and DVM will be able to interpret the classes.dex file, even if apk was created for a 32-bit machine. But the crash will happen when the application tries to load the 32-bit source library, since there will be all 64 bits on the bionic libc device and other libraries.
Is this understanding correct?
source
share