Giter Club home page Giter Club logo

stand's Introduction

Standalone Toolchain for Android NDK in Docker

Or stand for short, is different versions of the Android NDK packaged in a container as a standalone toolchain.

The Android NDK is a bit of a beast sizewise, since it comes batteries included, bundling all architectures and a range of platforms for each release.

At the time of writing, the current release, r16, weighs in at 800M/2.9G zipped and unzipped respectively.

Typically you might only need a single platform version for a single architecture, so lugging all that extra stuff along is a bit excessive.

With a stand container, only a single specific toolchain for a platform and architecture is bundled, saving some much valued space and bandwidth.

Versioning

Each version is tagged according to the following naming convention:

rhardih/stand:<ndk>--<platform>--<toolchain>

The double dash is a bit of an eyesore, but since docker tags can only contain underscores, periods and dashes as special characters, and since toolchain names contain a mix of all three, this is a necessary evil.

E.g. to pull an arm container for platform android-21 from the r10e NDK:

docker pull rhardih/stand:r10e--android-21--arm-linux-androideabi-4.9

In the container, the toolchain is located at the root, e.g.:

/android-21-toolchain

Android platform api level

Code name Version API level
Pie 9 API level 28
Oreo 8.1.0 API level 27
Oreo 8.0.0 API level 26
Nougat 7.1 API level 25
Nougat 7.0 API level 24
Marshmallow 6.0 API level 23
Lollipop 5.1 API level 22
Lollipop 5.0 API level 21

E.g. android-21, is the platform to choose for building for Android 5.0.

The full list can be found here:

https://source.android.com/setup/start/build-numbers

By

In case a certain combination of NDK version, platform version and toolchain is not currently available on Docker Hub, you can use this small companion site, to trigger a new build:

standby.rhardih.io

It's a small Sinatra application deployed to Heroku. Source available at by.

Once you've triggered a build, go grab a cup of coffee and wait till Travis is done building and subsequently pushing the new image to Docker Hub.

Check the tags on https://hub.docker.com/r/rhardih/stand/tags after the build is done.

If all went well, the new image should be tagged and listed amongst the others.

Profit!

Disclaimer

Please note that the use the Android NDK is subject to the Terms and Conditions laid forth by Google. For the full text, please see:

https://developer.android.com/ndk/downloads/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.