为android创建一个静态c lib

时间:2016-07-10 21:31:04

标签: c++ android-ndk cmake static-libraries gradle-experimental

我有lib的源代码,我想为android创建静态库。 我怎样才能做到这一点?有没有办法用实验gradle做到这一点? 我也想建立不同的拱门(arm7,x86等)

1 个答案:

答案 0 :(得分:0)

为Android构建原生二进制文件的最简单方法是使用Application.mk工具。 Here是关于如何为项目设置构建的完整文档。

简而言之,您需要创建两个额外的文件:

# 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

然后你可以用下一个命令启动build:

Exec

P.S。无论Android Studio如何改进NDK支持,使用ndk-build和手写的makefile都可以为您的项目提供更大的灵活性。无论如何,您可以通过gradle&#39; for任务轻松嵌入基于ndk-build的构建。