欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

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

发布时间:2025/6/17 Android 60 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Android 安装包优化】WebP 应用 ( libwebp 源码下载 | Android.mk 和 Application.mk 构建脚本修改 | libwebp 函数库编译 ) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

  • 一、 libwebp 源码下载
  • 二、 libwebp 源码编译脚本修改
  • 三、 libwebp 函数库编译
  • 四、参考资料





一、 libwebp 源码下载



Google 提供了一系列的 WebP 相关工具和函数库 , 如 cwebp , dwebp , gif2webp , img2webp 等工具 , libwebp 函数库 ;

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

  • WebP 相关工具下载页 : https://developers.google.com/speed/webp/download

  • WebP工具和函数库使用文档 : https://developers.google.com/speed/webp/docs/using

下载 WebP 库源码 :





二、 libwebp 源码编译脚本修改



将该源码解压 , 该项目的源码可以使用多种方式编译 , 有 CMakeLists.txt , Android.mk , Makefile , configure 各种编译 C/C++ 代码的构建脚本 , 说明该项目提供了很多种构建方式 , 任选一种都可以编译出想要的结果 ;

这里选择使用 Android.mk 方式进行编译 ; 之前使用 Eclipse + ADT 开发 NDK 功能时使用 Android.mk 构建 C/C++ 程序 , 使用 Android Studio 之后 , 就开始使用 CMakeLists.txt 构建脚本了 ;

具体的编译方式可以参考 https://developers.google.com/speed/webp/docs/using 中的相关文档 ;

打开 Android.mk 构建脚本 , 该构建脚本需要进行配置 , 在第 222 换行添加如下配置 , 表示使用 NDK 进行编译时 , 生成 so 动态库 , 以方便在 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 , 编译出的动态库是 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 编译构建脚本参考文档 :

  • ndk-build 脚本 : https://developer.android.google.cn/ndk/guides/ndk-build
  • Android.mk 构建脚本 : https://developer.android.google.cn/ndk/guides/android_mk
  • Application.mk 构建脚本 : https://developer.android.google.cn/ndk/guides/application_mk

在源码根目录中 , 创建 Application.mk 配置文件 ,


编辑 Application.mk 构建脚本 ;

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

APP_ABI := armeabi-v7a arm64-v8a x86 指定编译的 CPU 架构 ;

APP_PLATFORM := android-14 指定编译的最小平台版本 ;


Android NDK 编译构建脚本参考文档 :

  • ndk-build 脚本 : https://developer.android.google.cn/ndk/guides/ndk-build
  • Android.mk 构建脚本 : https://developer.android.google.cn/ndk/guides/android_mk
  • Application.mk 构建脚本 : https://developer.android.google.cn/ndk/guides/application_mk




三、 libwebp 函数库编译



为了方便 ndk-build 编译 , 这里将源码根目录 libwebp-0.6.1 改名为 jni , 在 jni 的上一级目录执行

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

命令 , 其中 Y:\001_DevelopTools\002_Android_SDK\ndk\22.0.7026061\ 是 NDK 的绝对了路径 ;

执行过程 :

执行完成后 , 生成如下两个目录 : libs 和 obj ;





四、参考资料



参考文档 :

  • 创建 WebP 图片 : https://developer.android.google.cn/studio/write/convert-webp

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

  • isparta 工具官网 : http://isparta.github.io/

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

  • Google 提供的 WebP 工具 ( 国内不能访问 ) : https://developers.google.com/speed/webp/download

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

  • WebP 相关工具下载页 : https://developers.google.com/speed/webp/download

  • WebP工具和函数库使用文档 : https://developers.google.com/speed/webp/docs/using


Android NDK 编译构建脚本参考文档 :

  • ndk-build 脚本 : https://developer.android.google.cn/ndk/guides/ndk-build
  • Android.mk 构建脚本 : https://developer.android.google.cn/ndk/guides/android_mk
  • Application.mk 构建脚本 : 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 源码及编译相关资源 : https://download.csdn.net/download/han1202012/17826464 ( 源码 , 编译脚本 , 编译结果 so 库 )

博客源码 :

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

总结

以上是生活随笔为你收集整理的【Android 安装包优化】WebP 应用 ( libwebp 源码下载 | Android.mk 和 Application.mk 构建脚本修改 | libwebp 函数库编译 )的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。