日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

【Android 安装包优化】WebP 应用 ( 4.0 以下兼容 WebP | Android Studio 中使用 libwebp.so 库向下兼容版本 | libwebp 库测试可用性 )

發(fā)布時(shí)間:2025/6/17 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 安装包优化】WebP 应用 ( 4.0 以下兼容 WebP | Android Studio 中使用 libwebp.so 库向下兼容版本 | libwebp 库测试可用性 ) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、 Android Studio 中導(dǎo)入 libwebp.so 庫(kù)
  • 二、 Android Studio 中測(cè)試 libwebp.so 庫(kù)
  • 三、參考資料





一、 Android Studio 中導(dǎo)入 libwebp.so 庫(kù)



已經(jīng)做好了兼容 4.0 以下系統(tǒng)的的 Android 工程源碼 , 在下面博客資源中可以下載 ;

上一篇博客 【Android 安裝包優(yōu)化】WebP 應(yīng)用 ( libwebp 源碼下載 | Android.mk 和 Application.mk 構(gòu)建腳本修改 | libwebp 函數(shù)庫(kù)編譯 ) 最后編譯好的動(dòng)態(tài)庫(kù)在 libs 目錄下 ;

每個(gè) CPU 架構(gòu)目錄下都有如下幾個(gè)文件 :

導(dǎo)入三種 CPU 架構(gòu)的動(dòng)態(tài)庫(kù)到 Android Studio 中 , 在 Android Studio 中的 app/src/main/ 下創(chuàng)建 jniLibs 目錄 , 創(chuàng)建三個(gè)對(duì)應(yīng)架構(gòu)的目錄 , 拷貝對(duì)應(yīng)的 libwebp.so 動(dòng)態(tài)庫(kù)到對(duì)應(yīng)目錄中 ;

Google 為該 libwebp.so 提供了 Java 調(diào)用接口 , 將 libwebp-0.6.1\swig\libwebp.jar 拷貝到 app/libs 目錄中 ;

在 Android Studio 中 , 右鍵點(diǎn)擊 libs 下的 libwebp.jar , 在彈出的菜單中 , 選擇 " Add As Library … " ,

選擇要添加 Library 的 Module ,

在對(duì)應(yīng) Module 下的 build.gradle 構(gòu)建腳本中 , 就會(huì)添加對(duì)應(yīng)的 jar 依賴 ;


在 build.gradle 構(gòu)建腳本中 , 設(shè)置 APK 打包指令集 , 這里全設(shè)置 ;

