Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中如何集成第三方庫

Android中如何集成第三方庫

編輯:關於Android編程

Android中使用第三方庫可能有兩種:Java庫.jar和原生庫.so/.a,如果只是做上層APK開發,這兩種庫都可以通過Eclipse集成開發環境進行集成,如果是平台級開發,則都可通過源碼集成。本文整理這兩種集成方式使用步驟,以下假設程序myapp,集成Java庫位myjar.jar,原生庫libmyso.so/libmya.a。其中,so庫要盡量參照Android引用庫規范編寫,內部函數命名也要規范(盡管不規范也可能可以使用),.a庫為靜態聯編,一般面向C/C++引用使用,如果Java上層使用,一般需要通過動態庫(.so)轉接。

一、Eclipse集成

1、myjar.jar包集成

A.當前工程myapp下創建libs目錄

B.使用Eclipse導入myjar.jar包即可

2、libmyso.so集成

A.當前工程myapp下創建libs/armeabi目錄

B.把libmyso.so庫文件拷貝到libs/armeabi目錄下即可,因為libmyso.so庫為原生庫,一般做運行時加載的動態庫。

C.Java文件引用加載庫

最終生成的apk會自動把myjar.jar和libmyso.so文件打包進去。

二、源碼集成

源碼集成第三方庫也至少有兩種方式:C/C++鏈接方式和Android Prebuild方式,當然似乎前者無法集成myjar.jar包。C/C++方式

1、C/C++鏈接方式

靜態庫和動態庫一般放置在libs/armeabi目錄下,如果庫文件較多,也可以單獨另立目錄存放,只要對應修改庫文件路徑(搜索路徑即可)。

修改Android.mk文件,示例鏈接libmya.a靜態庫:

LOCAL_LDFLAGS := $(LOCAL_PATH)/libs/armeabi/libmya.a

2、Android Prebuild方式

1) myjar.jar包集成

A.在packages/app/myapp下創建libs目錄,這裡假設程序包放在packages/app下面。

B.把myjar.jar包拷貝到該目錄下

C.修改Android.mk文件,示例如下:

include $(CLEAR_VARS)
LOCAL_STATIC_JAVA_LIBRARIES := myjar
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=myjar:libs/myjar.jar
include $(BUILD_MULTI_PREBUILT)
 

其中,

LOCAL_STATIC_JAVA_LIBRARIES為引用jar庫的別名,可以隨便取名,一般就是用庫名稱就可以了。

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES為指定prebuilt java庫規則,格式為:別名:jar文件的完整路徑,這裡的別名就是LOCAL_STATIC_JAVA_LIBRARIES所取的名字。

源碼開發時,myapp.apk將會連同myjar.jar打包,一起放在out/target/product/<prjname>/system/app/目錄下;

2) libmyso.so集成

A.在packages/app/myapp下創建libs/armeabi目錄

B.把.so庫拷貝到libs/armeabi目錄下

C.修改Android.mk配置文件,添加如下:

include $(CLEAR_VARS)
LOCAL_STATIC_LIBRARIES := libmyso
LOCAL_PREBUILT_LIBS :=libmyso:libs/armeabi/libmyso.so
include $(BUILD_MULTI_PREBUILT)
 

其中,

LOCAL_PREBUILT_LIBS指定prebuilt so庫規則,格式:別名:so文件路徑。

源碼開發時,這個libmyso.so將會被放在out/target/product/<prjname>/system/lib/下,其中system/lib為加載動態庫時缺省搜索路徑。

此外,libmyso.so還可以集成到build/core/user_tags.mk中,不過一般不建議那麼做,我們應盡量減少修改系統級配置。

3) 源碼集成編譯

make prjname mm /packages/apps/myapp

以上指令是在MTK ANDROID平台上使用,其它平台可能不同。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved