Jump to content

Android: Difference between revisions

From KDE Community Wiki
Frinring (talk | contribs)
m Update link to marble build instructions
Nmariusp (talk | contribs)
Building: The rest of this page might contain outdated information.
 
(17 intermediate revisions by 9 users not shown)
Line 1: Line 1:
= KDE Software on Android =
== 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.
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 KDE apps.


If you enter the field of cross-compiling and Qt on Android for the first time, the best start is to follow our tutorial:
== Contact ==
* [[Android/Tutorial|KDE an Android Tutorial]]
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] , [https://f-droid.org/ F-Droid] and in the [[Android/F-Droid | KDE F-Droid Release Repository]].
 
Nightly test builds can be found in the [[Android/F-Droid | KDE F-Droid Nightly Build Repository]].


== Build Environment ==
== Build Environment ==
There are different ways to setup a build environment:
There are different ways to setup a build environment:
# '''[[Android/Environment_via_Container|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.
# '''[https://develop.kde.org/docs/packaging/android/building_applications/ Use a ready-to-build Docker/Podman container with KDE Craft]''' - This is the simplest and most convenient way to setup a system. It provides a clear separation between the build system from your Linux host and the build system in the Linux container instance. Allows cross-compilation. Can build binaries for Android armv7, arm64, x86 and x86_64.
# '''[[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.
# '''[[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.


== Building==
== Building==
The following examples do not apply if you use [[Craft|KDE Craft]] to build the software.


==== Example: Building Marble ====
The rest of this page might contain outdated information.
 
=== Example: Building Marble ===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
cd /opt/android
cd /opt/android
Line 18: Line 27:
mkdir marble/build
mkdir marble/build
cd 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  ..
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>
Line 24: Line 33:
* <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>/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 ====
For building the below mentioned frameworks on Android, you can use the following kdesrc-buildrc config file:
<syntaxhighlight lang="bash">
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
</syntaxhighlight>


== Packaging and Deployment of APKs ==
== Packaging and Deployment of APKs ==
Line 41: Line 38:
See [https://api.kde.org/ecm/toolchain/Android.html ECM Android Toolchain] documentation.
See [https://api.kde.org/ecm/toolchain/Android.html ECM Android Toolchain] documentation.


= KDE Frameworks 5 & Third Party Libraries =
== KDE Frameworks 5 & Third Party Libraries ==


=== KDE Frameworks 5 ===
=== KDE Frameworks 5 ===
Line 49: Line 46:
* [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
* [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: ===
=== References: ===
* [https://phabricator.kde.org/project/profile/45/ Phabricator Project]
* [https://phabricator.kde.org/project/profile/45/ Phabricator Project]
Line 61: Line 58:
* 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 - Alex Pol: [http://www.proli.net/2014/06/12/kde-software-on-android/ KDE Software on Android]
* 2014-06 - Aleix 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]

Latest revision as of 18:48, 28 June 2025

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 KDE apps.

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 , F-Droid and in the KDE F-Droid Release Repository.

Nightly test builds can be found in the KDE F-Droid Nightly Build Repository.

Build Environment

There are different ways to setup a build environment:

  1. Use a ready-to-build Docker/Podman container with KDE Craft - This is the simplest and most convenient way to setup a system. It provides a clear separation between the build system from your Linux host and the build system in the Linux container instance. Allows cross-compilation. Can build binaries for Android armv7, arm64, x86 and x86_64.
  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

The following examples do not apply if you use KDE Craft to build the software.

The rest of this page might contain outdated information.

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.cmake
  • make install/strip strips build symbols from the binaries and reduces sizes considerably

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

Further References

References:

Application specific build instructions:

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