Android: Difference between revisions

From KDE Community Wiki
No edit summary
m (Formating)
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.
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 ==
=== 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].
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 ==
=== 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].
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].
Line 11: Line 11:
Nightly test builds can be found in the [[Android/FDroid | Nightly F-Droid repo]].
Nightly test builds can be found in the [[Android/FDroid | Nightly F-Droid repo]].


== 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.
# '''[[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.
Line 20: Line 20:
https://community.kde.org/Android/BinaryFactory
https://community.kde.org/Android/BinaryFactory


== Building==
=== Building===


==== Example: Building Marble ====
==== Example: Building Marble ====
Line 51: Line 51:
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 59: Line 59:
* [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]

Revision as of 21:57, 19 November 2020

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:

  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.

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

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

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

Further References

References:

Application specific build instructions:

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