Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Android 内存优化】libjpeg-turbo 函数库交叉编译 ( libjpeg-turbo 函数库下载 | libjpeg-turbo 编译文档 | 环境准备 | NASM 安装 )

【Android 内存优化】libjpeg-turbo 函数库交叉编译 ( libjpeg-turbo 函数库下载 | libjpeg-turbo 编译文档 | 环境准备 | NASM 安装 )

作者头像
韩曙亮
发布于 2023-03-27 13:52:44
发布于 2023-03-27 13:52:44
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

文章目录

一、 libjpeg-turbo 函数库下载与解压


在上一篇博客 【Android 内存优化】Android 原生 API 图片压缩原理 ( 哈夫曼编码开关 | 哈夫曼编码原理 | libjpeg-turbo 函数库 ) 对哈夫曼编码进行了介绍 , 如果需要在所有的 Android 手机上使用哈夫曼编码压缩图片, 那就需要使用 libjpeg-turbo 函数库 , 从 libjpeg-turbo/libjpeg-turbo GitHub 项目的 Release 发布版本页面 下载 Release 版本的源码 , 这里下载最新的 Source code (tar.gz) 源码 ;

拷贝源码到 Ubuntu : 源码下载完毕后 , 将源码 libjpeg-turbo-2.0.5.tar.gz 拷贝到 Ubuntu 虚拟机中 , 在 /root/ 目录下创建 picture_compress 目录 , 将源码拷贝到该目录下 ;

解压源码 : 执行 tar xvf libjpeg-turbo-2.0.5.tar.gz 命令 , 解压 libjpeg-turbo 函数库源码 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ tar xvf libjpeg-turbo-2.0.5.tar.gz

二、 libjpeg-turbo 编译文档


编译文档 :

查看 libjpeg-turbo 函数库的 ReadMe 信息 , 查找如何编译该函数库 ;

官方提示 , 让我们查看 BUILDING.md 文件 , 里面有详细的编译文档 ; ( 可以点击该链接 , 直接跳转查看该文件 )

三、 编译前环境准备


BUILDING.md 中提供了编译指导 , 在 Build Requirements 中说明了编译前应该准备好的环境 ;

编译前环境准备 :

① CMake 工具 : 安装 2.8.12 以上的 CMake 工具 ;

② 汇编工具 : 安装 NASM or YASM 工具 , 建议使用 2.10 版本以上的 NASM 工具 ;

④ GCC 编译器 : 4.1 以上的 GCC 工具 , 这里交叉编译使用 NDK 中的 GCC 工具即可 ;

⑤ JDK 工具 : 1.5 以上的 JDK , 用于生成 Java 调用库 , 此处只需要编译 C 语言部分即可 ;

四、 安装 NASM 汇编工具


1、 下载 NASM 汇编工具

下载 NASM 汇编工具 :

编译需要安装 NASM 或者 YASM , 这是汇编工具 ;

NASM 下载地址 : http://www.nasm.us/pub/nasm/releasebuilds

选择最新的发布版本 : 2.15 版本 , 昨天刚发布的 ;

https://www.nasm.us/pub/nasm/releasebuilds/2.15/ 页面下载 nasm-2.15.tar.gz 压缩包 ; 也可以直接点击 此处连接下载 ;

2、 拷贝解压 NASM 源码

拷贝文件 : 将该文件拷贝到 Ubuntu 系统中的 /root/picture_compress 目录中 ;

解压该文件 : 调用 tar xvf nasm-2.15.tar.gz 命令 , 解压该文件 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ tar xvf nasm-2.15.tar.gz

该目录中的文件情况 : 有 libjpeg-turbo-2.0.5 , libjpeg-turbo-2.0.5.tar.gz , nasm-2.15 , nasm-2.15.tar.gz 四个文件或目录 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@octopus:~/picture_compress# ls
libjpeg-turbo-2.0.5  libjpeg-turbo-2.0.5.tar.gz  nasm-2.15  nasm-2.15.tar.gz
root@octopus:~/picture_compress# 

3、 编译安装 nasm-2.15

编译 nasm-2.15 :

① 生成 Makefile 文件 : 进入 nasm-2.15 目录 , 执行 ./configure 命令 , 先生成 Makefile 文件 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ./configure

执行上述命令 , 最终会生成 Makefile 文件 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@octopus:~/picture_compress/nasm-2.15# ./configure 
checking for prefix by checking for nasm... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... gcc

// ... 省略一万行 

checking if gcc supports C99 external inlines... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating config/config.h
root@octopus:~/picture_compress/nasm-2.15# 

