已经一年多没冒泡了,这一年多的时间里,我依然坚持努力学习,包括学习PHP、Linux、JS之类的各种技术,还有文学、英语等等。前几天还做了一个自己的网站(http://www.yichenxing.com/),在上面发布的东西包罗万象,欢迎大家来踩踩哦。好了,下面是今天小弟为大家带来的文章:在Ubuntu下编译vlc for Android。
Vlc for android编译官方指南https://wiki.videolan.org/AndroidCompile,如果Google没有被墙的话,直接按照官网的方法来编译是非常简单方便的。但是现实并非如此,所以要想顺利编译,是需要些技巧的,本文旨在帮助广大网友在Ubuntu上编译vlc for android。编译步骤主要还是参考官网的标准流程,详细步骤如下:
1.下载安装 jdk1.8
Jdk1.8下载官方网址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
把下载好的文件解压到/usr/java目录下即可:
$ sudo tar -zxvf jdk-8u131-linux-x64.tar.gz
设置环境变量:
$ sudo gedit /etc/profile
在文档结尾追加:
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ANDROID_NDK:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
设置完成后执行:source /etc/profile 重新加载环境变量
如果你的系统里面安装了几个版本的jdk,你得把系统默认的jdk版本修改过来:
$ sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.8/jdk1.8.0_131/bin/java 300
$ sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8/jdk1.8.0_131/bin/javac 300
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
设置完成,检测一下有没有问题,在命令行输入:
$ java -version
如果命令行显示以下内容,则说明安装配置成功:
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-0ubuntu1.16.04.2-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
2.下载安装 android studio
下载完成后,解压:$ sudo unzip android-studio-ide-141.1890965-linux.zip
(解压后文件夹名为android-studio)
然后进入 android-studio/bin/ 目录,执行 sudo ./studio.sh 就可以打开 android studio 了。
3.下载安装 NDK
官方地址:https://developer.android.com/tools/sdk/ndk/index.html
android-ndk-r13b-linux-x86_64.bin
安装好后,配置NDK环境变量
root@ubuntu:~#sudo gedit /etc/profile
在该文件最后面添加(注意自己安装的目录,对应更改就行了)
export ANDROID_NDK=/root/Android/android-ndk-r13b
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools:$ANDROID_NDK
然后保存退出,执行 source 命令重新加载环境变量:
source /etc/profile
测试 NDK 编译
进入 NDK 安装目录下 samples/hello-jni,在该目录下执行 ndk-build,如果安装配置没问题,那么会打印出如下信息:
... ...
[armeabi] Install : libhello-jni.so => libs/armeabi/libhello-jni.so
[x86] Install : libhello-jni.so => libs/x86/libhello-jni.so
[mips] Install : libhello-jni.so => libs/mips/libhello-jni.so
4.安装一些编译时的依赖工具
sudo apt-get install autoconf automake ant autopoint cmake build-essential libtool m4 patch pkg-config protobuf-compiler ragel subversion unzip git
注意:
(1)如果你要给 Android-x86 设备编译 vlc,那你还要安装 yasm;
(2)对于 64 位系统:还要安装下面这些 32-bit 的 libraries,因为预编译过程需要它们
sudo dpkg --add-architecture i386sudo apt-get updatesudo apt-get install zlib1g:i386 libstdc++6:i386 libc6:i386
如果你是在老版本的 Ubuntu 上编译,还要安装 ia32-libs
sudo apt-get install ia32-libs
5.clone vlc 源码
https://wiki.videolan.org/AndroidCompile(clone 地址在这个网站找)
进入 android sdk 的根目录(注意是 sdk 的根目录,不是 sources 目录),执行以下命令下载 vlc 源码(注意这个地址可能会变,clone前记得到官网确认一下)
git clonehttps://code.videolan.org/videolan/vlc-android.git
这个下载过程可能会花较时间。等到下载完成后,进入 android 目录(下载完成后,会在 sdk 的根目录下生成一个 vlc-android 文件夹,下载下来的东西都在里面),执行编译命令 sh ./compile.sh 就可以开始整个编译过程了。编译成功后,会生成相应的
.so 文件及 apk 文件。
注意:compile.sh脚本在执行的时候会去下载gradle文件,因为墙的问题,可能会一直下载不了或者花很长时间,为了避免这个问题,可以打开compile.sh文件,找到这个文件的下载路径,自己把它下载下来,然后把下载好的gradle文件放到vlc-android目录下,修改编译脚本,跳过下载gradle的步骤就可以了。即把compile.sh脚本里下载gradle文件的那几行代码注释掉:
##########
# GRADLE #
##########
if [ ! -d "gradle/wrapper" ]; then
diagnostic "Downloading gradle"
GRADLE_VERSION=3.4.1
# GRADLE_URL=https://download.videolan.org/pub/contrib/gradle/gradle-{GRADLE_VERSION}-bin.zip
# wget ${GRADLE_URL} 2>/dev/null || curl -O ${GRADLE_URL}
# checkfail "gradle: download failed"
unzip -o gradle-${GRADLE_VERSION}-bin.zip
checkfail "gradle: unzip failed"
cd gradle-${GRADLE_VERSION}
./bin/gradle wrapper
checkfail "gradle: wrapper failed"
6.编译完成,导入工程
编译完成后,会在vlc-android目录下生成一个vlc-android项目,可以在studio中直接导入这个项目运行。
注意在编译vlc-android的时候,有些编译参数可选,可根据需要指定编译参数,执行 ./compile.sh --help就可以看到所有的编译参数及其作用
root@lion:~/Android/Sdk/vlc-android# ./compile.sh --help
Use -a to set the ARCH:
ARM: (armeabi-v7a|arm)
ARM64: (arm64-v8a|arm64)
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 -c to get a ChromeOS build
Use -l to build only LibVLC
7.LibVLC的使用
编译生成的vlc-android项目比较大,也比较复杂,想快速从这个项目中学会如何用LibVLC来实现一个简单的播放器是比较困难的。所以vlc官方还提供了一些非常简单易懂的demo,教我们如何利用LibVLC快速实现一个简单的播放器,链接如下:
https://code.videolan.org/videolan/libvlc-android-samples/tree/master
https://bitbucket.org/edwardcw/libvlc-android-sample