1. 编译环境:
系统:XP SP3
虚拟机:VMware-workstation-full-8.0.0-471780
Linux版本:ubuntu-12.10-desktop-i386
SDK:adt-bundle-linux-x86-20131030
NDK:android-ndk-r9c-linux-x86.tar
JDK:jdk-7u51-linux-i586.tar.gz
建议不要使用Ubuntu10系列的。换到Ubuntu12.04,但是编译期间会导致关机,后来又换到Ubuntu12.10版本。另外此版本的SDK是Google后来发布的集成了ADT、Eclipse的工具,不需要在Eclipse中额外的配置。
2. 必须的软件环境
具体的参考:官网编译说明
apache-ant (or ant), autoconf, automake, autopoint, cmake, gawk (or nawk), gcc, g++, libtool, m4, patch, pkg-config, ragel,subversion,git
执行
sudo apt-get install XXX
即可
3. 环境配置(JDK/NDK/SDK)
具体的环境配置,请参考我的上一篇博文:JDK/NDK/SDK的配置。
4. 其他环境变量的配置(CPU类型)
需要配置CPU类型,Android支持的CPU类型包含ARM和X86,所以编译前需要指定CPU类型。
X86系列的
export ANDROID_ABI=x86
ARM的Cortex-A8 or Cortex-A9系列
export ANDROID_ABI=armeabi-v7a
- ARMv6
export ANDROID_ABI=armeabi
- ARMv6 不带 FPU
export ANDROID_ABI=armeabi export NO_FPU=1
- ARMv5 或者 模拟器
export ANDROID_ABI=armeabi export NO_ARMV6=1
- MIPS 系列
export ANDROID_ABI=mips
此处我的配置是
export ANDROID_ABI=armeabi-v7a
5. 获取VLC源码
git clone git://git.videolan.org/vlc-ports/android.git
得到源码后放到'Android-dev/VLC'下的'vlc4android'下,此时的目录并不是包含VLC的源码,而只是它的一个目录结构而已。
在当前目录下执行:
sh compile.sh
此时会下载(1)约210M的源码,然后再下载一些(2)编译所需的包。所有的数据下载完成后,接着会自动编译生成apk和so文件。
需要说明的是,在此过程中⑵中可能由于网络的原因,可能会出现某些包下载不下来,此时有两种解决办法:
(1). 改变软件源。
(2). 在网上把相应的包下载下来放到'/home/amos/Android-dev/VLC/vlc4android/vlc/contrib/tarballs'目录下
成功后的截图如下
6. 遇到的问题
整个编译过程比较顺利,遇到了两个error:一个是Permission denied: 解决办法sudo chmod -R 777 路径。另外一个Unable to resolve project target 'android-17'
这是因为,使用的SDK的版本跟编译的版本不一致所致。解决办法就是,修改项目中project.properties和AndroidManifest.xml的版本。
7. 运行
将java-libs下的三个库工程连同vlc-android目录,导入到Eclipse中。结构如下:
运行的截图如下:
8. 下载
(1). libvlcjni
(2). compile.sh所需的额外的包
(3). vlc-debug.apk