GithubHelp home page GithubHelp logo

docker-android-studio's Introduction

docker-android-studio

Android Studio in a non-privileged docker container running as a X11 window.

Things That Work

  • Android Studio IntelliJ IDE
  • Android emulator (hardware acceleration, sound, keyboard input)
    • Requires KVM
    • Requires PulseAudio running on the host for sound
    • Hardware acceleration using OpenGL via /dev/dri

Not Yet Tested

  • Plugging in an Android phone via USB

Using

Building

The current user id, current group id and KVM group id is baked into the container. Running the container as more than one user isn't supported. Note that on some systems the KVM group id is dynamic and changes on boot which means the container will have to be rebuilt.

  docker-android-studio$ bin/build

Running

  • Either create a file called .env (in the same directory as the Dockerfile) or export the following environment variables:
Name Description Container Volume Example
DATA_DIR Directory containing android projects /data $HOME/AndroidStudioProjects
STUDIO_DIR Directory to store persistent data such as Android SDK and Android Emulator files /var/studio $HOME/.android-dev
  docker-android-studio$ bin/start

First Run

A wizard appears the first time the studio is run.

  1. Complete Installation: Do not import settings
  2. Welcome: (next)
  3. Install Type: Custom
  4. SDK Components Setup: Select what's required and change the Android SDK Location to: /var/studio/Android/Sdk
  5. Verify Settings: (next)
  6. Emulator Settings: (finish)

Config

The following files can be placed in the config/ directory to be included in the image:

  • idea.properties
  • studio64.vmoptions

ToDo

  • dbus errors when running Android Emulator.
  • The package xserver-xorg-input-void pulls in a dependency which might change keyboard layout on the host system.

docker-android-studio's People

Contributors

literatesnow avatar

Watchers

 avatar

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.