终于有时间写博客了,en~~~~
之前做电商项目,遇到项目中大量的图片质量处理问题,跳过官方的skia)直接利用libjpeg-turbo处理图片


先说下编译静态库与动态库后面有时间再写下如何利用libjpeg-turbo进行图片质量处理的专题

1.编译环境

os cmake ndk
macOS Mojave 10.14.2 3.10.2.4988404 android-ndk-r16b

2.编译脚本

按照官方的BUILDING.md中的编译脚本稍作修改命名为build.sh

#!/bin/bash#ndk所在目录NDK_PATH=/Users/hetao/Documents/android-ndk-r16b#编译环境这里是 macOSBUILD_PLATFORM=darwin-x86_64#编译工具链版本TOOLCHAIN_VERSION=4.9#最低兼容ANDROID_VERSION=14 #添加cmake环境变量 这里是android sdk中的export PATH="/Users/hetao/Documents/android-sdk-macosx/cmake/3.10.2.4988404/bin":"$PATH"#源码目录 这里是当前脚本所在目录MY_SOURCE_DIR=$(pwd)# 生成目标文件目录PREFIX=$(pwd)/android  # 目标平台HOST=arm-linux-androideabiSYSROOT=${NDK_PATH}/platforms/android-${ANDROID_VERSION}/arch-arm# armera-v7平台export CFLAGS="-march=armv7-a -mfloat-abi=softfp -fprefetch-loop-arrays \  -D__ANDROID_API__=${ANDROID_VERSION} --sysroot=${SYSROOT} \  -isystem ${NDK_PATH}/sysroot/usr/include \  -isystem ${NDK_PATH}/sysroot/usr/include/${HOST}"export LDFLAGS=-pieTOOLCHAIN=${NDK_PATH}/toolchains/${HOST}-${TOOLCHAIN_VERSION}/prebuilt/${BUILD_PLATFORM} cat <toolchain.cmakeset(CMAKE_SYSTEM_NAME Linux)set(CMAKE_SYSTEM_PROCESSOR arm)set(CMAKE_C_COMPILER ${TOOLCHAIN}/bin/${HOST}-gcc)set(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN}/${HOST})EOF cmake -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake \    -DCMAKE_POSITION_INDEPENDENT_CODE=1 \    -DCMAKE_INSTALL_PREFIX=${PREFIX} \    ${MY_SOURCE_DIR} make cleanmakemake install

这里只编译了ARMv7,有需要其他的平台的参考官方脚本修改下


默认编译出来的so库与.a静态库是带有版本号的,不想要可以去掉
1.在libjpeg-turbo-master/CMakeLists.txt 中注释相关

3. 编译

build.sh文件放在源码目录下,cd 到源码目录


如果不成功记得先删掉源码目录下的CMakeCache.txt文件,再执行脚本

这样就可以移植到 Androidstudio中进行下一步的JNI开发

更多相关文章

  1. android学习——NDK入门 windows下安装cygwin 与 Eclipse使用CDT
  2. Android(安卓)类代码防止反编译的办法
  3. android方法数超过64k和Gradle编译OOM解决方法
  4. Android(安卓)jni初探
  5. 总结:Android之Gradle总结
  6. webrtc服务器janus android客户端编译学习三
  7. 下载和编译Android源码问题集(持续更新)
  8. Gradle sync failed: Could not find method android() for argu
  9. 记录----编译libyuv、迁移至Android(安卓)studio的操作和遇到的

随机推荐

  1. Android(安卓)最火快速开发框架androidan
  2. 获取Android(安卓)SDK 源代码并在Eclipse
  3. websocket实现android消息推送
  4. Android(安卓)DownLoadManager的使用
  5. Android(安卓)屏幕旋转时Activity的变化
  6. android jni 程序框架搭建
  7. android中的数据库——学习
  8. drawable类型
  9. android之android:largeHeap说明
  10. android自带数据库之数据插入