Menu

SDK_Build_Environment_for_Android_Platform

SDK Build Environment for Android Platform

This page discusses how to build the Magic Lantern SDK for Android platforms using Android Studio on an Apple Macintosh or Ubuntu 14.04 LTS host development platform.

Note: This technique is currently under development and extremely volatile.

Dependencies

This section identifies dependencies for building the Magic Lantern SDK.

  1. Google's Android Studio, version 2.1.2 (see [Android Studio Installation] for more details).
  2. Oracle Java Development Kit (JDK), version 1.8.0_91 Required by Android Studio (download from http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html).
  3. Python, version 2.7.6

Assumptions

These instructions assume the following:

  • The dependencies above are installed in their default locations.
  • You already know how to use the Android Studio IDE.
  • You already know how to administer an Apple Macintosh or Ubuntu Linux machine.

Download Source

The source for the Android Studio projects are currently located on Github under the Magic Lantern Studio organization (https://github.com/magic-lantern-android-studio).

Create a Project Directory

In a console window, create a project directory:

$ mkdir ~/MagicLantern

Note: "~" is your home directory (e.g. /home/msm).

Retrieve Source Using Git

In a console window, clone the git repositories from Github:

$ cd ~/MagicLantern
$ git clone https://github.com/magic-lantern-android-studio/core-math.git
$ git clone https://github.com/magic-lantern-android-studio/core-runtime.git
$ git clone https://github.com/magic-lantern-android-studio/parts-base.git
$ git clone https://github.com/magic-lantern-android-studio/parts-actors.git
$ git clone https://github.com/magic-lantern-android-studio/parts-roles.git
$ git clone https://github.com/magic-lantern-android-studio/parts-sets.git
$ git clone https://github.com/magic-lantern-android-studio/parts-stages.git
$ git clone https://github.com/magic-lantern-android-studio/parts-mrefs.git
$ git clone https://github.com/magic-lantern-android-studio/parts-props.git
$ git clone https://github.com/magic-lantern-android-studio/titles-imagetest.git
$ git clone https://github.com/magic-lantern-android-studio/mle-tools.git

You should now have eleven Android Studio projects located in

Project Description
~/MagicLantern/core-math Magic Lantern Math utility library
~/MagicLantern/core-runtime Magic Lantern Runtime Engine library
~/MagicLantern/parts-base Magic Lantern Parts support library
~/MagicLantern/parts-actors Magic Lantern Actors library
~/MagicLantern/parts-roles Magic Lantern Roles library
~/MagicLantern/parts-sets Magic Lantern Sets library
~/MagicLantern/parts-stages Magic Lantern Stages library
~/MagicLantern/parts-mrefs Magic Lantern Media Reference library
~/MagicLantern/parts-props Magic Lantern Properties library
~/MagicLantern/titles-imagetest Magic Lantern Image Test application
~/MagicLantern/mle-tools Magic Lantern Tools

Retrieve source using repo

Alternatively, you can use the "repo" tool from Google (see [repo Installation Instructions]) to download the source.

$ cd ~/MagicLantern
$ repo init -u https://github.com/magic-lantern-android-studio/mle-tools.git
$ repo sync

Build Core Math utility library

To build the Magic Lantern Core Math library, mlmath.jar, open the existing Android Studio project found at "~/MagicLantern/core-math". In the Android Studio launch screen, select "Open an existing Android Studio project". In the "Open File or Project" dialog panel, navigate to "~/MagicLantern/core-math" directory and select "OK". This will bring up the main Android Studio IDE, showing the "core-math" project in the "Project" window (you may need to expand this Window to see the project. By default, the project should successfully build.

Note: You may need to install the build tools and sync the project before the build is successful. The "Messages Gradle Sync" window will display an Error if this is the case.

Export the jar by running the "exportJar" Gradle task. To do this, open the "Gradle" window and navigate to the "core-math->core-math->Tasks->other" folder. There you should see an "exportJar" task; run the task by selecting it (double-click). The mlmath.jar library will be created in the project's "app/release" directory.

Copy the mlmath.jar library to the other Magic Lantern projects that are dependent upon it. This can be done by running the "~/MagicLantern/mle-tools/scripts/stagelibs.py" python script. Pass in the name of the project, core-math, to copy the jar library:

"~/MagicLantern/mle-tools/scripts/stagelibs.py core-math"

The output should look like:

Staging core-math...
    Updating parts-base
    Updating parts-props
    Updating parts-roles
    Updating parts-sets
    Updating parts-stages
    Updating parts-actors
    Updating titles-imagetest
    Updating titles-modeltest
    Updating titles-hellocube
    Updating titles-cubetest
...Done

Build Core Runtime Engine library

To build the Magic Lantern Core Runtime Engine library, mlwrt.jar, open the existing Android Studio project found at "~/MagicLantern/core-runtime". In the Android Studio launch screen, select "Open an existing Android Studio project". In the "Open File or Project" dialog panel, navigate to "~/MagicLantern/core-runtime" directory and select "OK". This will bring up the main Android Studio IDE, showing the "core-runtime" project in the "Project" window (you may need to expand this Window to see the project. By default, the project should successfully build.

Note: You may need to install the build tools and sync the project before the build is successful. The "Messages Gradle Sync" window will display an Error if this is the case.

Export the jar by running the "exportJar" Gradle task. To do this, open the "Gradle" window and navigate to the "core-runtime->core-runtime->Tasks->other" folder. There you should see an "exportJar" task; run the task by selecting it (double-click). The mlert.jar library will be created in the project's "app/release" directory.

Copy the mlert.jar library to the other Magic Lantern projects that are dependent upon it. This can be done by running the "~/MagicLantern/mle-tools/scripts/stagelibs.py" python script. Pass in the name of the project, core-runtime, to copy the jar library:

"~/MagicLantern/mle-tools/scripts/stagelibs.py core-runtime"

The output should look like:

Staging core-runtime...
    Updating parts-actors
    Updating parts-base
    Updating parts-mrefs
    Updating parts-props
    Updating parts-roles
    Updating parts-sets
    Updating parts-stages
    Updating titles-imagetest
    Updating titles-modeltest
    Updating titles-hellocube
    Updating titles-cubetest
...Done

Build Application Framework Base library

To build the Magic Lantern Base library, parts.jar, open the existing Android Studio project found at "~/MagicLantern/parts-base". In the Android Studio launch screen, select "Open an existing Android Studio project". In the "Open File or Project" dialog panel, navigate to "~/MagicLantern/parts-base" directory and select "OK". This will bring up the main Android Studio IDE, showing the "parts-base" project in the "Project" window (you may need to expand this Window to see the project. By default, the project should successfully build.

Note: You may need to install the build tools and sync the project before the build is successful. The "Messages Gradle Sync" window will display an Error if this is the case.

Export the jar by running the "exportJar" Gradle task. To do this, open the "Gradle" window and navigate to the "parts-base->parts-base->Tasks->other" folder. There you should see an "exportJar" task; run the task by selecting it (double-click). The parts.jar library will be created in the project's "app/release" directory.

Copy the parts.jar library to the other Magic Lantern projects that are dependent upon it. This can be done by running the "~/MagicLantern/mle-tools/scripts/stagelibs.py" python script. Pass in the name of the project, parts-base, to copy the jar library:

"~/MagicLantern/mle-tools/scripts/stagelibs.py parts-base"

The output should look like:

Staging parts-base...
    Updating parts-actors
    Updating parts-mrefs
    Updating parts-props
    Updating parts-roles
    Updating parts-sets
    Updating parts-stages
    Updating titles-imagetest
    Updating titles-modeltest
    Updating titles-hellocube
    Updating titles-cubetest
    Updating test-min3d_01
    Updating test-min3d_02
...Done

Build Application Framework Media Reference library

To build the Magic Lantern Base library, mrefs.jar, open the existing Android Studio project found at "~/MagicLantern/parts-mrefs". In the Android Studio launch screen, select "Open an existing Android Studio project". In the "Open File or Project" dialog panel, navigate to "~/MagicLantern/parts-mrefs" directory and select "OK". This will bring up the main Android Studio IDE, showing the "parts-mrefs" project in the "Project" window (you may need to expand this Window to see the project. By default, the project should successfully build.

Note: You may need to install the build tools and sync the project before the build is successful. The "Messages Gradle Sync" window will display an Error if this is the case.

Export the jar by running the "exportJar" Gradle task. To do this, open the "Gradle" window and navigate to the "parts-mrefs->parts-mrefs->Tasks->other" folder. There you should see an "exportJar" task; run the task by selecting it (double-click). The mrefs.jar library will be created in the project's "app/release" directory.

Copy the mrefs.jar library to the other Magic Lantern projects that are dependent upon it. This can be done by running the "~/MagicLantern/mle-tools/scripts/stagelibs.py" python script. Pass in the name of the project, parts-mrefs, to copy the jar library:

"~/MagicLantern/mle-tools/scripts/stagelibs.py parts-mrefs"

The output should look like:

Staging parts-mrefs...
    Updating parts-actors
    Updating parts-roles
    Updating titles-imagetest
    Updating titles-modeltest
    Updating titles-hellocube
    Updating titles-cubetest
...Done

Build Application Framework Roles library

To build the Magic Lantern Base library, roles.jar, open the existing Android Studio project found at "~/MagicLantern/parts-roles". In the Android Studio launch screen, select "Open an existing Android Studio project". In the "Open File or Project" dialog panel, navigate to "~/MagicLantern/parts-roles" directory and select "OK". This will bring up the main Android Studio IDE, showing the "parts-roles" project in the "Project" window (you may need to expand this Window to see the project. By default, the project should successfully build.

Note: You may need to install the build tools and sync the project before the build is successful. The "Messages Gradle Sync" window will display an Error if this is the case.

Export the jar by running the "exportJar" Gradle task. To do this, open the "Gradle" window and navigate to the "parts-roles->parts-roles->Tasks->other" folder. There you should see an "exportJar" task; run the task by selecting it (double-click). The roles.jar library will be created in the project's "app/release" directory.

Copy the roles.jar library to the other Magic Lantern projects that are dependent upon it. This can be done by running the "~/MagicLantern/mle-tools/scripts/stagelibs.py" python script. Pass in the name of the project, parts-roles, to copy the jar library:

"~/MagicLantern/mle-tools/scripts/stagelibs.py parts-roles"

The output should look like:

Staging parts-roles...
    Updating parts-props
    Updating parts-sets
    Updating titles-imagetest
    Updating titles-modeltest
    Updating titles-hellocube
    Updating titles-cubetest
...Done

Build Application Framework Props library

To build the Magic Lantern Base library, props.jar, open the existing Android Studio project found at "~/MagicLantern/parts-props". In the Android Studio launch screen, select "Open an existing Android Studio project". In the "Open File or Project" dialog panel, navigate to "~/MagicLantern/parts-props" directory and select "OK". This will bring up the main Android Studio IDE, showing the "parts-props" project in the "Project" window (you may need to expand this Window to see the project. By default, the project should successfully build.

Note: You may need to install the build tools and sync the project before the build is successful. The "Messages Gradle Sync" window will display an Error if this is the case.

Export the jar by running the "exportJar" Gradle task. To do this, open the "Gradle" window and navigate to the "parts-props->parts-props->Tasks->other" folder. There you should see an "exportJar" task; run the task by selecting it (double-click). The props.jar library will be created in the project's "app/release" directory.

Copy the props.jar library to the other Magic Lantern projects that are dependent upon it. This can be done by running the "~/MagicLantern/mle-tools/scripts/stagelibs.py" python script. Pass in the name of the project, parts-props, to copy the jar library:

"~/MagicLantern/mle-tools/scripts/stagelibs.py parts-props"

The output should look like:

Staging parts-props...
    Updating parts-actors
    Updating titles-imagetest
    Updating titles-modeltest
    Updating titles-hellocube
    Updating titles-cubetest
...Done

Build Application Framework Stages library

To build the Magic Lantern Base library, stages.jar, open the existing Android Studio project found at "~/MagicLantern/parts-stages". In the Android Studio launch screen, select "Open an existing Android Studio project". In the "Open File or Project" dialog panel, navigate to "~/MagicLantern/parts-stages" directory and select "OK". This will bring up the main Android Studio IDE, showing the "parts-stages" project in the "Project" window (you may need to expand this Window to see the project. By default, the project should successfully build.

Note: You may need to install the build tools and sync the project before the build is successful. The "Messages Gradle Sync" window will display an Error if this is the case.

Export the jar by running the "exportJar" Gradle task. To do this, open the "Gradle" window and navigate to the "parts-stages->parts-stages->Tasks->other" folder. There you should see an "exportJar" task; run the task by selecting it (double-click). The stages.jar library will be created in the project's "app/release" directory.

Copy the props.jar library to the other Magic Lantern projects that are dependent upon it. This can be done by running the "~/MagicLantern/mle-tools/scripts/stagelibs.py" python script. Pass in the name of the project, parts-stages, to copy the jar library:

"~/MagicLantern/mle-tools/scripts/stagelibs.py parts-stages"

The output should look like:

Staging parts-stages...
    Updating parts-sets
    Updating titles-imagetest
    Updating titles-modeltest
    Updating titles-hellocube
    Updating titles-cubetest
...Done

Build Application Framework Sets library

To build the Magic Lantern Base library, sets.jar, open the existing Android Studio project found at "~/MagicLantern/parts-sets". In the Android Studio launch screen, select "Open an existing Android Studio project". In the "Open File or Project" dialog panel, navigate to "~/MagicLantern/parts-sets" directory and select "OK". This will bring up the main Android Studio IDE, showing the "parts-sets" project in the "Project" window (you may need to expand this Window to see the project. By default, the project should successfully build.

Note: You may need to install the build tools and sync the project before the build is successful. The "Messages Gradle Sync" window will display an Error if this is the case.

Export the jar by running the "exportJar" Gradle task. To do this, open the "Gradle" window and navigate to the "parts-sets->parts-sets->Tasks->other" folder. There you should see an "exportJar" task; run the task by selecting it (double-click). The sets.jar library will be created in the project's "app/release" directory.

Copy the sets.jar library to the other Magic Lantern projects that are dependent upon it. This can be done by running the "~/MagicLantern/mle-tools/scripts/stagelibs.py" python script. Pass in the name of the project, parts-sets, to copy the jar library:

"~/MagicLantern/mle-tools/scripts/stagelibs.py parts-sets"

The output should look like:

Staging parts-sets...
    Updating titles-imagetest
    Updating titles-modeltest
    Updating titles-hellocube
    Updating titles-cubetest
...Done

Build Application Framework Actors library

To build the Magic Lantern Base library, actors.jar, open the existing Android Studio project found at "~/MagicLantern/parts-actors". In the Android Studio launch screen, select "Open an existing Android Studio project". In the "Open File or Project" dialog panel, navigate to "~/MagicLantern/parts-actors" directory and select "OK". This will bring up the main Android Studio IDE, showing the "parts-actors" project in the "Project" window (you may need to expand this Window to see the project. By default, the project should successfully build.

Note: You may need to install the build tools and sync the project before the build is successful. The "Messages Gradle Sync" window will display an Error if this is the case.

Export the jar by running the "exportJar" Gradle task. To do this, open the "Gradle" window and navigate to the "parts-actors->parts-actors->Tasks->other" folder. There you should see an "exportJar" task; run the task by selecting it (double-click). The actors.jar library will be created in the project's "app/release" directory.

Copy the props.jar library to the other Magic Lantern projects that are dependent upon it. This can be done by running the "~/MagicLantern/mle-tools/scripts/stagelibs.py" python script. Pass in the name of the project, parts-actors, to copy the jar library:

"~/MagicLantern/mle-tools/scripts/stagelibs.py parts-actors"

The output should look like:

Staging parts-actors...
    Updating titles-imagetest
    Updating titles-modeltest
    Updating titles-hellocube
    Updating titles-cubetest
...Done

Unit Tests


Test Applications

The Magic Lantern SDK provides several test applications or titles.


Related

Developer Wiki: Android Studio Installation
Developer Wiki: Cube Test Title for Android
Developer Wiki: Developer_Documentation
Developer Wiki: HelloCube Title for Android
Developer Wiki: Image Test Title for Android
Developer Wiki: Model Test Title for Android
Developer Wiki: repo Installation Instructions

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.