diff options
Diffstat (limited to 'docs/howto_build_SDK.txt')
-rw-r--r-- | docs/howto_build_SDK.txt | 235 |
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- + |