1

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

4

1 回答 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 回答