aboutsummaryrefslogtreecommitdiff
path: root/docs/howto_build_SDK.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/howto_build_SDK.txt')
-rw-r--r--docs/howto_build_SDK.txt235
1 files changed, 235 insertions, 0 deletions
diff --git a/docs/howto_build_SDK.txt b/docs/howto_build_SDK.txt
new file mode 100644
index 000000000..e8228ba33
--- /dev/null
+++ b/docs/howto_build_SDK.txt
@@ -0,0 +1,235 @@
+Copyright (C) 2009 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance 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 in writing, 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 License for the specific language governing permissions and
+limitations under the License.
+
+
+Subject: How to build an Android SDK & ADT Eclipse plugin.
+Date: 2009/03/27
+Updated: 2015/09/09
+
+
+Table of content:
+ 0- License
+ 1- Foreword
+ 2- Building an SDK for MacOS and Linux
+ 3- Building an SDK for Windows
+ 4- Building an ADT plugin for Eclipse
+ 5- Conclusion
+
+
+
+----------
+0- License
+----------
+
+ Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance 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 in writing, 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 License for the 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 designed for 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 for MacOS 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 for the 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 sync
+
+Then once you have all the source, simply build the SDK using:
+
+ $ cd ~/my-android-git
+ $ . build/envsetup.sh
+ $ lunch sdk-eng
+ $ make sdk
+
+This will take a while, maybe between 20 minutes and several hours depending on
+your machine. After a while you'll see this in the output:
+
+ Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>_mac-x86.zip
+
+Some options:
+
+- Depending on your machine you can tell 'make' to build more things in
+ parallel, 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
+ incorporated in the resulting archive. The default is to use your username.
+ One suggestion is to include the date, e.g.:
+
+ $ export BUILD_NUMBER=${USER}-`date +%Y%m%d-%H%M%S`
+
+ There are certain characters you should avoid in the build number, typically
+ everything that might confuse 'make' or your shell. So for example avoid
+ punctuation and characters like $ & : / \ < > , and .
+
+
+
+------------------------------
+3- Building an SDK for Windows
+------------------------------
+
+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 SDK for Windows, you need to use a *Linux* box.
+
+
+A- Pre-requisites
+-----------------
+
+Before you can even think of building the Android SDK for Windows, 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 install tofrodos
+
+tofrodos adds a unix2dos command
+
+
+B- Building
+-----------
+
+To build, perform the following steps:
+
+$ . build/envsetup.sh
+$ lunch sdk-eng
+$ make win_sdk
+
+Note that this will build both a Linux SDK then a 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:
+
+ $ make host_cross_adb
+
+Then the binaries are located at
+ out/host/windows-x86/bin/adb.exe
+
+
+-------------------------------------
+4- Building an ADT plugin for Eclipse
+-------------------------------------
+
+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 # <-- this is where you did your "repo sync"
+ $ sdk/eclipse/scripts/build_server.sh ~/mysdk $USER
+
+
+The first argument is the destination directory. It must be absolute. Do not
+give a relative destination directory such as "../mysdk" -- this would make the
+Eclipse build fail with a cryptic message:
+
+ BUILD SUCCESSFUL
+ Total time: 1 minute 5 seconds
+ **** 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 a free identifier of your choice. It cannot contain spaces nor
+periods (dashes are ok.) If the build number is missing, a build timestamp will
+be used instead in the filename.
+
+The build should take something like 5-10 minutes.
+
+
+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.zip
+or
+ ZIP of Update site available at ~/mysdk/android-eclipse-<buildnumber>.zip
+
+When you load the plugin in Eclipse, its feature and plugin name will look like
+"com.android.ide.eclipse.adt_0.9.0.v200903272328-<buildnumber>.jar". The
+internal plugin ID is always composed of the package, the build timestamp and
+then your own build identifier (a.k.a. the "build number"), if provided. This
+means successive builds with the same build identifier are incremental and
+Eclipse will know how to update to more recent 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-
+