下载7zip源代码
编译Android可执行文件
解压源代码,进入 目录/CPP/ANDROID/7zr/jni
默认编译出armeabi架构,可以根据自己的需要在APPlication.mk中增加/修改,如编译armeabi-v7a和x86:
APP_ABI:=armeabi 改为 APP_ABI:armeabi-v7a x86
cmd命令行执行命令ndk-build(笔者用ndk21,ndk16都会报错,最后用ndk12可以正常编译),编译文件输出在CPP/ANDROID/7zr/libs
默认编译出来的是可执行文件,要在android上使用就需要编译静态库或者动态库
修改CPP/ANDROID/7zr/jni/Android.mk 最下面的代码
# Needed since ANDROID 5, these programs run on android-16 (Android 4.1+)
#PIE是给可执行程序使用的flag(Position-Independent Executable位置无关可执行程序)
#ndk读取mk文件编译动态库也不需要指定pic
#LOCAL_CFLAGS += -fPIE
#LOCAL_LDFLAGS += -fPIE -pie
#include $(BUILD_EXECUTABLE)#可执行文件
include $(BUILD_SHARED_LIBRARY)#动态库
#include $(BUILD_STATIC_LIBRARY)#静态库
与编译可执行文件一样操作ndk-build进行编译,可在libs下生成对应的so库。
1590246026696.png
在android项目中新建jniLibs文件夹,然后把生成的动态库放进来。
image-20200523185115600.png
在app的build.gradle中添加以下配置
android {<