看著懟了一個(gè)星期的 vlc-linux 播放器順利放出了 avs2-ts 的視頻激動(dòng)地老淚縱橫荚斯。想著好好休息休息準(zhǔn)備一下建模和過年蝙斜,突然又想起了好像還有一個(gè) Android 端沒有完成枕荞,于是又老老實(shí)實(shí)坐回了電腦前。因?yàn)橹匮b了系統(tǒng)氧腰,所以學(xué)習(xí)筆記第一篇:重新溫習(xí)一下在Linux 下編譯 Android 項(xiàng)目的過程付材。
學(xué)習(xí)資料參考:AndroidCompile——VLC 官方引導(dǎo)。
1 環(huán)境配置
1.1 基礎(chǔ)環(huán)境
說到基礎(chǔ)環(huán)境我磁,原諒我在看到vlc官方的描述的時(shí)候不厚道的笑了:
You MUST build on Linux (or OSX if you know what you are doing).
哈哈哈孽文,這句 if you know what you are doing 簡(jiǎn)直嘲諷...
咳咳,言歸正傳夺艰,想要交叉編譯安卓的項(xiàng)目那么 Linux 必然首選芋哭,原因:
- 與安卓本質(zhì)相通
- 更加自由靈活
- 安全,隨時(shí)重裝
- Linux 特有依賴
- 熟悉 Linux 是一個(gè)很棒的事情
當(dāng)然 Win 10 給出的閹割版 Ubuntu 14 也是可以勉強(qiáng)使用的郁副,或者在 Win 下安裝 Cygwin 也能達(dá)到編譯項(xiàng)目的目的减牺,但筆者不建議這樣做,因?yàn)橄裎疫@樣的初學(xué)者講真不是很敢動(dòng) Win 的 Ubuntu...再者 Cygwin 給我的感覺就像穿著高跟鞋跑步一樣...
所以最終我的基礎(chǔ)環(huán)境:Deepin 15.4 (一個(gè)國(guó)產(chǎn)Linux存谎,畫風(fēng)很像OSX)
1.2 依賴添加
官網(wǎng)給出了編譯需要的 Linux 依賴:
sudo apt-get install automake ant autopoint cmake build-essential libtool patch pkg-config protobuf-compiler ragel subversion unzip git openjdk-8-jre openjdk-8-jdk flex
講道理直接 copy-run 是可以的拔疚,但這里建議還是一個(gè)一個(gè)安裝比較好,安裝最后運(yùn)行一下上面這行代碼作為檢測(cè)既荚。因?yàn)檫@樣可以很好的防止因?yàn)槭韬雎┑袅税惭b失敗的警告稚失。
1.3 Android 編譯環(huán)境配置
這個(gè)相信大家就比較熟悉了,SDK+IDE+NDK一整套大禮包恰聘,比較吃空間所以有必要的同學(xué)注意一下句各。
正規(guī)SDK下載地址:Android SDK/IDE page && Android NDK page .
很遺憾在我家這倆哪個(gè)也打不開...于是找到了一個(gè)BDY的資源鏈接:NDK-需要自取吸占,至于SDK+IDE,有AS最好诫钓,沒有的話Eclipse也湊合旬昭。
下載安裝完后記得配置一下環(huán)境變量,愿意使用 export 命令的話方法如下:
export ANDROID_SDK=/path/to/android-sdk
export ANDROID_NDK=/path/to/android-ndk
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools
但這樣配置完后命令行關(guān)閉會(huì)自動(dòng)清空菌湃,所以推薦直接把上面幾行環(huán)境信息寫到 /etc/profile 里或者 .bash_profile 里并記得 source 一下问拘,網(wǎng)上找到的教程:Linux環(huán)境下如何修改環(huán)境變量。
其實(shí)如果有 AS 的話只要下載 SDK 就好惧所,其他的可以使用 AS 去下:
Ps: Android Studio安裝的NDK默認(rèn)安裝在ANDROID_SDK_HOME/ndk-bundle/下骤坐,這里還應(yīng)該勾選一下 Platform-Tools,第一次忘記了
2 資源Get
到這一步其實(shí)就已經(jīng)完成大半了(環(huán)境配置是大頭跋掠)纽绍,記得剛剛裝過的 git 嗎,沒使用過的小伙伴势似,走你:Git 入門小游戲拌夏。學(xué)會(huì)使用 git 之后就來 clone 一下我們需要的資源:
git clone https://code.videolan.org/videolan/vlc-android.git
直接打開也可以看到項(xiàng)目的倉(cāng)庫(kù)內(nèi)容。
3 進(jìn)行編譯
3.1 vlc 配置
編譯之前首先要把剛剛的一些配置信息告訴 vlc 的項(xiàng)目履因,就是運(yùn)行一下 compile.sh 的腳本障簿,他會(huì)完成下面兩句:
> local.properties
sdk.dir=<SDK path from $ANDROID_SDK>
ndk.dir=<NDK path from $ANDROID_NDK>
3.2 正規(guī)編譯
然后就是找到自己對(duì)應(yīng)的 ABI Tag:
ABI Tag | Device |
---|---|
armeabi-v7a | Normal (2012-2015 consumer phone or tablet) device |
armeabi-v7a | Tegra2 device |
armeabi | ARMv6 device |
armeabi-nofpu | ARMv6 device that does not support FPU |
armeabi-v5 | ARMv5 device or the Android Emulator |
x86 | x86 device |
mips | MIPS device |
找到后就可以進(jìn)行編譯了:
開發(fā)版:sh compile.sh -a <ABI Tag> -l
發(fā)行版:sh compile.sh -l release
最后在我們的 Gradle 配置里加上:
> gradle.properties
org.gradle.parallel=true
org.gradle.configureondemand=true
# If you have a BUNCH of RAM available
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048M
4 愉快的玩耍
如果上面的步驟都順利的完成了的話,那么恭喜你栅迄,可以在 AS 里與 vlc for android 愉快的玩耍啦~至于打開 vlc 目錄后的一通心塞...[捂臉]站故,就留給下一篇筆記吧。