VLC Android 编译流程记录

此文基于 VLC-Android 2.1.13

系统环境

1
2
3
系统:MacOS 10.12.5 (16F73)
虚拟机软件:VMware Fusion 专业版 8.0.0 (2985594)
Linux镜像:ubuntu-16.04.2-desktop-amd64.iso

官方编译文档:https://wiki.videolan.org/AndroidCompile/

操作流程:

  • 安装好VMtools
  • 更新系统库
1
2
sudo apt-get update
sudo apt-get upgrade
  • 安装编译VLC所需要的工具
1
2
sudo apt-get install automake ant autopoint cmake build-essential libtool \
patch pkg-config protobuf-compiler ragel subversion unzip git
  • 安装32位支持
1
2
3
4
5
6
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get dist-upgrade
#安装gcc multilab
apt-get install gcc-multilib g++-multilib
  • 升级gettext到最新版 v0.19.8.1
1
2
3
4
5
6
7
8
下载最新版 latest:http://ftp.gnu.org/gnu/gettext/
解压之后编译安装:
./configure
make
sudo make install
  • 升级protobuf到最新 v3.3.0
1
2
3
4
5
6
7
8
9
10
11
12
下载C++版: https://github.com/google/protobuf
确保编译工具已安装
$ sudo apt-get install autoconf automake libtool curl make g++ unzip
执行安装流程:
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.
  • 安装JDK
1
2
3
4
5
6
7
8
9
10
11
12
13
我使用的是32位jdk: jdk-8u131-linux-i586.tar.gz
解压之后设置环境变量:
sudo gedit ~/.bashrc
添加下文:
#set oracle jdk environment
export JAVA_HOME=/home/lzc/Android/jdk8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
刷新环境变量:
source ~/.bashrc
  • 安装Android SDK, NDK
1
2
3
4
5
6
7
8
9
10
11
12
13
14
先下载AndroidStudio,我用的:
android-studio-ide-162.4069837-linux.zip
运行AndroidStudio,然后更新最基本的SDK(level 26,)
下载 NDK r13b 即可,无需如文档说的 r14b:
https://developer.android.com/ndk/downloads/older_releases.html
之后配置环境变量:
#android sdk ndk
export ANDROID_SDK=/home/lzc/Android/Sdk
export ANDROID_NDK=/home/lzc/Android/android-ndk-r13b
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools
刷新环境变量:
source ~/.bashrc
  • 开始下载源码进行编译
1
2
3
4
5
6
7
8
9
git clone https://code.videolan.org/videolan/vlc-android.git
cd vlc-android
./compile.sh -a armeabi-v7a
编译过程中会下载大量依赖(主要是clone VLC项目),而且其中一些依赖访问需要翻墙。
第一次编译量非常大,会出现失败多次,重复运行编译sh即可。
编译成功之后,可以将整个目录导入AndroidStudio
X86架构的没有需求,暂时没有尝试。
分享到 评论