Android: Difference between revisions

From KDE Community Wiki
(Make mailinglist a separate topic, under Contact)
(→‎Status of KDE Frameworks 5: remove list and link to api.k.o)
Line 40: Line 40:
{{Note|See ECM Toolchain documentation, to be added here as example}}
{{Note|See ECM Toolchain documentation, to be added here as example}}


= Status of KDE Frameworks 5 =
= KDE Frameworks 5 & Third Party Libraries =
The following frameworks can currently be used for Qt5/KF5 based applications. They are not (yet?) provided as precompiled libraries but can easily be compiled via kdesrc-build.
 
== Built Successfully ==
=== KDE Frameworks 5 ===
* kconfig (note: unit tests must be disabled)
* supported frameworks are listed at [https://api.kde.org]
* kcompletion
 
* kitemmodels
=== Third Party Libraries ===
* kitemviews
* [https://github.com/j-jorge/libintl-lite libintl-lite]: is required for KI18n, since [https://en.wikipedia.org/wiki/Bionic_%28software%29 BIONIC] does not fully support gettext
* kcodecs
* karchive
* kguiaddons
* kwidgetsaddons
* attica
* kdnssd
* kapidox
* kimageformats
* kplotting
* ki18n ([https://github.com/j-jorge/libintl-lite libintl-lite] is required, since [https://en.wikipedia.org/wiki/Bionic_%28software%29 BIONIC] does not fully support gettext)
=== Current Blockers ===
The following frameworks cannot yet be built and block building of further Tier 1 frameworks:
* kcoreaddons: unix specific backend not compatible with Android's libc


= Further References =
= Further References =

Revision as of 22:27, 17 June 2016

KDE Software on Android

Android is currently the mobile platform regarding market share and number of provided applications. Hence, it is a platform very well suited to increase the availability and usage of applications by the KDE community. In the following, we give an overview of the technical steps required to setup a build system for cross-compiling a Qt5/KF5 based Android application, the necessary steps to deploy it, and a reference list of the porting steps by different applications/people.

If you enter the field of cross-compiling and Qt on Android for the first time, the best start is to follow our tutorial:

Build Environment

There are different ways to setup a build environment:

  1. Use Ready-to-Build Docker Container - This is the most convenient way to setup a system. It also brings the advantage to have a clear separation between your Linux build system and your cross-compile system; in particularly when you require several cross-compiled libraries for your application.
  2. Setup your Build Environment Manually - This tutorial for setting up the cross-compiling environment requires considerably more time and brings the disadvantage to make no clear separation between your system and the cross-compile environment.

Building

Example: Building Marble

cd /opt/android
git clone kde:marble
mkdir marble/build
cd marble/build
cmake -DCMAKE_PREFIX_PATH=${Qt5_android} -DCMAKE_TOOLCHAIN_FILE=/PATH/TO/ECM/toolchain/Android.cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../export  ..
make install/strip

Note:

  • /PATH/TO/ECM/toolchain/Android.cmake must be replaced with the actual path to toolchain/Android.cmake, if using the docker image it probably is at /opt/android/kde/install/share/ECM/toolchain/Android.cmake
  • make install/strip strips build symbols from the binaries and reduces sizes considerably

Building with KDESRC-BUILD

For building the below mentioned frameworks on Android, you can use the following kdesrc-buildrc config file:

cd /opt/android
git clone git://anongit.kde.org/scratch/cordlandwehr/kdesrc-conf-android.git
mkdir -p extragear/kdesrc-build
git clone git://anongit.kde.org/kdesrc-build extragear/kdesrc-build
ln -s extragear/kdesrc-build/kdesrc-build kdesrc-build
ln -s kdesrc-conf-android/kdesrc-buildrc kdesrc-buildrc
./kdesrc-build extra-cmake-modules frameworks-android

Packaging and Deployment of APKs

Note

See ECM Toolchain documentation, to be added here as example


KDE Frameworks 5 & Third Party Libraries

KDE Frameworks 5

  • supported frameworks are listed at [1]

Third Party Libraries

Further References

References:

Application specific build instructions:

Blog posts about building for Android (careful: instructions may be outdated)

Contact

If you want to join us the best place is the IRC channel and mailing list: