Android: Difference between revisions
Make mailinglist a separate topic, under Contact |
|||
Line 63: | Line 63: | ||
= Further References = | = Further References = | ||
=== References: === | === References: === | ||
* [https://phabricator.kde.org/project/profile/45/ Phabricator Project] | * [https://phabricator.kde.org/project/profile/45/ Phabricator Project] | ||
* Extra-CMake-Modules Toolchain: [http://api.kde.org/ecm/toolchain/Android.html API documentation] | * Extra-CMake-Modules Toolchain: [http://api.kde.org/ecm/toolchain/Android.html API documentation] | ||
Line 75: | Line 74: | ||
* 2015-01 - GCompris Devels: [http://gcompris.net/newsall-en.html#2015-01-06 GCompris is now released on Android] | * 2015-01 - GCompris Devels: [http://gcompris.net/newsall-en.html#2015-01-06 GCompris is now released on Android] | ||
* 2014-06 - Alex Pol: [http://www.proli.net/2014/06/12/kde-software-on-android/ KDE Software on Android] | * 2014-06 - Alex Pol: [http://www.proli.net/2014/06/12/kde-software-on-android/ KDE Software on Android] | ||
= Contact = | |||
If you want to join us the best place is the IRC channel and mailing list: | |||
* [irc://irc.freenode.net/kde-devel #kde-devel] channel on irc.freenode.net (currently no separate channel) | |||
* [mailto:[email protected] [email protected]] mailing list: [https://mail.kde.org/mailman/listinfo/kde-android subscribe], [http://lists.kde.org/?l=kde-android&r=1&w=2 archives] |
Revision as of 13:40, 4 May 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:
- 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.
- 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.cmakemake 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
Status of KDE Frameworks 5
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
- kconfig (note: unit tests must be disabled)
- kcompletion
- kitemmodels
- kitemviews
- kcodecs
- karchive
- kguiaddons
- kwidgetsaddons
- attica
- kdnssd
- kapidox
- kimageformats
- kplotting
- ki18n (libintl-lite is required, since 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
References:
- Phabricator Project
- Extra-CMake-Modules Toolchain: API documentation
Application specific build instructions:
- Marble: build instructions
Blog posts about building for Android (careful: instructions may be outdated)
- 2015-09 - Dennis Nienhüser: Announcing Marble Maps for Android Open Beta
- 2015-04 - Péterffy Gábor: Marble is coming to Android
- 2015-01 - GCompris Devels: GCompris is now released on Android
- 2014-06 - Alex Pol: KDE Software on Android
Contact
If you want to join us the best place is the IRC channel and mailing list:
- #kde-devel channel on irc.freenode.net (currently no separate channel)
- [email protected] mailing list: subscribe, archives