Android: Difference between revisions
(Create section for docker image explenation) |
(Fix android build link) |
||
(32 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
== 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. | |||
= KDE software on Android | === Contact === | ||
For questions and discussion around KDE software on Android join our [https://matrix.to/#/#kde-android:kde.org Matrix channel] and [https://mail.kde.org/mailman/listinfo/kde-android mailing list]. | |||
== | === Getting Applications === | ||
Stable releases for our Android apps are available on [https://play.google.com/store/apps/dev?id=4758894585905287660 Google Play] and [https://f-droid.org/ F-Droid]. | |||
Nightly test builds can be found in the [[Android/FDroid | Nightly F-Droid repo]]. | |||
== | === Build Environment === | ||
There are different ways to setup a build environment: | |||
# '''[https://develop.kde.org/docs/packaging/android/building_applications/ Use Ready-to-Build Docker Container with Craft]''' - 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. | |||
# '''[[Android/Environment|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. | |||
# '''DEPRECATED [[Android/Environment_via_Container|Use Ready-to-Build Docker Container with android tooling]]''' - This works very similar to using Craft since it uses a docker environment too. However the tooling is now deprecated and no longer supported. You should use Craft in a container instead. | |||
You can also get the binaries from binary-factory.kde.org. Here's some explanation about how it works: | |||
https://community.kde.org/Android/BinaryFactory | |||
=== Building=== | |||
The following examples do not apply if you use Craft to build the software. | |||
==== Example: Building Marble ==== | |||
== Building== | |||
=== Example: Building Marble === | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cd /opt/android | cd /opt/android | ||
Line 89: | Line 29: | ||
mkdir marble/build | mkdir marble/build | ||
cd marble/build | cd marble/build | ||
cmake | cmake -DCMAKE_TOOLCHAIN_FILE=/PATH/TO/ECM/toolchain/Android.cmake -DECM_ADDITIONAL_FIND_ROOT_PATH=${Qt5_android} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../export .. | ||
make install/strip | make install/strip | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''Note:''' | '''Note:''' | ||
* <code>/PATH/TO/ECM/toolchain/Android.cmake</code> must be replaced with the actual path to toolchain/Android.cmake | * <code>/PATH/TO/ECM/toolchain/Android.cmake</code> 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 | ||
* <code>make install/strip</code> strips build symbols from the binaries and reduces sizes considerably | * <code>make install/strip</code> strips build symbols from the binaries and reduces sizes considerably | ||
=== Building with KDESRC-BUILD === | ==== Building with KDESRC-BUILD ==== | ||
For building the below mentioned frameworks on Android, you can use the following kdesrc-buildrc config file: | For building the below mentioned frameworks on Android, you can use the following kdesrc-buildrc config file: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Line 102: | Line 42: | ||
git clone git://anongit.kde.org/scratch/cordlandwehr/kdesrc-conf-android.git | git clone git://anongit.kde.org/scratch/cordlandwehr/kdesrc-conf-android.git | ||
mkdir -p extragear/kdesrc-build | mkdir -p extragear/kdesrc-build | ||
git clone kde | git clone git://anongit.kde.org/kdesrc-build extragear/kdesrc-build | ||
ln -s extragear/kdesrc-build/kdesrc-build kdesrc-build | ln -s extragear/kdesrc-build/kdesrc-build kdesrc-build | ||
ln -s kdesrc-conf-android/kdesrc-buildrc kdesrc-buildrc | ln -s kdesrc-conf-android/kdesrc-buildrc kdesrc-buildrc | ||
Line 109: | Line 49: | ||
== Packaging and Deployment of APKs == | == Packaging and Deployment of APKs == | ||
See [https://api.kde.org/ecm/toolchain/Android.html ECM Android Toolchain] documentation. | |||
== | == KDE Frameworks 5 & Third Party Libraries == | ||
=== KDE Frameworks 5 === | |||
* supported frameworks are listed at [https://api.kde.org] | |||
=== Third Party Libraries === | |||
* [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 | |||
== Further References == | == Further References == | ||
=== References: === | |||
* [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] | ||
=== Application specific build instructions: === | |||
* Marble: [ | * Marble: [[Marble/AndroidCompiling | build instructions]] | ||
=== Blog posts about building for Android (careful: instructions may be outdated) === | |||
* 2015-09 - Dennis Nienhüser: [http://nienhueser.de/blog/?p=614 Announcing Marble Maps for Android Open Beta] | * 2015-09 - Dennis Nienhüser: [http://nienhueser.de/blog/?p=614 Announcing Marble Maps for Android Open Beta] | ||
* 2015-04 - Péterffy Gábor: [http://pgabor.blogspot.de/2015/05/it-is-official-marble-is-coming-to.html Marble is coming to Android] | * 2015-04 - Péterffy Gábor: [http://pgabor.blogspot.de/2015/05/it-is-official-marble-is-coming-to.html Marble is coming to Android] | ||
* 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 - | * 2014-06 - Aleix Pol: [http://www.proli.net/2014/06/12/kde-software-on-android/ KDE Software on Android] | ||
Latest revision as of 01:56, 11 June 2023
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.
Contact
For questions and discussion around KDE software on Android join our Matrix channel and mailing list.
Getting Applications
Stable releases for our Android apps are available on Google Play and F-Droid.
Nightly test builds can be found in the Nightly F-Droid repo.
Build Environment
There are different ways to setup a build environment:
- Use Ready-to-Build Docker Container with Craft - 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.
- DEPRECATED Use Ready-to-Build Docker Container with android tooling - This works very similar to using Craft since it uses a docker environment too. However the tooling is now deprecated and no longer supported. You should use Craft in a container instead.
You can also get the binaries from binary-factory.kde.org. Here's some explanation about how it works:
https://community.kde.org/Android/BinaryFactory
Building
The following examples do not apply if you use Craft to build the software.
Example: Building Marble
cd /opt/android
git clone kde:marble
mkdir marble/build
cd marble/build
cmake -DCMAKE_TOOLCHAIN_FILE=/PATH/TO/ECM/toolchain/Android.cmake -DECM_ADDITIONAL_FIND_ROOT_PATH=${Qt5_android} -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
See ECM Android Toolchain documentation.
KDE Frameworks 5 & Third Party Libraries
KDE Frameworks 5
- supported frameworks are listed at [1]
Third Party Libraries
- libintl-lite: is required for KI18n, since BIONIC does not fully support gettext
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 - Aleix Pol: KDE Software on Android