② 编译安装 : 在/root/picture_compress/nasm-2.15 目录下执行 make install 命令 , 编译安装 nasm-2.15 汇编工具 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ make install

编译完成后 , 该工具即可使用 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@octopus:~/picture_compress/nasm-2.15# make install
gcc -c  -g -O2 -fwrapv -U__STRICT_ANSI__ -fno-common -Werror=attributes -ffunction-sections -fdata-sections -fvisibility=hidden -Wall -W -pedantic -Wc90-c99-compat -Wno-long-long -Wno-shift-negative-value -Werror=implicit -Werror=missing-braces -Werror=return-type -Werror=trigraphs -Werror=pointer-arith -Werror=missing-prototypes -Werror=missing-declarations -Werror=comment -Werror=vla -DHAVE_CONFIG_H -I. -I. -I./include -I./include -I./x86 -I./x86 -I./asm -I./asm -I./disasm -I./disasm -I./output -I./output -o asm/nasm.o asm/nasm.c

// 省略 ...

I./output -I./output -Wl,--gc-sections -o ndisasm disasm/ndisasm.o libnasm.a 
/bin/mkdir -p /usr/local/bin
/usr/bin/install -c nasm /usr/local/bin/nasm
/usr/bin/install -c ndisasm /usr/local/bin/ndisasm
/bin/mkdir -p /usr/local/share/man/man1
/usr/bin/install -c -m 644 ./nasm.1 /usr/local/share/man/man1/nasm.1
/usr/bin/install -c -m 644 ./ndisasm.1 /usr/local/share/man/man1/ndisasm.1
root@octopus:~/picture_compress/nasm-2.15# 

下面的操作在老版本中才需要 , 新版本 , 不需要执行下面的操作 ; ( 非必要操作 , 仅做参考 )

安装 autoconf 工具 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo apt install autoconf

进入 /root/picture_compress/libjpeg-turbo-xxx 目录 , 执行 autoreconf -fiv 命令 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ autoreconf -fiv

五、 编译 Android 平台使用的 libjpeg-turbo 函数库参考 ( 官方提供 | 仅供参考 )


NDK 要求 : Android NDK , 必须使用 v13b 以上的版本 ;

下方的配置来源与 https://github.com/libjpeg-turbo/libjpeg-turbo/blame/master/BUILDING.md ;

下面的编译脚本仅做参考 , 实际编译时还是使用之前熟悉的 configure 配置生成 Makefile 文件 ; 这里仅参考其中的配置信息 ;

1、ARMv7 (32-bit)

交叉编译通用脚本 , 编译 ARMv7 (32-bit) CPU 架构函数库 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    # Set these variables to suit your needs
    NDK_PATH={full path to the NDK directory-- for example,
      /opt/android/android-ndk-r16b}
    TOOLCHAIN={"gcc" or "clang"-- "gcc" must be used with NDK r16b and earlier,
      and "clang" must be used with NDK r17c and later}
    ANDROID_VERSION={the minimum version of Android to support-- for example,
      "16", "19", etc.}

    cd {build_directory}
    cmake -G"Unix Makefiles" \
      -DANDROID_ABI=armeabi-v7a \
      -DANDROID_ARM_MODE=arm \
      -DANDROID_PLATFORM=android-${ANDROID_VERSION} \
      -DANDROID_TOOLCHAIN=${TOOLCHAIN} \
      -DCMAKE_ASM_FLAGS="--target=arm-linux-androideabi${ANDROID_VERSION}" \
      -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
      [additional CMake flags] {source_directory}
    make

2、ARMv8 (64-bit)

交叉编译通用脚本 , 编译 ARMv8 (64-bit) CPU 架构函数库 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    # Set these variables to suit your needs
    NDK_PATH={full path to the NDK directory-- for example,
      /opt/android/android-ndk-r16b}
    TOOLCHAIN={"gcc" or "clang"-- "gcc" must be used with NDK r14b and earlier,
      and "clang" must be used with NDK r17c and later}
    ANDROID_VERSION={the minimum version of Android to support.  "21" or later
      is required for a 64-bit build.}

    cd {build_directory}
    cmake -G"Unix Makefiles" \
      -DANDROID_ABI=arm64-v8a \
      -DANDROID_ARM_MODE=arm \
      -DANDROID_PLATFORM=android-${ANDROID_VERSION} \
      -DANDROID_TOOLCHAIN=${TOOLCHAIN} \
      -DCMAKE_ASM_FLAGS="--target=aarch64-linux-android${ANDROID_VERSION}" \
      -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
      [additional CMake flags] {source_directory}
    make

