Difference between revisions of "MythTV on Android"

From MythTV Official Wiki
Jump to: navigation, search
(Build Procedure)
Line 43: Line 43:
 
There is currently no automated way to get all dependencies and build an apk in one step
 
There is currently no automated way to get all dependencies and build an apk in one step
  
== Clone the repos from the android fork ==
+
== 1. Clone the repos from the android fork ==
 
<pre>mkdir workdir
 
<pre>mkdir workdir
 
cd workdir
 
cd workdir
Line 49: Line 49:
 
cd packaging/android
 
cd packaging/android
 
git clone git@github.com:mspieth/mythtv.git</pre>
 
git clone git@github.com:mspieth/mythtv.git</pre>
== Get Android sdk, ndk and Qt using the online installer ==
+
== 2. Get Android sdk, ndk and Qt using the online installer ==
 
* I used Qt 5.4.1
 
* I used Qt 5.4.1
 
* You need the sdk version you are compiling to. I used 17 for 4.2.2 as minimum compatability level. File will be something like qt-opensource-linux-x64-1.6.0-8-online.run
 
* You need the sdk version you are compiling to. I used 17 for 4.2.2 as minimum compatability level. File will be something like qt-opensource-linux-x64-1.6.0-8-online.run
Line 74: Line 74:
 
         setenv.sh
 
         setenv.sh
  
 +
== 3. Get a sufficiently suitable version of java. I used oracle-java7-jdk_7u76_amd64.deb ==
 +
* Install it and make it the active one. Note that you can't use java8.
 +
 +
== 4. Get the following tarballs and put then in ./libs and extract (tar xf) them in this directory ==
 +
# exiv2-0.24.tar.gz
 +
# freetype-2.5.5.tar.bz2
 +
# lame-3.99.5.tar.gz
 +
# libiconv-1.14.tar.gz
 +
# mariadb-connector-c-2.1.0-src.tar.gz
 +
# openssl-1.0.2.tar.gz
 +
# taglib-1.9.1.tar.gz
 +
# qt-everywhere-opensource-src-5.4.1.tar.xz
 +
 +
* This process will be made automatic in time using the windows mythbuild.
 +
 +
== 5. build all the libraries ==
 +
./makelibs.sh
 +
 +
== 6. build it (debug by default) ==
 +
./mythbuild.sh
  
 
[[Category:Developer Documentation]] [[Category:Distribution_Specific_Install_Guides]] [[Category:Android]] [[Category:HOWTO]]
 
[[Category:Developer Documentation]] [[Category:Distribution_Specific_Install_Guides]] [[Category:Android]] [[Category:HOWTO]]

Revision as of 22:03, 9 April 2015

MythTV runs on Android but an official apk is not distributed, here is how to build an android package for yourself.

It uses Linux as the build platform, and opengl as the display layer.

Background & Caveats

Currently it is not very well tested

What works?

Only the frontend works.

However:

  • Tt works the same way it does on Linux.
  • The same themes (or new ones) or any downloadable ones work.
  • Live TV works with program guide to change channels.
  • Playback gesture key mapping is reconfigurable with phpmyadmin.
    • Guide gesture mapping is (currently) Fixed and Click does not work.
  • Only OpenGL Mode for rendering and playback.
    • You cant return from setup screens in OpenGL mode, but it works in Qt rendering mode.

What doesn't work?

  • No backend (currently)
  • Builds are device specific.
  • playback is a bit hiccuppy.
  • not all screens have even rudimentary gesture support.

Unofficial Android Pre-Builds

Some master only builds exist on http://www.digivation.com.au/debian with various dates.

Gesture Support

Themes

Existing these work fine and the click sensitivity make it quite usable.

Currently there does not exist any special themes for touch screen usage.

Build Procedure

To build MythTV for android, use the following steps.

There is currently no automated way to get all dependencies and build an apk in one step

1. Clone the repos from the android fork

mkdir workdir
cd workdir
git clone git@github.com:mspieth/packaging.git
cd packaging/android
git clone git@github.com:mspieth/mythtv.git

2. Get Android sdk, ndk and Qt using the online installer

  • I used Qt 5.4.1
  • You need the sdk version you are compiling to. I used 17 for 4.2.2 as minimum compatability level. File will be something like qt-opensource-linux-x64-1.6.0-8-online.run
  • install in ~/android as the build scripts assume its there
  • also get android-ndk-r10d-linux-x86_64.bin and install it in ~/android too.
  • also get android-cmake-master.zip and install that too in ~/android
  • if you want to build a release apk, you need to create a key.
  • modify and copy android-utilities/* to ~/android
    cp android-utilities/setenv.sh ~/android
  • create a toolchain for the correct version. see maketoolchain.sh for this. sdk 17 is the default

You should have a dir structure like this after you are done:

  ~/android
       Qt
       android-cmake
       android-ndk -> android-ndk-r10d
       android-ndk-r10d
       android-sdk-linux
       android-studio
       yourname-release.keystore
       yourname.keystore
       maketoolchain.sh
       setenv.sh

3. Get a sufficiently suitable version of java. I used oracle-java7-jdk_7u76_amd64.deb

  • Install it and make it the active one. Note that you can't use java8.

4. Get the following tarballs and put then in ./libs and extract (tar xf) them in this directory

  1. exiv2-0.24.tar.gz
  2. freetype-2.5.5.tar.bz2
  3. lame-3.99.5.tar.gz
  4. libiconv-1.14.tar.gz
  5. mariadb-connector-c-2.1.0-src.tar.gz
  6. openssl-1.0.2.tar.gz
  7. taglib-1.9.1.tar.gz
  8. qt-everywhere-opensource-src-5.4.1.tar.xz
  • This process will be made automatic in time using the windows mythbuild.

5. build all the libraries

./makelibs.sh

6. build it (debug by default)

./mythbuild.sh