我有 lib 的源代码,我想为 android 创建静态库。我怎样才能做到这一点?有没有办法用实验 gradle 做到这一点?我还想为不同的拱门(arm7、x86 等)构建
问问题
908 次
1 回答
0
为 Android 构建原生二进制文件的最简单方法是使用ndk-build
工具。这是有关如何为您的项目设置构建的完整文档。
简而言之,您需要创建两个额外的文件:
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
PS 不管 Android Studio 改进了 NDK 支持,使用 ndk-build 和手写的 makefile 为您的项目恕我直言提供了更大的灵活性。Exec
无论如何,您可以通过 gradle 的任务轻松嵌入基于 ndk-build 的构建。
于 2016-07-11T07:18:07.513 回答