圖片壓縮—開發(fā)屬于自己的SDK(三)

前言:

前面在NDK項(xiàng)目里面已經(jīng)實(shí)現(xiàn)了圖片壓縮,但是別人在引用你的項(xiàng)目的時(shí)候,要復(fù)制libtrubojpeg.a、各種.h文件,并且還需要配置很多東西,是不是聚德很麻煩。所以說我自己萌生一個(gè)想法,平時(shí)接入那么多第三方的SDK,大多都是復(fù)制一些.so、jar包,然后簡單配置一下grade就可使用了,因?yàn)橹皼]開發(fā)過SDK,我在試想:我能不能開發(fā)SDK,提供.so庫和jar,直接在普通的工程里面配置好就能使用呢?答案是肯定的,接下來就說流程了。如果這種形式不是SDK,請?jiān)彛∥抑皇前凑瘴易约旱南敕M第三方SDK包進(jìn)行開發(fā)。

Step1、打jar包

在上一篇文章中,我們新建了一個(gè)compress的Module就是用來打出jar包的。
具體參考方式:http://www.lxweimin.com/p/e23ccaf4b41f

備注:
老版本Android Studio方式:

//刪除舊的jar包
 task deleteOldJar(type: Delete) {
    delete 'build/outputs/'
 }
 //導(dǎo)出新的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包區(qū)別參考:http://www.lxweimin.com/p/a2eddf5a9b88

Step2、打包so庫

上一篇文章的項(xiàng)目里面我們使用的是靜態(tài)庫,這個(gè)方便我們打包出來的libcompress.so 里面就包含libturbojpeg.a里面的內(nèi)容。
具體打包方式參考:http://www.lxweimin.com/p/b5375fb219d5

Step3、只欠東風(fēng)了

我在使用打包好的libcompress.so 發(fā)現(xiàn)Apk里面根本就沒有該動(dòng)態(tài)庫,原來是我應(yīng)用動(dòng)態(tài)庫方式錯(cuò)了。
應(yīng)用動(dòng)態(tài)庫方式一:


應(yīng)用.so庫-1.png

應(yīng)用動(dòng)態(tài)庫方式二:


引用.so庫-2.png

以上兩種方式就能把.so庫引入進(jìn)來使用了!
經(jīng)測試:沒毛病,不是NDK工程也能引入使用!
github:https://github.com/MrRightChen/JpegCompress

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容