图片压缩—开发属于自己的SDK(三)

前言:

前面在NDK项目里面已经实现了图片压缩,但是别人在引用你的项目的时候,要复制libtrubojpeg.a、各种.h文件,并且还需要配置很多东西,是不是聚德很麻烦。所以说我自己萌生一个想法,平时接入那么多第三方的SDK,大多都是复制一些.so、jar包,然后简单配置一下grade就可使用了,因为之前没开发过SDK,我在试想:我能不能开发SDK,提供.so库和jar,直接在普通的工程里面配置好就能使用呢?答案是肯定的,接下来就说流程了。如果这种形式不是SDK,请原谅!我只是按照我自己的想法模拟第三方SDK包进行开发。

Step1、打jar包

在上一篇文章中,我们新建了一个compress的Module就是用来打出jar包的。
具体参考方式:https://www.jianshu.com/p/e23ccaf4b41f

备注:
老版本Android Studio方式:

//删除旧的jar包
 task deleteOldJar(type: Delete) {
    delete 'build/outputs/'
 }
 //导出新的jar包
 task exportJar(type: Copy) {
      from('build/intermediates/bundles/release/')
      into('build/outputs/')
      include('classes.jar')
      rename('classes.jar', 'CompressUtils.jar')
}
 exportJar.dependsOn(deleteOldJar, build)

新版本Android Studio方式

task clearJar(type: Delete) {
    delete 'build/outputs/'
}

task makeJar(type: Copy) {
    from('build/intermediates/packaged-classes/release/')
    into('build/outputs/')
    include('classes.jar')
    rename ('classes.jar', 'CompressUtils' + android.defaultConfig.versionName + '.jar');
}

makeJar.dependsOn(clearJar, build)

多啰嗦一句:jar与aar包区别参考:https://www.jianshu.com/p/a2eddf5a9b88

Step2、打包so库

上一篇文章的项目里面我们使用的是静态库,这个方便我们打包出来的libcompress.so 里面就包含libturbojpeg.a里面的内容。
具体打包方式参考:https://www.jianshu.com/p/b5375fb219d5

Step3、只欠东风了

我在使用打包好的libcompress.so 发现Apk里面根本就没有该动态库,原来是我应用动态库方式错了。
应用动态库方式一:


应用.so库-1.png

应用动态库方式二:


引用.so库-2.png

以上两种方式就能把.so库引入进来使用了!
经测试:没毛病,不是NDK工程也能引入使用!
github:https://github.com/MrRightChen/JpegCompress

你可能感兴趣的:(图片压缩—开发属于自己的SDK(三))