1. 程式人生 > >ijkplayer學習系列之環境搭建

ijkplayer學習系列之環境搭建

環境準備

硬體環境:PC機一臺

作業系統:Ubuntu 12.04(我是Ubuntu+XP雙系統)

軟體環境:除Ubuntu預裝的所有應用,還需要以下工具:git, ant, ccache, sdk, ndk。

其中git,ant和ccache直接使用sudo apt-get install XXX安裝即可。

sdk和ndk可以在android developer網站下載,下面給出分別的下載地址:

【注】git, ant, ccache工具的說明可以參考百度/谷歌等網路資料。

編譯前的準備

1. 在$HOME目錄下建立一個Development資料夾,後續我們所有的程式碼均放到該目錄下

2. 將下載好的adt和ndk拷貝到剛才建立的Development資料夾中,並直接解壓

tar xf android-ndk-r9b-linux-x86.tar.bz2

unzip adt-bundle-linux-x86-20130917.zip

3. 配置環境變數

設定ANDROID_SDK和ANDROID_NDK環境變數,並新增PATH環境變數中。

修改$HOME/.bashrc檔案,在最後面新增如下程式碼:

  1. export ANDROID_SDK=~/Development/adt-bundle-linux-x86-20130917/sdk  
  2. export ANDROID_NDK=~/Development/android-ndk-r9b  
  3. export PATH=$PATH:$ANDROID_SDK:$ANDROID_NDK:$ANDROID_SDK/platform-tools/  
其中將$ANDROID_SDK/platform-tools/新增到PATH環境變數中,這樣就將一些adb除錯的工具新增到環境變數中,可以方便連線裝置除錯。

4. 下載ijkplayer的程式碼

因為我們研究的物件ijkplayer是github上的一個開源專案,因此使用git下載其版本管理庫:

git clone https://github.com/bbcallen/ijkplayer.git

編譯ijkplayer庫

進入到ijkplayer目錄

cd ijkplayer

執行init-android.sh指令碼,指令碼的主要作用是下載ffmpeg原始碼。

sh init-android.sh

執行完成後,下載好的ffmpeg原始碼會放到android/ffmpeg-armv7a目錄。

進入android目錄下,執行compile-ffmpeg.sh指令碼即可完成ffmpeg的編譯

cd android

sh compile-ffmpeg.sh

然後,在執行compile-ijk.sh指令碼,完成ijk部分的編譯。

sh compile-ijk.sh

編譯後會生成如下的檔案:

ijkmediaplayer/libs/armeabi-v7a/libffmpeg.so
ijkmediaplayer/libs/armeabi-v7a/libijkplayer.so
ijkmediaplayer/libs/armeabi-v7a/libijksdl.so
ijkmediaplayer/libs/armeabi-v7a/libijkutil.so
ijkmediaplayer/libs/armeabi-v7a/libstlport_shared.so

編譯ijkplayer Demo

開啟eclipse(我們剛才下載的adt中除了sdk還有一個配置好的eclipse,位於~/Development/adt-bundle-linux-x86-20130917/eclipse/目錄中),開啟後直接就可以建立/使用android project。

將位於~/Development/ijkplayer/android/目錄的三個android工程匯入到eclipse中。其中ijkmediaplayer和ijkmediawidget兩個工程編譯出來的是jar包和so庫,真正可以編譯成apk的是ijkmediademo工程。

因為eclipse配置了自動構建,因此匯入工程後,即開始自動構建。但是初次構建會失敗,報出如下錯誤:

Cannot run program "ndk-build": Unknown reason
Error: Program "ndk-build" is not found in PATH

而我們明明在命令列,直接輸入ndk-build是可以正常使用的,即ndk-build確實是在PATH中,這與當前的error資訊不符。

結合在windows上的android開發經驗,再加上查詢其它網路資料,應該是eclipse本身沒有配置ndk的原因。

在eclipse-->Preferences-->Android-->NDK中,設定好正確的ndk路徑:~/Development/android-ndk-r9b。

然後,重新clean project --> build project --> run,即可在手機或者AVD上除錯demo應用。