3、x86 (32-bit)

交叉编译通用脚本 , 编译 x86 (32-bit) CPU 架构函数库 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    # Set these variables to suit your needs
    NDK_PATH={full path to the NDK directory-- for example,
      /opt/android/android-ndk-r16b}
    TOOLCHAIN={"gcc" or "clang"-- "gcc" must be used with NDK r14b and earlier,
      and "clang" must be used with NDK r17c and later}
    ANDROID_VERSION={The minimum version of Android to support-- for example,
      "16", "19", etc.}

    cd {build_directory}
    cmake -G"Unix Makefiles" \
      -DANDROID_ABI=x86 \
      -DANDROID_PLATFORM=android-${ANDROID_VERSION} \
      -DANDROID_TOOLCHAIN=${TOOLCHAIN} \
      -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
      [additional CMake flags] {source_directory}
    make

4、x86-64 (64-bit)

交叉编译通用脚本 , 编译 x86-64 (64-bit) CPU 架构函数库 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    # Set these variables to suit your needs
    NDK_PATH={full path to the NDK directory-- for example,
      /opt/android/android-ndk-r16b}
    TOOLCHAIN={"gcc" or "clang"-- "gcc" must be used with NDK r14b and earlier,
      and "clang" must be used with NDK r17c and later}
    ANDROID_VERSION={the minimum version of Android to support.  "21" or later
      is required for a 64-bit build.}

    cd {build_directory}
    cmake -G"Unix Makefiles" \
      -DANDROID_ABI=x86_64 \
      -DANDROID_PLATFORM=android-${ANDROID_VERSION} \
      -DANDROID_TOOLCHAIN=${TOOLCHAIN} \
      -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
      [additional CMake flags] {source_directory}
    make
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Android 内存优化】Android 原生 API 图片压缩原理 ( 哈夫曼编码开关 | 哈夫曼编码原理 | libjpeg-turbo 函数库 )
【Android 内存优化】图片文件压缩 ( Android 原生 API 提供的图片压缩功能能 | 图片质量压缩 | 图片尺寸压缩 ) 简要介绍了 图片文件压缩格式 , 以及 Android 提供的图片质量 , 尺寸压缩原生 API ;
韩曙亮
2023/03/27
8090
【Android 内存优化】Android 原生 API 图片压缩原理 ( 哈夫曼编码开关 | 哈夫曼编码原理 | libjpeg-turbo 函数库 )
图像库 libjpeg-turbo 编译与实践
在 libjpeg-turbo 的源码中就已经有了讲述如何编译的 BUILDING.md 文件,还是使用 CMake 进行编译,大体方法和参数设置都大同小异了。
音视频开发进阶
2019/07/24
3.4K0
【Android FFMPEG 开发】FFMPEG 交叉编译配置 ( 下载 | 配置脚本 | 输出路径 | 函数库配置 | 程序配置 | 组件配置 | 编码解码配置 | 交叉编译配置 | 最终脚本 )
① FFMPEG 源码下载地址 : http://ffmpeg.org/download.html#releases
韩曙亮
2023/03/27
1.7K0
【Android FFMPEG 开发】FFMPEG 交叉编译配置 ( 下载 | 配置脚本 | 输出路径 | 函数库配置 | 程序配置 | 组件配置 | 编码解码配置 | 交叉编译配置 | 最终脚本 )
【Android 内存优化】libjpeg-turbo 函数库交叉编译与使用 ( 交叉编译脚本编写 | 函数库头文件拷贝 | 构建脚本配置 | Android Studio 测试函数库 )
交叉编译脚本参考 : 之前已经做过两个函数库的交叉编译脚本 , FFMPEG 和 x264 开源库 , 而且都是使用 configure 生成 Makefile 文件 ;
韩曙亮
2023/03/27
1.8K0
【Android 内存优化】libjpeg-turbo 函数库交叉编译与使用 ( 交叉编译脚本编写 | 函数库头文件拷贝 | 构建脚本配置 | Android Studio 测试函数库 )
【Android RTMP】Android Studio 集成 x264 开源库 ( Ubuntu 交叉编译 | Android Studio 导入函数库 )
① H.264 标准 : H.264 是视频编码标准 , 由 ITU 和 MPEG 制订 ;
韩曙亮
2023/03/27
2.7K0
【Android RTMP】Android Studio 集成 x264 开源库 ( Ubuntu 交叉编译 | Android Studio 导入函数库 )
Assimp Android 编译
Assimp的全称是Open Asset Import Library,一个很流行的OpenGL 3D+4D 模型处理框架。提供C/C++的API,提供C#, Java, Python, Delphi, D等语言的封装调用。支持Android和iOS平台。本文详细介绍如何编译适用于Android平台的.so库,并记录过程中踩到的坑。 准备知识 将一个C++的工程编译成Android平台可用的.so库,需要用到一些额外的工具。在开始之前,最好先了解下相关的知识点。 make与makefile 我们在处理
wxdut.com
2018/06/19
2.6K0
【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( 初始化压缩对象 | 打开文件 | 设置压缩参数 | 写入压缩图像数据 | 完成压缩 | 释放资源 )
上一篇博客 【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( JNI 传递 Bitmap | 获取位图信息 | 获取图像数据 | 图像数据过滤 | 释放资源 ) 介绍了从 Java 层传入 Bitmap 对象到 JNI 层 , JNI 层获取到了图像对应的 RGB 像素数据 , 本篇博客中将获取的图像数据进行压缩 , 存储到 JPEG 格式图片中 ;
韩曙亮
2023/03/27
2.1K0
nmake(vs2015)命令行编译libjpeg-turbo(x86/amd64)
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/51732883
10km
2019/05/25
2.3K0
深入理解使用CMake编译 NDK 程序
Android Studio 2.2 及以后的版本默认使用CMake进行 NDK 编译, 其中最吸引人的地方是,在开发NDK程序时可以进行联机调试,这真是大在的方便了开发者开发NDK程序的效率了。 那么使用CMake编译NDK程序是否与我们之前介绍的使用ndk-build编译有很大的不同呢?下面我们就来一窥它的原理。
音视频_李超
2020/04/02
4K0
【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( JNI 传递 Bitmap | 获取位图信息 | 获取图像数据 | 图像数据过滤 | 释放资源 )
在上一篇博客 【Android 内存优化】libjpeg-turbo 函数库交叉编译与使用 ( 交叉编译脚本编写 | 函数库头文件拷贝 | 构建脚本配置 | Android Studio 测试函数库 ) 中 对 libjpeg-turbo 函数库进行了交叉编译 , 拷贝了相应的头文件和静态库到 Android Studio 项目中 , 并配置了 CMakeList.txt 构建脚本 , 和 build.gradle 构建脚本 , 本篇博客中开始进行代码编写 ;
韩曙亮
2023/03/27
1.2K0
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
​《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,前文又介绍了如何在Linux环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需x265的so库。
aqi00
2024/03/23
9720
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
【FFmpeg】编译不同平台的 FFmpeg 源码 ( 本地编译 与 交叉编译 | FFmpeg 指定目标平台的编译配置参数 | 配置目标 CPU 架构 | 配置目标操作系统 )
" 本地编译 " 指的是 在 目标系统 上进行编译的过程 , 生成的 可执行文件 和 函数库 只能在 目标系统 中使用 ;
韩曙亮
2024/05/24
1.6K0
Android NDK 报错:undefined reference to ‘main‘(invalid character)解决办法
后来盯着 CMakeList,看到这些编译、link 优化项,心想也没有可能是这些的配置导致的:
张拭心 shixinzhang
2020/10/29
3.5K0
Android NDK 报错:undefined reference to ‘main‘(invalid character)解决办法
【Android RTMP】音频数据采集编码 ( 音频数据采集编码 | AAC 高级音频编码 | FAAC 编码器 | Ubuntu 交叉编译 FAAC 编码器 )
① 视频数据回顾 : 手机使用 Camera 采集 NV21 格式的图像数据 , x264 编码库将图像数据编码成 H.264 格式的视频数据 ;
韩曙亮
2023/03/27
9120
【Android RTMP】音频数据采集编码  ( 音频数据采集编码 | AAC 高级音频编码 | FAAC 编码器 | Ubuntu 交叉编译 FAAC 编码器 )
【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)
博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293
韩曙亮
2023/03/27
5.1K0
【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)
【Android 安装包优化】使用 lib7zr.a 静态库处理压缩文件 ( 交叉编译 lib7zr.a 静态库 | 安卓工程导入静态库 | 配置 CMakeLists.txt 构建脚本 )
在之前的一系列博客中使用 lib7zr.so 动态库处理压缩文件 , 本篇博客中使用静态库处理压缩文件 , 仅做参考 ;
韩曙亮
2023/03/29
3.2K0
【Android 安装包优化】使用 lib7zr.a 静态库处理压缩文件 ( 交叉编译 lib7zr.a 静态库 | 安卓工程导入静态库 | 配置 CMakeLists.txt 构建脚本 )
用cmake交叉编译到iOS和Android
最近看了下最新版本的cmake的文档,很惊喜地发现他已经支持直接设置Android和OSX的一些变量了,然后有瞄了一眼NDK,发现里面现在也停工官方的cmake支持。
owent
2018/08/01
3.8K0
【错误记录】Android NDK 错误排查记录 ( error: undefined reference to | Linking CXX shared library FAILED )
CMakeList.txt 构建脚本如下 : 跟着该构建脚本 , 逐步向下排查 ;
韩曙亮
2023/03/27
2K0
【Android 安全】DEX 加密 ( 代理 Application 开发 | 交叉编译 OpenSSL 开源库 )
OpenSSL 是开源密码库 , 其中封装了常用的 密码算法 , 常用密钥 , 证书封装管理 , SSL 协议 ;
韩曙亮
2023/03/28
8450
【Android 安全】DEX 加密 ( 代理 Application 开发 | 交叉编译 OpenSSL 开源库 )
【Android NDK 开发】NDK 交叉编译 ( NDK 函数库目录 | Linux 交叉编译环境搭建 | 指定头文件目录 | 指定函数库目录 | 编译 Android 命令行可执行文件 )
1 . Android 版本目录 : platforms 中存储了各个 Android 版本编译时需要的动态库与静态库资源 , 如 android-29 中就是该版本对应的本地库资源 ;
韩曙亮
2023/03/27
5.7K0
【Android NDK 开发】NDK 交叉编译 ( NDK 函数库目录 | Linux 交叉编译环境搭建 | 指定头文件目录 | 指定函数库目录 | 编译 Android 命令行可执行文件 )
推荐阅读
【Android 内存优化】Android 原生 API 图片压缩原理 ( 哈夫曼编码开关 | 哈夫曼编码原理 | libjpeg-turbo 函数库 )
8090
图像库 libjpeg-turbo 编译与实践
3.4K0
【Android FFMPEG 开发】FFMPEG 交叉编译配置 ( 下载 | 配置脚本 | 输出路径 | 函数库配置 | 程序配置 | 组件配置 | 编码解码配置 | 交叉编译配置 | 最终脚本 )
1.7K0
【Android 内存优化】libjpeg-turbo 函数库交叉编译与使用 ( 交叉编译脚本编写 | 函数库头文件拷贝 | 构建脚本配置 | Android Studio 测试函数库 )
1.8K0
【Android RTMP】Android Studio 集成 x264 开源库 ( Ubuntu 交叉编译 | Android Studio 导入函数库 )
2.7K0
Assimp Android 编译
2.6K0
【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( 初始化压缩对象 | 打开文件 | 设置压缩参数 | 写入压缩图像数据 | 完成压缩 | 释放资源 )
2.1K0
nmake(vs2015)命令行编译libjpeg-turbo(x86/amd64)
2.3K0
深入理解使用CMake编译 NDK 程序
4K0
【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( JNI 传递 Bitmap | 获取位图信息 | 获取图像数据 | 图像数据过滤 | 释放资源 )
1.2K0
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
9720
【FFmpeg】编译不同平台的 FFmpeg 源码 ( 本地编译 与 交叉编译 | FFmpeg 指定目标平台的编译配置参数 | 配置目标 CPU 架构 | 配置目标操作系统 )
1.6K0
Android NDK 报错:undefined reference to ‘main‘(invalid character)解决办法
3.5K0
【Android RTMP】音频数据采集编码 ( 音频数据采集编码 | AAC 高级音频编码 | FAAC 编码器 | Ubuntu 交叉编译 FAAC 编码器 )
9120
【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)
5.1K0
【Android 安装包优化】使用 lib7zr.a 静态库处理压缩文件 ( 交叉编译 lib7zr.a 静态库 | 安卓工程导入静态库 | 配置 CMakeLists.txt 构建脚本 )
3.2K0
用cmake交叉编译到iOS和Android
3.8K0
【错误记录】Android NDK 错误排查记录 ( error: undefined reference to | Linking CXX shared library FAILED )
2K0
【Android 安全】DEX 加密 ( 代理 Application 开发 | 交叉编译 OpenSSL 开源库 )
8450
【Android NDK 开发】NDK 交叉编译 ( NDK 函数库目录 | Linux 交叉编译环境搭建 | 指定头文件目录 | 指定函数库目录 | 编译 Android 命令行可执行文件 )
5.7K0
相关推荐
【Android 内存优化】Android 原生 API 图片压缩原理 ( 哈夫曼编码开关 | 哈夫曼编码原理 | libjpeg-turbo 函数库 )
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验