1. 程式人生 > >android JNI 呼叫第三方動態庫

android JNI 呼叫第三方動態庫

http://lipeng88213.iteye.com/blog/1292543
動態庫和靜態庫 我覺得兩種不同 

1、動態庫是.so檔案,靜態庫是.a檔案 
2、動態庫的話 你需要第三方庫和你自己的so庫,靜態庫 只需要你自己的就行,已經包含到你的so庫裡面去了 

我不是學c的 所以 可能說的不對 大家見諒 


我在開發過程中發現 動態庫的呼叫有兩種方法 

libaaa.so是我的第三方so庫,libtest是我生成的so庫 

1、lib下面生成一個so 
Java程式碼  收藏程式碼
  1. #  
  2. LOCAL_PATH    := $(call my-dir)  
  3. #  
  4. LOCAL_MODULE    := libtest  
  5. LOCAL_SRC_FILES := com_lp_jni_Test.c  
  6. LOCAL_LDLIBS    += -L$(SYSROOT)/usr/lib -llog  
  7. LOCAL_LDLIBS    += -L$(LOCAL_PATH)  
  8. LOCAL_LDLIBS    += -laaa  
  9. include $(BUILD_SHARED_LIBRARY)  


這個會在lib下面生成一個so 就是你自己的so 但是 你用的時候 也需要把第三方so庫放到你的工程裡面 

2、lib下面生成兩個so 
Java程式碼  收藏程式碼
  1. #  
  2. LOCAL_PATH    := $(call my-dir)  
  3. #  
  4. include $(CLEAR_VARS)     
  5. LOCAL_MODULE    := libmmm    
  6. LOCAL_SRC_FILES := libaaa.so     
  7. include $(PREBUILT_SHARED_LIBRARY)    
  8. include $(CLEAR_VARS)  
  9. LOCAL_MODULE    := libtest  
  10. LOCAL_SRC_FILES := com_lp_jni_JMedia.c  
  11. LOCAL_LDLIBS    += -L$(SYSROOT)/usr/lib -llog  
  12. LOCAL_SHARED_LIBRARIES := libmmm  
  13. include $(BUILD_SHARED_LIBRARY)  


這個會在你的lib下面生成兩個so庫 一個是第三方so庫,一個是你自己的