歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

在64位Ubuntu下面使用Android NDK編譯Tvheadend

以前轉過一片老外寫的文章,http://www.holik.at/index.php?m=06&y=13&d=18&entry=entry130627-175237,按照這片blog的寫法,是有很多問題的。例如找不到Openssl等。我仔細認真研究之後,完成了這些功能。
 在Home下面建立tvheadend目錄,下載wget https://github.com/innbox/tvheadend/archive/tvheadend-Android.zip,然後解壓縮unzip tvheadend-android.zip.
 建立build目錄。
 下載openssl-1.0.1f.tar.gz,tar xvf openssl-1.0.1f.tar.gz.
 1, 編譯openssl
 cd openssl-1.0.1f
 -------------------my_configure_openssl.sh start here-----------------------
 #!/bin/sh
 ./config no-asm shared \
 --prefix=/home/zangcf/tvheadend/build
 -------------------my_configure_openssl.sh end here------------------------
 執行chmod u+xmy_configure_openssl.sh
 執行./my_configure_openssl.sh
 gedit Makefile
 做如下修改,1)查找m64,都刪除了。2)找CC= gcc,修改為/opt/android-toolchain/android-14/bin/arm-linux-androideabi-gcc 3)找到AR= ar $(ARFLAGS) r,修改為AR= /opt/android-toolchain/android-14/bin/arm-linux-androideabi-ar $(ARFLAGS) r,3)找到MAKEDEPPROG= gcc,修改為MAKEDEPPROG= /opt/android-toolchain/android-14/bin/arm-linux-androideabi-gcc 4)找到RANLIB= /usr/bin/ranlib,修改RANLIB= /opt/android-toolchain/android-14/bin/arm-linux-androideabi-ranlib
 make && make install
 
2,編譯tvheadend-android
 進入tvheadend-android,建立my_configure_tvheadend.sh
 ------------------------------------------my_configure_tvheadend.sh start here-------------------------------------------------------------------
 #!/bin/sh
 BUILD_PATH=/home/zangcf/tvheadend/build
 CC_PATH=/opt/android-toolchain/android-14/bin/arm-linux-androideabi-gcc
 
./configure \
  --prefix=$BUILD_PATH \
  --cc=$CC_PATH  \
  --disable-avahi \
              --disable-libav \
              --enable-bundle \
              --enable-android \
              --arch=arm \
              --march=armv5 \
              --android_toolchain=/opt/android-toolchain \
              --cflags="-I/home/zangcf/tvheadend/build/include -I/home/zangcf/tvheadend/tvheadend-tvheadend-android/vendor/dvb-api/5.10"
 --------------------------------------------my_configure_tvheadend.sh end here-----------------------------------------------------------------
 執行chmod u+x my_configure_tvheadend.sh
 執行./my_configure_tvheadend.sh
 執行make && make install
 adb push build.linux/tvheadend /data/dvb
 adb push ../android-toolchain-14/lib/libssl.so /data/dvb
 adb push ../android-toolchain-14/lib/libcrypto.so /data/dvb
 adb shell
 root@android:/data/dvb # ./tvheadend -C
 執行發現出錯
 ---------------------------------------Error information start here--------------------------------------------------------------------------
 shell@android:/data/tvheadend # ./tvheadend -C
./tvheadend -C
A newer kernel is required to run this binary. (__kernel_cmpxchg64 helper)
 ---------------------------------------Error information end here--------------------------------------------------------------------------
 這是由於NDK版本太新導致的,我們必須退回使用老的版本編譯
 3,安裝android-ndk-r5b工具鏈
 下載android-ndk-r5b-linux-x86.tar.bz2
 把android-ndk-r5b-linux-x86.tar.bz2 copy 到/opt下面
 解壓縮tar xvf android-ndk-r5b-linux-x86.tar.bz2
 cd android-ndk-r5b/
 ./build/tools/make-standalone-toolchain.sh --ndk-dir=/opt/android-ndk-r5b --install-dir=/opt/android-toolchain-r5b/android-8 --platform=android-8 --toolchain=arm-linux-androideabi-4.4.3
 
4,重新編譯
 修改
 #!/bin/sh
 ------------------------------------------my_configure_tvheadend.sh start here-------------------------------------------------------------------
 BUILD_PATH=/home/zangcf/tvheadend/build
 CC_PATH=/opt/android-toolchain-r5b/android-8/bin/arm-linux-androideabi-gcc
 
./configure \
  --prefix=$BUILD_PATH \
  --cc=$CC_PATH  \
  --disable-avahi \
              --disable-libav \
              --enable-bundle \
              --enable-android \
              --arch=arm \
              --march=armv5 \
              --android_toolchain=/opt/android-toolchain \
              --cflags="-I/home/zangcf/tvheadend/build/include -I/home/zangcf/tvheadend/tvheadend-tvheadend-android/vendor/dvb-api/5.10"
 ------------------------------------------my_configure_tvheadend.sh end here-------------------------------------------------------------------
 執行make && make install
 然後重復前面同樣的方法push到機器裡面。
 
5,運行

在android的本地浏覽器,打開地址http://localhost:9981,可以看到配置界面的正常運行。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved