Skip to content

Commit

Permalink
Android SDK: Update SDK, Qt and add Gstreamer (#16)
Browse files Browse the repository at this point in the history
This updates the SDK to the latest required for the store and adds GStreamer.
  • Loading branch information
LorenzMeier authored Dec 21, 2019
1 parent 505915d commit b18a2bb
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 7 deletions.
20 changes: 14 additions & 6 deletions Dockerfile_qgc-build-android
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
# QGroundControl android build environment
#

# Bionic does not work yet: The default JDK is broken for Android
FROM ubuntu:xenial
MAINTAINER Daniel Agar <[email protected]>

ARG QT_VERSION=5.12.5
ARG QT_VERSION=5.12.6
ARG NDK_VERSION=r20b
ARG SDK_BUILD_TOOLS=25.0.3
ARG SDK_BUILD_TOOLS=28.0.3
ARG SDK_PACKAGES="tools platform-tools"
ARG SDK_PLATFORM=android-21

Expand All @@ -25,8 +26,8 @@ ENV ANDROID_NDK_TOOLCHAIN_VERSION=4.9
ENV QMAKESPEC=android-clang
ENV QT_PLATFORM=android_armv7

ENV QGC_ANDROID_GSTREAMER_URL=https://qgroundcontrol.s3.amazonaws.com/dependencies/gstreamer-1.0-android-universal-1.14.4.tar.bz2
ENV QGC_ANDROID_GSTREAMER_PATH=/opt/
ENV QGC_ANDROID_GSTREAMER_URL=https://gstreamer.freedesktop.org/pkg/android/1.14.4/gstreamer-1.0-android-universal-1.14.4.tar.bz2
ENV QGC_ANDROID_GSTREAMER_PATH=/opt/gstreamer-1.0-android-universal-1.14.4

ENV ANDROID_SDK_ROOT=${ANDROID_HOME}
ENV ANDROID_NDK_PLATFORM=${SDK_PLATFORM}
Expand All @@ -40,7 +41,8 @@ ENV PATH=${QT_PATH}/${QT_VERSION}/${QT_PLATFORM}/bin:${ANDROID_NDK_TOOLCHAIN}/${
ENV PATH=/usr/lib/ccache:${PATH}

RUN dpkg --add-architecture i386 \
&& apt-get update && apt-get -y --quiet --no-install-recommends install \
&& apt-get update \
&& apt-get -y --quiet --no-install-recommends install \
ant \
ca-certificates \
ccache \
Expand Down Expand Up @@ -83,7 +85,9 @@ RUN curl -Lo /tmp/qt/installer.run "https://download.qt.io/archive/qt/$(echo "${
&& rm -rf /tmp/*

# Download & unpack android SDK
RUN curl -Lo /tmp/sdk-tools.zip 'https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip' \
# URLs come from here: https://developer.android.com/studio#downloads

RUN curl -Lo /tmp/sdk-tools.zip 'https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip' \
&& mkdir -p ${ANDROID_HOME} && unzip -q /tmp/sdk-tools.zip -d ${ANDROID_HOME} && rm -f /tmp/sdk-tools.zip \
&& yes | sdkmanager --licenses && sdkmanager --verbose "platforms;${SDK_PLATFORM}" "build-tools;${SDK_BUILD_TOOLS}" ${SDK_PACKAGES}

Expand All @@ -94,6 +98,10 @@ RUN mkdir /tmp/android && cd /tmp/android && curl -Lo ndk.zip "https://dl.google

# Download & unpack gstreamer
RUN curl --silent -Lo /tmp/gstreamer-android.tar.bz2 ${QGC_ANDROID_GSTREAMER_URL} && mkdir -p ${QGC_ANDROID_GSTREAMER_PATH} && tar jxf /tmp/gstreamer-android.tar.bz2 -C ${QGC_ANDROID_GSTREAMER_PATH} && rm -f /tmp/gstreamer-android.tar.bz2
# Delete Android x86, 64bit x86 and basic arm libraries
RUN rm -rf ${QGC_ANDROID_GSTREAMER_PATH}/x86
RUN rm -rf ${QGC_ANDROID_GSTREAMER_PATH}/x86_64
RUN rm -rf ${QGC_ANDROID_GSTREAMER_PATH}/arm

# Reconfigure locale
RUN locale-gen en_US.UTF-8 && dpkg-reconfigure locales
Expand Down
14 changes: 13 additions & 1 deletion Dockerfile_qgc-build-android_arm64_v8a
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@
# QGroundControl android build environment
#

# Default JDK is broken for Android on bionic
FROM ubuntu:xenial
MAINTAINER Daniel Agar <[email protected]>

ARG QT_VERSION=5.12.5
ARG QT_VERSION=5.12.6
ARG NDK_VERSION=r20b
ARG SDK_BUILD_TOOLS=25.0.3
ARG SDK_PACKAGES="tools platform-tools"
Expand All @@ -25,6 +26,9 @@ ENV ANDROID_NDK_TOOLCHAIN_VERSION=4.9
ENV QMAKESPEC=android-clang
ENV QT_PLATFORM=android_arm64_v8a

ENV QGC_ANDROID_GSTREAMER_URL=https://qgroundcontrol.s3.amazonaws.com/dependencies/unchanged-gstreamer-1.0-android-universal-1.14.4.tar.bz2
ENV QGC_ANDROID_GSTREAMER_PATH=/opt/gstreamer-1.0-android-universal-1.14.4

ENV ANDROID_SDK_ROOT=${ANDROID_HOME}
ENV ANDROID_NDK_PLATFORM=${SDK_PLATFORM}
ENV ANDROID_NDK_ROOT=${ANDROID_HOME}/ndk-${NDK_VERSION}
Expand Down Expand Up @@ -66,6 +70,7 @@ RUN dpkg --add-architecture i386 \
wget \
xvfb \
zlib1g:i386 \
bzip2 \
&& apt-get -y autoremove \
&& apt-get clean autoclean \
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
Expand All @@ -87,6 +92,13 @@ RUN curl -Lo /tmp/sdk-tools.zip 'https://dl.google.com/android/repository/sdk-to
RUN mkdir /tmp/android && cd /tmp/android && curl -Lo ndk.zip "https://dl.google.com/android/repository/android-ndk-${NDK_VERSION}-linux-x86_64.zip" \
&& unzip -q ndk.zip && mv android-ndk-* $ANDROID_NDK_ROOT && chmod -R +rX $ANDROID_NDK_ROOT \
&& rm -rf /tmp/android

# Download & unpack gstreamer
RUN curl --silent -Lo /tmp/gstreamer-android.tar.bz2 ${QGC_ANDROID_GSTREAMER_URL} && mkdir -p ${QGC_ANDROID_GSTREAMER_PATH} && tar jxf /tmp/gstreamer-android.tar.bz2 -C ${QGC_ANDROID_GSTREAMER_PATH} && rm -f /tmp/gstreamer-android.tar.bz2
# Delete Android x86, 64bit x86 and basic arm libraries
RUN rm -rf ${QGC_ANDROID_GSTREAMER_PATH}/x86
RUN rm -rf ${QGC_ANDROID_GSTREAMER_PATH}/x86_64
RUN rm -rf ${QGC_ANDROID_GSTREAMER_PATH}/arm

# Reconfigure locale
RUN locale-gen en_US.UTF-8 && dpkg-reconfigure locales
Expand Down

0 comments on commit b18a2bb

Please sign in to comment.