Copyright (C) 2009The Android Open Source Project
Licensed under the Apache License, Version2.0 (the "License");
you may not use thisfile except incompliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to inwriting, software
distributed under the License is distributed on an"AS IS"BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the Licenseforthe specific language governing permissions and
limitations under the License.
Subject: How to build an Android SDK&ADT Eclipse plugin.
Date:2009/03/27Updated:2015/09/09Table of content:0-License1-Foreword2- Building an SDK forMacOS and Linux3- Building an SDK forWindows4- Building an ADT plugin forEclipse5-Conclusion----------
0-License----------Copyright (C)2009The Android Open Source Project
Licensed under the Apache License, Version2.0 (the "License");
you may not use thisfile except incompliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to inwriting, software
distributed under the License is distributed on an"AS IS"BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the Licenseforthe specific language governing permissions and
limitations under the License.-----------
1-Foreword-----------This document explains how to build the Android SDK and the ADT Eclipse plugin.
It is designedfor advanced users which are proficient with command-line
operations and know how to setup the pre-required software.
Basically it‘s not trivial yet when done right it‘s not that complicated.--------------------------------------
2- Building an SDK forMacOS and Linux--------------------------------------First, setup your development environment and get the Android source code from
git as explained here:
http://source.android.com/source/download.html
For example forthe cupcake branch:
$mkdir ~/my-android-git
$ cd~/my-android-git
$ repo init-u https://android.googlesource.com/platform/manifest -b master -g all,-notdefault,tools
$ repo syncThen once you have all the source, simply build the SDK using:
$ cd~/my-android-git
$ . build/envsetup.sh$ lunch sdk-eng
$makesdk
This will take awhile, maybe between 20minutes and several hours depending on
your machine. After awhile you‘ll see this in the output:
Package SDK: out/host/darwin-x86/sdk/android-sdk_eng._mac-x86.zipSome options:- Depending on your machine you can tell ‘make‘ to build more things inparallel, e.g.if you have a dual core, use "make -j4 sdk"to build faster.- You can define "BUILD_NUMBER"to control the build identifier that gets
incorporatedinthe resulting archive. The default is to use your username.
One suggestion is to include thedate, e.g.:
$ export BUILD_NUMBER=${USER}-`date +%Y%m%d-%H%M%S`
There are certain characters you should avoidinthe build number, typically
everything that might confuse‘make‘ or your shell. So forexample avoid
punctuation and characters like $& : / \ < >, and .------------------------------
3- Building an SDK forWindows------------------------------Full Windows SDK builds are now only supported on Linux--most of the
framework is not designed to be built on Windows so technically the Windows
SDK is build on top of a Linux SDK where a few binaries are replaced. So it
cannot be built on Windows, and it cannot be built on Mac, only on Linux.
I‘ll repeat this again because it‘s important:
To build the Android SDKfor Windows, you need to use a *Linux*box.
A- Pre-requisites-----------------Before you can even think of building the Android SDKforWindows, you need to
perform the steps from section"2- Building an SDK for MacOS and Linux"above:
setup and build a regular Linux SDK. Once this working, please continue here.
Under Ubuntu, you will need the following extra packages:
$sudo apt-get installtofrodos
tofrodos adds a unix2dos command
B-Building-----------To build, perform the following steps:
$ . build/envsetup.sh$ lunch sdk-eng
$makewin_sdk
Note that this will build both a Linux SDKthena Windows SDK.
The result is located at
out/host/windows/sdk/android-sdk_eng.${USER}_windows/C-Building just the tools--------------------------------------You can also build isolated windows tools directly on Linux without building
the full SDK.
To build, perform the following steps:
$ cd~/my-android-git
$ . build/envsetup.sh$ lunch sdk-eng
$make winsdk-tools
A specific tool can be built using:
$makehost_cross_adb
Then the binaries are located at
out/host/windows-x86/bin/adb.exe-------------------------------------
4- Building an ADT plugin forEclipse-------------------------------------We‘ve simplified the steps here.
It used to be that you‘d have to download a specific version of
Eclipse and install it at a special location. That‘s not needed
anymore.
Instead you just change directories to your git repository and invoke the
build script by giving it a destination directory and an optional build number:
$mkdir ~/mysdk
$ cd~/my-android-git #
The first argument is the destination directory. It must be absolute. Do not
give a relative destination directory such as"../mysdk" -- this would makethe
Eclipse build fail with a cryptic message:
BUILD SUCCESSFUL
Totaltime: 1 minute 5seconds**** Package in ../mysdk
Error: Build failed to produce ../mysdk/android-eclipse
Aborting
The second argument is the build"number". The example used "$USER"but it
really is afreeidentifier of your choice. It cannot contain spaces nor
periods (dashes are ok.) If the build number is missing, a build timestamp will
be used insteadinthe filename.
The build should take something like5-10minutes.
When the build succeeds, you‘ll see something like this at the end of the
output:
ZIP of Update site available at~/mysdk/android-eclipse-v200903272328.zipor
ZIP of Update site available at~/mysdk/android-eclipse-.zipWhen you load the plugininEclipse, its feature and plugin name will look like"com.android.ide.eclipse.adt_0.9.0.v200903272328-.jar". The
internal plugin ID is always composed of the package, the build timestamp andthen your own build identifier (a.k.a. the "build number"), ifprovided. This
means successive builds with the same build identifier are incremental and
Eclipse will know how to update tomorerecent ones.-------------
5-Conclusion-------------This completes the howto guide on building your own SDK and ADT plugin.
Feedback is welcome on the public Android Open Source forums:
http://source.android.com/discuss
If you are upgrading from a pre-cupcake to a cupcake or later SDK please read
the accompanying document"howto_use_cupcake_sdk.txt".-end-