我知道x86和armeabi-v7a之间本机库的区别。
但是,我在x86和armeabi-v7a文件夹中找到了一个包含不同jar库的应用程序。据我所知,Java程序是跨平台或平台独立的。 那么不同的罐子会有什么意义呢?
答案 0 :(得分:2)
库可能以某种方式使用Renderscript或与Android NDK的接口。一旦你离开Java世界并深入研究C / C ++世界,你的代码可以在使用预编译代码时变得依赖于平台。
使用NDK时,您必须在构建时为不同的体系结构编译单独的代码版本,Android将根据系统的体系结构选择正确的代码。因此每个jar文件很可能包含预编译的代码,如CommonsWare所提到的。
修改强>
预编译代码的一些示例:
所有这些预编译的代码片段都针对不同的体系结构编译成二进制文件,这样它们就可以在不必先被解释的情况下运行。它们通常是从C / C ++代码访问的,这些代码尚未预先编译但存在于包含预编译代码的应用程序中。它允许密钥功能在这些二进制文件中独立存在。