不,本机代码不在 classes.dex 中。如果 android apk 文件有原生代码,那么在解压时,apk 本身应该有一个lib子目录,该子目录可能有依赖于体系结构的子目录 armeabi。armeabi-v7a. x86可能还有其他的,这些将包含本机代码对象。有时,共享对象也可能位于其他目录中,尤其是当它们属于应用程序链接到的某些库时。
例如,我解压缩了一个我知道具有本机代码的应用程序的 apk:
$ unzip -l net.skoobe.reader-1.apk
[ stuff omitted ]
2291 2016-03-14 10:27 NDK_LICENSES
18549 2016-03-14 10:27 assets/www/error.js
345568 2016-03-14 10:27 assets/armeabi/lib64libcrittercism-v3.so
308716 2016-03-14 10:27 assets/armeabi-v7a/lib64libcrittercism-v3.so
345696 2016-03-14 10:27 assets/arm64-v8a/lib64libcrittercism-v3.so
5088 2016-03-14 10:25 lib/armeabi/librsjni.so
2890256 2016-03-14 10:26 lib/armeabi/libskoobe.so
5088 2016-03-14 10:25 lib/armeabi/libRSSupport.so
2792064 2016-03-14 10:26 lib/armeabi-v7a/libskoobe.so
4555592 2016-03-14 10:26 lib/x86/libskoobe.so
18560 2015-03-26 19:09 lib/armeabi-v7a/librsjni.so
420320 2015-03-26 19:09 lib/armeabi-v7a/libRSSupport.so
26636 2015-03-26 19:09 lib/x86/librsjni.so
518512 2015-03-26 19:09 lib/x86/libRSSupport.so
159719 2016-03-14 10:27 META-INF/MANIFEST.MF
[ more stuff omitted ]