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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 安装包优化】WebP 应用 ( libwebp 源码下载 | Android.mk 和 Application.mk 构建脚本修改 | libwebp 函数库编译 )

發(fā)布時間:2025/6/17 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 安装包优化】WebP 应用 ( libwebp 源码下载 | Android.mk 和 Application.mk 构建脚本修改 | libwebp 函数库编译 ) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 一、 libwebp 源碼下載
  • 二、 libwebp 源碼編譯腳本修改
  • 三、 libwebp 函數(shù)庫編譯
  • 四、參考資料





一、 libwebp 源碼下載



Google 提供了一系列的 WebP 相關(guān)工具和函數(shù)庫 , 如 cwebp , dwebp , gif2webp , img2webp 等工具 , libwebp 函數(shù)庫 ;

  • Google WebP 主頁 : https://developers.google.com/speed/webp

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

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

下載 WebP 庫源碼 :





二、 libwebp 源碼編譯腳本修改



將該源碼解壓 , 該項目的源碼可以使用多種方式編譯 , 有 CMakeLists.txt , Android.mk , Makefile , configure 各種編譯 C/C++ 代碼的構(gòu)建腳本 , 說明該項目提供了很多種構(gòu)建方式 , 任選一種都可以編譯出想要的結(jié)果 ;

這里選擇使用 Android.mk 方式進行編譯 ; 之前使用 Eclipse + ADT 開發(fā) NDK 功能時使用 Android.mk 構(gòu)建 C/C++ 程序 , 使用 Android Studio 之后 , 就開始使用 CMakeLists.txt 構(gòu)建腳本了 ;

具體的編譯方式可以參考 https://developers.google.com/speed/webp/docs/using 中的相關(guān)文檔 ;

打開 Android.mk 構(gòu)建腳本 , 該構(gòu)建腳本需要進行配置 , 在第 222 換行添加如下配置 , 表示使用 NDK 進行編譯時 , 生成 so 動態(tài)庫 , 以方便在 Android 中使用 ;

ENABLE_SHARED := 1

定位到 # libwebp 所在行 ,

################################################################################ # libwebpinclude $(CLEAR_VARS)LOCAL_SRC_FILES := \$(dsp_enc_srcs) \$(enc_srcs) \$(utils_enc_srcs) \LOCAL_CFLAGS := $(WEBP_CFLAGS) LOCAL_C_INCLUDES += $(LOCAL_PATH)/src# prefer arm over thumb mode for performance gains LOCAL_ARM_MODE := armLOCAL_WHOLE_STATIC_LIBRARIES := webpdecoder_staticLOCAL_MODULE := webpifeq ($(ENABLE_SHARED),1)include $(BUILD_SHARED_LIBRARY) elseinclude $(BUILD_STATIC_LIBRARY) endif################################################################################

LOCAL_MODULE := webp 表示編譯的該模塊是 webp 模塊 , 模塊名稱是 webp , 編譯出的動態(tài)庫是 libwebp.so ;

LOCAL_SRC_FILES 指定的是編譯的源文件 , 在該處多附加一個源文件 , " swig/libwebp_java_wrap.c " ;

LOCAL_SRC_FILES := \$(dsp_enc_srcs) \$(enc_srcs) \$(utils_enc_srcs) \swig/libwebp_java_wrap.c \

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

在源碼根目錄中 , 創(chuàng)建 Application.mk 配置文件 ,


編輯 Application.mk 構(gòu)建腳本 ;

APP_ABI := armeabi-v7a arm64-v8a x86 APP_PLATFORM := android-14

APP_ABI := armeabi-v7a arm64-v8a x86 指定編譯的 CPU 架構(gòu) ;

APP_PLATFORM := android-14 指定編譯的最小平臺版本 ;


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




三、 libwebp 函數(shù)庫編譯



為了方便 ndk-build 編譯 , 這里將源碼根目錄 libwebp-0.6.1 改名為 jni , 在 jni 的上一級目錄執(zhí)行

Y:\001_DevelopTools\002_Android_SDK\ndk\22.0.7026061\ndk-build.cmd

命令 , 其中 Y:\001_DevelopTools\002_Android_SDK\ndk\22.0.7026061\ 是 NDK 的絕對了路徑 ;

執(zhí)行過程 :

執(zhí)行完成后 , 生成如下兩個目錄 : libs 和 obj ;





四、參考資料



參考文檔 :

  • 創(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 工具 ( 國內(nèi)不能訪問 ) : https://developers.google.com/speed/webp/download

  • Google WebP 主頁 : https://developers.google.com/speed/webp

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

  • WebP工具和函數(shù)庫使用文檔 : 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 庫 : https://download.csdn.net/download/han1202012/17498155
  • libwebp 源碼及編譯相關(guān)資源 : https://download.csdn.net/download/han1202012/17826464 ( 源碼 , 編譯腳本 , 編譯結(jié)果 so 庫 )

博客源碼 :

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

總結(jié)

以上是生活随笔為你收集整理的【Android 安装包优化】WebP 应用 ( libwebp 源码下载 | Android.mk 和 Application.mk 构建脚本修改 | libwebp 函数库编译 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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