歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Linux下編譯VLC for Android源代碼總結

Linux下編譯VLC for Android源代碼總結

日期:2017/3/1 9:47:21   编辑:Linux編程

由於項目需要,需要一個在Android平台能夠支持RTSP協議的播放器,由於之前沒有android平台的經驗,所以找了著名的video LAN的VLC播放器,更令人驚奇的是這款播放器居然還是完全開源的。在此向那些開源軟件的作者和組織致以崇高的敬意,是你們的存在使得計算機軟件產業蓬勃發展,你們幫助了很多囊中羞澀的個人和企業,讓他們也有機會用上高質量的軟件,同時不可避免的吸引了一批有志之士加入到你們的行業。

既然有現成的代碼,所以就想編譯一下vlc for android的代碼,經過幾天的折騰,終於編譯成功,並在android平台上成功運行,期間查了很多資料,也遇到很到問題,在這裡做個總結,也真心希望會給大家一些幫助,如果大家有這方面的問題,歡迎給我留言,只要能力所及,有時間一定會給出答案,一起學習。

這幾天一直在做vlc ndroid源代碼編譯和移植的工作,首先說一下編譯android源碼需要注意的幾個問題:

1. Linux平台,我用的是Ubuntu 12.04, 編譯vlc for android源代碼時最好是在最新的平台上,我之前在ubuntu10.04上編譯過,遇到過很多問題,其中的大部分問題都是軟件版本過低,不滿足要求,最後干脆換到12.04,之前的很多問題就不會再現了。

2. 最好切換到root用戶來編譯,否則中間會出現很多permission denied類似的問題,就是沒有權限執行一些腳本和創建一些文件

3. 編譯時不可避免的遇到一些問題,甚至出錯而導致編譯終止,此時一定要查看打印出來的提示或者系統log,大多數問題都是很容易解決的,切忌心浮氣躁。

好了,下面說一下我具體的編譯步驟,網上很多網友也提到了,大體就是那些步驟,可能那些步驟都是針對之前的vlc for android版本的,略微會存在一些差別。
在64位系統下要注意安裝32位系統的庫文件,我發現我下載64位sdk文件裡面的adb還是32位的,所以需要安裝32位的庫,否則64位的ubuntu是不能與運行32位程序的。

一: 安裝android SDK, NDK, JDK三個工具,SDK是android系統用的,有些SDK還包含了eclipse,

NDK是用來編譯C/C++代碼的,這樣使得android應用程序可能通過java來調用c/c++程序、JDK不用說,是java運行必須的環境。

JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html

SDK: http://developer.android.com/sdk/index.html

NDK: http://developer.android.com/tools/sdk/ndk/index.html

下載最新的版本,並解壓到你的工作目錄下。

二: 根據第一步解壓的三個工具,配置這三個工具的環境變量(PATH),方法很多,可以修改~/.bashrc /etc/profile等等,這一步一定要正確,否則系統會找不到這三個工具,後面的編譯會用到這幾個工具,當然也就會出錯了,因為系統默認不知道這幾個程序的位置,這跟windows下的環境變量一個道理。為了驗證環境變量是否配置正確,可以到別的目錄下運行這幾個程序,比如到根目錄下看能否運行ndk-build adb等程序,或者echo $PATH打印一下當前的環境變量並驗證。這一步很簡單,貌似說的廢話有點多。下面是我添加的環境變量,需要根據個人情況加以修改,XXXX代表以上三個程序的解壓目錄。

export PATH=XXXX /sdk/platform-tools:XXXX/android-ndk-r8e:$PATH

export JAVA_HOME=XXXX/jdk1.7.0_21

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH


三:下載vlc依賴的庫文件和一些要用到的工具

Sudo apt-get install git-core

Sudo apt-get install ant

Sudo apt-get install libtool

Sudo apt-get install cmake

Sudo apt-get install autopoint

四:設置編譯時候要用到的變量,生成的Makefile會用到這些變量

export ANDROID_SDK=XXXX/sdk

export ANDROID_NDK=XXXX/android-ndk-r8e

export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools

export ANDROID_ABI=armeabi-v7a

注意:最後export ANDROID_ABI=armeabi-v7a這一步需要根據各個android平台而定,可以執行adb shell 鏈接到android平台,然後cat /proc/cpuinfo 查看一下自己的平台是否為armv7的,是否支持neon,然後根據情況修改

五:獲取配置代碼

git clone git://git.videolan.org/vlc-ports/android.git

然後進入到android目錄,執行./compile.sh,這個腳本會執行所有的獲取vlc源代碼,各種依賴文件,編譯所需要的工具, 最後編譯,生成so文件,最後生成apk文件。不過執行這個腳本不出意外的會出現各種問題,要不然編譯這個android代碼也太easy了。根據出錯的提示加以解決,大部分都是給出的文件的下載鏈接錯誤,還有權限問題。這個過程會經歷很長時間,一般幾個小時,因為下載的速度很慢,是腳本所給鏈接的服務器問題。可以將這些文件下載好放到vlc/contrib/tarballs目錄中,大概包括下面這些安裝包

最後會BUILD SUCCESSFULL ,本來准備把編譯生成的動態庫so和apk文件放到這裡供大家下載的,可是這些文件都比較大,一般都好幾M有的幾十M,大家還是多折騰一下,只要下決心,最後肯定會編譯成功的。

VLC視頻播放器開發--VLC for Android編譯 http://www.linuxidc.com/Linux/2014-03/98074.htm

Copyright © Linux教程網 All Rights Reserved