为 android 创建一个静态 c lib

Creating a static c lib for android

本文关键字:一个 静态 lib android 创建      更新时间:2023-10-16

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

为 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

附言:尽管Android Studio改进了NDK支持,但恕我直言,使用ndk-build以及手写的makefile可以为您的项目提供更大的灵活性。无论如何,您可以通过 gradle 的Exec任务轻松嵌入基于 ndk-build 的构建。