Android最大共享库大小

Ank*_*wal 4 android memory-management shared-libraries

我正在尝试将一些Linux代码移植到Android.我意识到代码将涉及几个jni引用的.so共享库,其大小超过20 mb.

我想知道每个.so是否有最大尺寸?

此外,我的应用程序可以拥有.so文件的最大总大小,因为.so文件实际上是内存映射的吗?

我用Google搜索并发现几乎没有,所以描述这个的资源会非常有用

Jiy*_*ark 5

据我所知,.so文件的大小没有限制.我见过几个Android应用程序,其中使用了超过20MB的共享库.

但是,在Android中,您的进程中加载​​的.so文件数量有限制.限制通常设置为128.请参阅http://androidxref.com/4.2_r1/xref/bionic/linker/linker.cpp#286.

具体数量可能因设备制造商而异,因为它们通常会改变常数.您可能认为该数字非常大,但请注意,即使您没有加载自己的任何共享库,也会在您的进程中加载​​许多内置的共享库.

我不能告诉你,20个共享库将会或不会超过限制.它取决于设备.如果您担心,可以将这20个库合并为一个巨大的库文件.