android {defaultConfig {//配置 APK 打包 哪些動(dòng)態(tài)庫(kù)// 示例 : 如在工程中集成了第三方庫(kù) , 其提供了 arm, x86, mips 等指令集的動(dòng)態(tài)庫(kù)// 那么為了控制打包后的應(yīng)用大小, 可以選擇性打包一些庫(kù) , 此處就是進(jìn)行該配置ndk{// 打包生成的 APK 文件指揮包含 ARM 指令集的動(dòng)態(tài)庫(kù)abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"}} }

在使用 libwebp.so 的類中 , 需要手動(dòng)加載動(dòng)態(tài)庫(kù) ;

class MainActivity : AppCompatActivity() {companion object{val TAG = "MainActivity"init {System.loadLibrary("webp")}} }



二、 Android Studio 中測(cè)試 libwebp.so 庫(kù)



調(diào)用一下 libwebp 庫(kù)中的 WebPGetDecoderVersion() 函數(shù) , 查看是否能使用 ;

package kim.hsl.webpimport android.graphics.Bitmap import android.graphics.BitmapFactory import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import com.google.webp.libwebp import java.io.FileOutputStream import java.nio.ByteBufferclass MainActivity : AppCompatActivity() {companion object{val TAG = "MainActivity"init {System.loadLibrary("webp")}}override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)Log.e(TAG, "libwebp 函數(shù)庫(kù)版本 : ${libwebp.WebPGetDecoderVersion()}")// 測(cè)試 WebP 解碼速度decodeWebP()// 測(cè)試 WebP 編碼速度encodeWebP()}fun encodeWebP(){// 讀取一張本地圖片var bitmap = BitmapFactory.decodeResource(resources, R.mipmap.icon_png)var pngStart = System.currentTimeMillis()var fos = FileOutputStream("${cacheDir}/icon_png.png")bitmap.compress(Bitmap.CompressFormat.PNG, 75, fos)fos.close()Log.e(TAG, "編碼 png 格式圖片時(shí)間 : ${System.currentTimeMillis() - pngStart} ms , " +"輸出文件 : ${cacheDir}/icon_png.png")var webPStart = System.currentTimeMillis()fos = FileOutputStream("${cacheDir}/icon_webp.webp")bitmap.compress(Bitmap.CompressFormat.WEBP, 75, fos)fos.close()Log.e(TAG, "編碼 WebP 格式圖片時(shí)間 : ${System.currentTimeMillis() - webPStart} ms , " +"輸出文件 : ${cacheDir}/icon_webp.webp")}fun decodeWebP(){var pngStart = System.currentTimeMillis()BitmapFactory.decodeResource(resources, R.mipmap.icon_png)Log.e(TAG, "解碼 png 格式圖片時(shí)間 : ${System.currentTimeMillis() - pngStart} ")var webPStart = System.currentTimeMillis()BitmapFactory.decodeResource(resources, R.mipmap.icon_webp)Log.e(TAG, "解碼 WebP 格式圖片時(shí)間 : ${System.currentTimeMillis() - webPStart} ")} }

打印結(jié)果 :

2021-04-25 14:11:16.249 1545-1646/kim.hsl.webp E/libc: Access denied finding property "vendor.debug.egl.profiler" 2021-04-25 14:11:16.423 1545-1545/kim.hsl.webp E/MainActivity: libwebp 函數(shù)庫(kù)版本 : 1537 2021-04-25 14:11:16.703 1545-1545/kim.hsl.webp E/MainActivity: 解碼 png 格式圖片時(shí)間 : 280 2021-04-25 14:11:16.903 1545-1545/kim.hsl.webp E/MainActivity: 解碼 WebP 格式圖片時(shí)間 : 200 2021-04-25 14:11:19.584 1545-1545/kim.hsl.webp E/MainActivity: 編碼 png 格式圖片時(shí)間 : 2411 ms , 輸出文件 : /data/user/0/kim.hsl.webp/cache/icon_png.png 2021-04-25 14:11:22.659 1545-1545/kim.hsl.webp E/MainActivity: 編碼 WebP 格式圖片時(shí)間 : 3074 ms , 輸出文件 : /data/user/0/kim.hsl.webp/cache/icon_webp.webp

成功打印出 libwebp 的版本號(hào) , 153715371537 ;





三、參考資料



參考文檔 :

  • 創(chuàng)建 WebP 圖片 : https://developer.android.google.cn/studio/write/convert-webp

  • Android 中支持的媒體格式 : https://developer.android.google.cn/guide/topics/media/media-formats

  • isparta 工具官網(wǎng) : http://isparta.github.io/

  • isparta 工具 GitHub 地址 : https://github.com/iSparta/iSparta

  • Google 提供的 WebP 工具 ( 國(guó)內(nèi)不能訪問(wèn) ) : https://developers.google.com/speed/webp/download

  • Google WebP 主頁(yè) : https://developers.google.com/speed/webp

  • WebP 相關(guān)工具下載頁(yè) : https://developers.google.com/speed/webp/download

  • WebP工具和函數(shù)庫(kù)使用文檔 : https://developers.google.com/speed/webp/docs/using


Android NDK 編譯構(gòu)建腳本參考文檔 :

  • ndk-build 腳本 : https://developer.android.google.cn/ndk/guides/ndk-build
  • Android.mk 構(gòu)建腳本 : https://developer.android.google.cn/ndk/guides/android_mk
  • Application.mk 構(gòu)建腳本 : https://developer.android.google.cn/ndk/guides/application_mk

博客資源 :

  • iSparta 工具 : https://download.csdn.net/download/han1202012/17496041
  • Google libwebp 庫(kù) : https://download.csdn.net/download/han1202012/17498155
  • libwebp 源碼及編譯相關(guān)資源 : https://download.csdn.net/download/han1202012/17826464 ( 源碼 , 編譯腳本 , 編譯結(jié)果 so 庫(kù) )

博客源碼 :

  • GitHub 地址 : https://github.com/han1202012/Webp
  • CSDN 下載地址 : https://download.csdn.net/download/han1202012/18125733

總結(jié)

以上是生活随笔為你收集整理的【Android 安装包优化】WebP 应用 ( 4.0 以下兼容 WebP | Android Studio 中使用 libwebp.so 库向下兼容版本 | libwebp 库测试可用性 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97在线观看免费高清 | 丁香婷婷在线 | 久久av免费 | 无码精品国产一区二区三区免费 | 亚洲精品www. | 青草视频在线观看免费 | 在线观看视频一区二区三区 | 国产精品一区二区三区四 | 一区二区三区麻豆 | 91福利在线播放 | 播放男人添女人下边视频 | 亚洲一卡二卡三卡 | 日韩久久久精品 | 欧美性猛交xxx乱大交3蜜桃 | 黄色成年人视频 | 日本japanese极品少妇 | 午夜丁香婷婷 | 国产视频四区 | 国产精品男女视频 | 亚洲国产三级 | 久久午夜网站 | 日韩欧美一卡 | 欲求不满在线小早川怜子 | 深夜福利视频网站 | 亚洲视频在线观看一区 | 久久精品久久久 | 国产一区视频免费观看 | 公交顶臀绿裙妇女配视频 | 欧美性xxxxx极品娇小 | 久久中文字幕在线 | 日本高清视频在线播放 | 国产v在线 | 先锋影音av资源网 | 干一夜综合 | 人妻中文字幕一区二区三区 | 亚洲污网站 | 亚洲午夜福利一区二区三区 | 国产激情片 | 亚洲xxxx天美 | 日本精品视频 | 邻居交换做爰2 | 国产麻豆剧传媒精品国产 | 久久发布国产伦子伦精品 | 涩av| 国产成人精品女人久久久 | 浪浪视频在线观看 | 美女毛毛片 | 国产91免费观看 | 韩日视频在线观看 | 操操操网| 极品粉嫩小仙女高潮喷水久久 | 国产成人在线播放视频 | 久久久亚洲一区 | 樱桃香蕉视频 | 秋霞在线观看秋 | 午夜整容室 | 亚洲欧美日韩一区二区 | 99资源站 | www.白虎 | 欧美福利视频一区二区 | 亚洲石原莉奈一区二区在线观看 | 午夜影院在线观看免费 | 日本精品久久久 | 国产又黄又爽又色 | 香蕉视频毛片 | 中文字幕av免费在线观看 | 天堂av亚洲av国产av电影 | 日本少妇吞精囗交视频 | 免费在线观看日韩 | 国产精品丝袜视频无码一区69 | 国产精选av | 麻豆国产精品777777在线 | 欧美三级日本三级 | 视频在线91| 亚洲aaa | 免费成人在线电影 | 国产91免费观看 | 国产亚洲精品美女久久久 | 免费黄色小网站 | aⅴ天堂网 | 久草免费在线 | 葵司在线视频 | 九九视屏 | 欧美在线性| 日本a级在线 | www.人人草| 欧美日韩综合网 | 亚洲无码久久久久久久 | 深夜视频在线 | 18久久 | 国产69页| 一区二区在线播放视频 | 国产xx视频| 色91在线| 人妖被c到高潮欧美gay | 成人欧美在线 | 国产精品永久久久久久久久久 | 懂色中文一区二区在线播放 | 日韩欧美成人一区 |