2016-07-10 112 views
1

我有lib的源代碼,我想爲android創建靜態庫。 我該怎麼做?有沒有辦法做到這一點與實驗gradle ?. 另外我想爲不同的拱門(arm7,x86等)構建爲android創建靜態庫lib

+0

最新的Android Studio(2.2 preview 5)支持Android NDK(原生開發工具包),可以從這裏獲取:http://tools.android.com/。 –

+0

感謝@Richard的信息,但你能指定我應該如何構建庫? – Vardan95

+0

請注意,你不能直接使用你的Android應用程序的靜態庫。您將需要一個共享庫(或庫)來包裝這些庫,並加載這些共享庫。 –

回答

0

爲Android構建本機二進制文件的最簡單方法是使用ndk-build工具。 Here是關於如何爲您的項目設置構建的完整文檔。

簡言之,你需要創建兩個額外的文件:

Application.mk

# an example setup 
APP_ABI := armeabi-v7a x86 
APP_PLATFORM := android-16 
APP_STL := stlport_static 
NDK_TOOLCHAIN_VERSION := 4.8 

而且Android.mk

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 
LOCAL_MODULE := <lib_name> # put 'foo' to built libfoo.a 
LOCAL_LDLIBS := -llog -lm # whatever libs you need 
LOCAL_SRC_FILES := <source_files> 
include $(BUILD_STATIC_LIBRARY) 

就可以啓動建立與下一個命令:

$ ndk-build NDK_PROJECT_PATH=path/to/intermediate/results/dir NDK_LIBS_OUT=path/to/output/dir APP_BUILD_SCRIPT=path/to/Android.mk NDK_APPLICATION_MK=path/to/Application.mk 

P.S.無論Android Studio如何改進NDK支持,使用ndk-build和手寫makefile都可爲您的項目提供更多的靈活性。無論如何,您可以通過gradle的Exec任務輕鬆嵌入基於ndk-build的構建。

+0

感謝您的回答,但通過這種方式我會得到頭文件? 我想爲android構建dlib,它有超過1500個文件,並且我需要頭文件在我的C++代碼中使用。 – Vardan95