(一)VideoLAN 介绍:
VideoLAN 是一个开发播放器软件和多种多媒体格式流的非营利基金会组织,其最具有影响力的一个产品就是VLC媒体播放器。
VideoLAN 官方wiki网址:://wiki.videolan.org/AndroidCompile#Get_VLC_Source
(二)编译环境搭建:
(1)建立64-bit Ubuntu 14.04环境
在window7操作系统下通过VMware Workstation(最好使用VMware Workstation10或更高版本)安装64-bit Ubuntu 14.04
选择自动安装即可,系统安装完之后会有一些基本的开发及管理工具如:gcc、 g++、 tar、unzip等,开发过程中缺少工具或者版本太旧等软件版本问题后续可以手动安装解决。
(2)JDK、Android SDK、Android NDK、安装
1)JDK安装
Linux x64 JDK版本下载地址:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260-zhs.html
我这里下载的是JDK7(建议下载JDK6以上版本)jdk-7u75-linux-x64.gz,在/opt/下创建Java路径,
$sudo mkdir /opt/Java
将jdk-7u75-linux-x64.gz拷贝到Java文件夹下之后解压缩即可。
修改用户环境变量:
$ vim ~/.bashrc
在.bashrc最后面添加如下:
export JAVA_HOME=/opt/Java/jdk1.7.0_75
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:/lib.dt.jar:${JRE_HOME}/lib
$sudo update-alternatives --install /usr/bin/java java /opt/Java/jdk1.7.0_75/bin/java 10
$sudo update-alternatives --install /usr/bin/javac javac /opt/Java/jdk1.7.0_75/bin/javac 10
$sudo update-alternatives --install /usr/bin/jar jar /opt/Java/jdk1.7.0_75/bin/jar 10
$sudo update-alternatives --config java
$sudo update-alternatives --config javac
$sudo update-alternatives --config jar
2)安装Android SDK
SDK tools下载地址:http://developer.android.com/sdk/index.html#Other
在google 官网下载最新的 SDK tools 之后解压缩,我这里解压缩到如下路径:
hbing@ubuntu:~/work/android/tools/android-sdk-linux$ ls
add-ons platforms SDK Readme.txt tools
新下载的SDK 除了tools文件夹之外的所有路径都是空的。
为了能够使用sdk的各个platform的platform-tool工具以及android各个版本对应的platforms还有google的support 库我们要在线安装这些工具
hbing@ubuntu:~/work/android/tools/android-sdk-linux$ ./tools/android update sdk -u -t platform,platform-toosl,extra
由于众所周知的原因我们在线安装成功的概率几乎为零。
解决办法:离线安装android5.0.1(API21)
注:是否需要更高的版本只要查看VLC的源码工程的的build.gradle文件即可,如果此文件中描述的版本较高可以修改此脚本跟编译脚本降低对API的要求,后续编译VLC源码时在说明此问题。
列出SDK中需要的各个工具以及库的下载地址:
(1)Android SDK 主要安装包:sdk tools(如果之前步骤已经可以在官网下载到此处就可以不用在重复下载)
我这里选择下载revision 24.0.2也可以选择下载当前的最新版本
http://dl.google.com/android/android-sdk_r24.0.2-linux.tgz
hbing@ubuntu:~/work/android/tools$tar -xvf android-sdk_r24.0.2-linux.tar
hbing@ubuntu:~/work/android/tools$ ls android-sdk-linux/
add-ons platforms SDK Readme.txt tools
hbing@ubuntu:~/work/android/tools$
以android-sdk-linux/为主要文件夹下载platform-tools工具
下载地址:https://dl-ssl.google.com/android/repository/platform-tools_r22-linux.zip (选择你当前能下载的的最高版本即可不能低于VLC的最低编译要求,否则要修改VLC编译脚本)
解压缩到 android-sdk-linux文件夹的根目录下。
同理下载:build-tools 、platforms 、extras
build-tools:https://dl-ssl.google.com/android/repository/build-tools_r22-linux.zip
platforms :https://dl-ssl.google.com/android/repository/android-22_r01.zip
extras :
1)Android Support Repository(extras/android/m2repository)
https://dl-ssl.google.com/android/repository/android_m2repository_r12.zip
2)Android Support Library(extras/android/support)
https://dl-ssl.google.com/android/repository/support_r21.0.3.zip
3)Google Repository(extras/google/m2repository)
https://dl-ssl.google.com/android/repository/google_m2repository_r16.zip
大约需要这些就可以满足编译vlc-android源码的要求。
修改用户环境变量:
$ vim ~/.bashrc
在文件末尾添加
export ANDROID_SDK=/home/hbing/work/android/tools/adt-bundle-linux-x86_64/sdk
3)安装Android NDK
NDK下载地址:http://developer.android.com/tools/sdk/ndk/index.html
在google 官网下载最新版本
Linux 64-bit (x86) | android-ndk-r10d-linux-x86_64.bin |
ndk$ chmod a+x android-ndk-r10d-linux-x86_64.bin ndk$ ./android-ndk-r10d-linux-x86_64.bin
hbing@ubuntu:~/work/android/tools/android-ndk-r10d$ ls
build GNUmakefile ndk-depends ndk-gdb.py ndk-which README.TXT samples toolchains
docs ndk-build ndk-gdb ndk-gdb-py.cmd platforms RELEASE.TXT sources
find-win-host.cmd ndk-build.cmd ndk-gdb-py ndk-stack prebuilt remove-windows-symlink.sh tests
hbing@ubuntu:~/work/android/tools/android-ndk-r10d$
修改用户环境变量:
$ vim ~/.bashrc
在文件末尾添加
export ANDROID_NDK=/home/hbing/work/android/tools/android-ndk-r10dexport PATH=$PATH:${ANDROID_NDK}:${JAVA_HOME}/bin:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools
4)验证软件安装情况:
由于是X86_64平台所以此时的adb等工具不能使用,需要安装以下工具
安装必要的软件包: ( 64-bit Ubuntu 14.04)
$ sudo apt-get install bison g++-multilib git gperf libxml2-utils make zlib1g-dev:i386 zip
然后执行
$ sudo source ~/.bashrc
进行测试:
$ java -version
java version "1.7.0_75"
OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~trusty1)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
$ ndk-build --help
Usage: make [options] [target] ...
Options:
……
$adb --help
Android Debug Bridge version 1.0.32
……
编译环境搭建完成。
(三)编译vlc-android源码
(1) 安装编译工具
apache-ant (or ant), autoconf, automake, autopoint, cmake, gawk (or nawk), gcc, g++, libtool, m4, patch, pkg-config, protobuf, ragel, subversion, unzip
注:安装上面所列工具,最好安装上述工具的最新版本,如果上述的软件版本过低在编译过程中会提示版本较低的工具不能被识别或者找不到等错误提示,此时只需要将这些版本过低的工具卸载掉安装最新版本即可。
(2)下载vlc源码
git clone git://git.videolan.org/vlc-ports/android.git
下载完源码之后的目录结构如下:
$ ls android/
android-headers assets compile-libvlc.sh COPYING java-libs NEWS vlc-android
android-libs build.gradle compile.sh gdb.sh libvlc settings.gradle
$
(2)编译(Compile)
sh compile.sh -a <ABI>
Use -a to set the ARCH:
ARM: armeabi-v7a, armeabi, armeabi-v5, armeabi-nofpu
ARM64: arm64-v8a
X86: x86, x86_64
MIPS: mips, mips64.
Use --release to build in release mode
Use -s to set your keystore file and -p for the password
Use -t to get an AndroidTv build
Use -c to get a ChromeOS build
hbing@ubuntu:~/work/android/project/vlc-android/android$
$sh compile.sh
$sh compile.sh -a x86_64
$sh compile.sh
编译过程中会下载N多个工具包跟第三方库,如果提示编译错误大多是由于下载这些库超时或者未能下载成功导致。AndroidManifest.xml assets build build.gradle proguard.cfg project.properties res src tv
hbing@ubuntu:~/work/android/project/vlc-android/android-arm/android$
VLC-Android-1.1.6-ARMv7.apk vlc-android-vanilla-ARMv7-debug-unaligned.apk
至此vlc-android源码编译基本完成!