2015-05-27 84 views
1
jni/ 
    Android.mk  -> libmyso.so 
    folder1/ 
     Android.mk -> libso1.so 
    folder2/ 
     Android.mk -> libso2.so 

如何将libso1.so和libso2.so编译到libmyso.so中?因此,我只能在java代码中加载libmyso.so,并且不需要分别加载libso1.so和libso2.so。如何编写Android.mk脚本?

回答

1

如果libso1.solibso2.solibmyso.so(例如,通过在Android.mkLOCAL_SHARED_LIBRARIES宣布,他们将在Android 5.0自动加载的依赖关系 - 你需要加载它们以相反的顺序的事实(加载第一的依赖,那么libmyso.so本身)只有在旧的Android版本的链接器的限制。

如果你只是希望有一个单一的.so文件,该文件包含了所有的代码,改变Android.mklibso1.solibso2.soBUILD_STATIC_LIBRARY而不是BUILD_SHARED_LIBRARY,并指他们通过LOCAL_STATIC_LIBRARIES而不是LOCAL_SHARED_LIBRARIES。然后它们将被内置,并且您只有一个.so文件可以分发和加载。

+0

第二种方式,这就是我正在做的。谢谢。 –