如何编写Android.mk脚本?

How to write the Android.mk script?

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。

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

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