android 7zip,android使用NDK技术实现7Zip压缩

下载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库。

5b83ee2bdc81

1590246026696.png

在android项目中新建jniLibs文件夹,然后把生成的动态库放进来。

5b83ee2bdc81

image-20200523185115600.png

在app的build.gradle中添加以下配置

android {<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值