Android/Environment via Container: Difference between revisions

From KDE Community Wiki
No edit summary
Line 24: Line 24:
== Tricks ==
== Tricks ==
* build-generic fetch the dependencies of <appname>, build them and then build <appname>, outputting an apk to /output. Therefore a volume to /output will catch the result. e.g. <code>-v $HOME/apks:/output</code>
* build-generic fetch the dependencies of <appname>, build them and then build <appname>, outputting an apk to /output. Therefore a volume to /output will catch the result. e.g. <code>-v $HOME/apks:/output</code>
* if we want to develop a project locally we can also use volumes and put them in the home directory. e.g. <code>-v $HOME/kde/src/okular:/home/user/src/okular -v $HOME/kde/build/okular:/home/user/build/okular</code>.
* if we want to develop a project locally we can also use volumes and put them in the home directory. e.g. <code>-v $HOME/kde/src:/home/user/src -v $HOME/kde/androidbuild:/home/user/build</code>.
* Note we are passing kdeorg/android-arm-sdk, this is to produce 32-bit arm images, there's also kdeorg/android-aarch64-sdk available as well.
* Note we are passing kdeorg/android-arm-sdk, this is to produce 32-bit arm images, there's also kdeorg/android-aarch64-sdk available as well.

Revision as of 18:52, 17 December 2019

Using Docker for KDE on Android Development

This is the easiest way to start cross-compiling and developing Qt applications for Android. The explained Docker image will install all dependencies and setup all environment variables automatically. By this, it closely follows the steps explained in the detailed system setup guide:

Setting up

This image alone contains a working Android SDK, NDK and Qt binaries. The easiest is to access it like this (it will be downloaded the first time you use it):

docker run -ti --rm kdeorg/android-arm-sdk bash

Here one can start developing at ease in an environment welcoming to projects that use cmake, Qt, ECM, etc.

Building an application

To make it easy to compile applications we put some scripts to get started. They can be triggered like this:

docker run -ti --rm kdeorg/android-arm-sdk /opt/helpers/build-generic <appname>

The following command will compile okular with all its dependencies and output an apk to our /tmp directory.

docker run -ti --rm -v /tmp:/output kdeorg/android-arm-sdk /opt/helpers/build-generic okular

Tricks

  • build-generic fetch the dependencies of <appname>, build them and then build <appname>, outputting an apk to /output. Therefore a volume to /output will catch the result. e.g. -v $HOME/apks:/output
  • if we want to develop a project locally we can also use volumes and put them in the home directory. e.g. -v $HOME/kde/src:/home/user/src -v $HOME/kde/androidbuild:/home/user/build.
  • Note we are passing kdeorg/android-arm-sdk, this is to produce 32-bit arm images, there's also kdeorg/android-aarch64-sdk available as well.