2015-05-27 115 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

第二種方式,這就是我正在做的。謝謝。 –