2013-02-14 95 views
4

我試圖將一些Linux代碼移植到Android。我意識到代碼會涉及多個jni引用.so共享庫,大小超過20 MB。Android最大共享庫大小

我想知道每個.so是否有最大大小?

另外,是否有我的應用程序可以具有的.so文件的總最大大小,因爲.so文件實際上是內存映射?

我用Google搜索,發現這個幾乎沒有,所以描述這個資源是非常有幫助的

回答

5

據我所知,在.so文件的大小沒有限制。我見過幾個使用20MB以上共享庫的Android應用程序。

但是,在Android中,您的進程中加載​​的.so文件的數量有限制。限制通常設置爲128.請參閱http://androidxref.com/4.2_r1/xref/bionic/linker/linker.cpp#286

確切的數字可能會因設備製造商的不同而不同,因爲它們經常會改變常數。你可能認爲這個數字相當大,但請注意,即使你沒有加載任何你自己的共享庫,你的進程中也會加載許多內置的共享庫。

我不能告訴你,20個共享庫將會或不會超過限制。它依賴於設備。如果您擔心,可以將這20個庫合併成一個巨大的庫文件。

+0

這個鏈接很大程度上回答了我的問題,儘管我更關心.so而不是他們的數量的大小。謝謝Jiyong。 – 2013-02-14 17:53:11