如何编写Android.mk脚本?

时间:2015-05-27 07:37:33

标签: android android-ndk android.mk

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。

1 个答案:

答案 0 :(得分:1)

如果libso1.solibso2.solibmyso.so的依赖关系(例如,LOCAL_SHARED_LIBRARIES中通过Android.mk声明,则会在Android 5.0上自动加载 - 事实你需要以相反的顺序加载它们(首先加载依赖项,然后加载libmyso.so本身)只是旧Android版本中链接器的限制。

如果您只想拥有一个包含所有代码的.so个文件,请更改Android.mk libso1.solibso2.so代替BUILD_STATIC_LIBRARY BUILD_SHARED_LIBRARY的{​​{1}},并通过LOCAL_STATIC_LIBRARIES而不是LOCAL_SHARED_LIBRARIES引用它们。然后它们将被内置,并且您只有一个.so文件可以分发和加载。