一、為什么用webp格式
webp格式可以將圖片盡量小得壓縮,這個在移動應用中使用很廣,且技術較成熟。
二、編譯動態(tài)庫包
編譯的動態(tài)庫包的源碼參照GitHub地址請?zhí)砑渔溄用枋?/p>
我的環(huán)境
Android Studio3.0.1
gradle 3.3
jdk 1.8.0_101
ndk-build android-ndk-r10e-windows-x86_64
導入Android Studio,
注意Application.mk中的配置,APP_ABI配置是指需要生成哪些環(huán)境下的so包,我的環(huán)境起初添加了armeabi好像是有問題的,armeabi現在用的越來越少,我給去掉了。
Terminal中cd到jni路徑執(zhí)行命令如下:
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk
運行完成后會在jni目錄下自動生成libs文件夾,生成動態(tài)庫包如圖:
此時動態(tài)庫包就打好了,然后就是如何調用so包了,
在app目錄下加入so包,
在我們自己需要引用的工程中build.gradle中加入配置 android.sourceSets
sourceSets {
main {
jniLibs.srcDirs = ['libs']//設置目標的so存放路徑
}
}
然后加入WebPDecoder.java,這里注意這個文件的路徑一定要按照編譯時的路徑me.everything.webp.WebPDecoder。
當然如果需要也可以更改,不過要連編譯時webp.c中的路徑一并更改
三、使用動態(tài)庫包展示webp
最后就是調用了,bytes是webp格式的bytes數組形式
ImageView iv = findViewById( R.id.imageView );
Bitmap webpBitmap = WebPDecoder.getInstance().decodeWebP(bytes);
iv.setImageBitmap(webpBitmap);
另外有需要云服務器可以了解下創(chuàng)新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。