h1. Build the Android Development Tools for Eclipse (ADT) with Replicant 4.2 h2. Principle of operation The [[ReplicantSourceCode|Android 4.2 source code]] ships a @sdk/eclipse/@ directory with ADT build scripts. The build script will also download Eclipse 3.6.2 files as build dependencies. Note: as of 2015-07, ADT is "deprecated":http://android-developers.blogspot.fr/2015/06/an-update-on-eclipse-android-developer.html in favor of Android Studio, based on IntelliJ. h2. Recreate matching build environment Replicant 4.2 is based on CyanogenMod 10.1 which is based on AOSP 4.2.2, released 2013-02. The build environment used by NDK release managers should be Ubuntu LTS 10.04. To recreate it easily with LXC, follow: * [[BuildEnvironments#Trisquel-41-Taranis-based-on-Ubuntu-1004-Lucid-with-LXC|Trisquel 4.1 Taranis (based on Ubuntu 10.04) with LXC]] * [[BuildEnvironments#Non-privileged-user-setup|Non-privileged user setup]] h2. Build dependencies
# Based on https://web.archive.org/web/20121201011547/http://source.android.com/source/initializing.html
# git recompiled manually, mingw32 dropped
apt-get install gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
  x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
  libgl1-mesa-dev g++-multilib python-markdown \
  libxml2-utils xsltproc
apt-get install openjdk-6-jdk libasm-java
h2. Preparing the sources Based on [[ReplicantSourceCode]] with additional configuration. Login as user @replicant@ and:
mkdir ~/tools/
cd ~/tools/
wget http://commondatastorage.googleapis.com/git-repo-downloads/repo
chmod a+x repo
cd ~

# Avoid prompts
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git config --global color.ui true

mkdir replicant-4.2/
cd replicant-4.2/
../tools/repo init -u git://git.replicant.us/manifest.git -b replicant-4.2
../tools/repo sync -j4 
# > 1h, 27GB (inc. 17GB .repo)
h2. Building ADT 21
. build/envsetup.sh
cd sdk/eclipse/

# Complies with setup_eclipse.sh and fix download URL
sudo mkdir -p /buildbot/eclipse-android
sudo chown replicant /buildbot/eclipse-android
sed -i -e '/eclipse-rcp-helios-SR2/ s/download.eclipse.org/archive.eclipse.org/' \
  scripts/setup_eclipse.sh
# Note: I tried with 'apt-get install eclipse-rcp eclipse-pde' and ECLIPSE_HOME=/usr/lib/eclipse
# but it lacks org.eclipse.wst.* plugins aka eclipse-wtp-xmltools

mkdir ~/adt/
scripts/build_server.sh ~/adt
# 15mn with 4 cores, 32GB (inc. 17GB .repo)
The ADK release is in @~/adt/android-eclipse-v201507252158.zip@ :) h2. Signing ADT By default, Eclipse display on install:
Warning: You are installing software that contains unsigned content.
The authenticity or validity of this software cannot be established. Do
you want to continue with the installation?
Let's sign the package. Make sure you have @keytool@ (@openjdk-6-jre-headless@) and @jarsigner@ (@openjdk-6-jdk@), and:
# generate self-signed certificate
keytool -genkey -dname 'cn=Builder,ou=ADT,o=Replicant,c=FR' -keystore ~/adt/cacerts -validity 3650 -storepass 'changeme' -keypass 'changeme' -alias 'replicant'
# sign the JARs and repack
unzip -d t/ android-eclipse-v201507261317.zip
find t/features/ t/plugins/ -name "*.jar" -exec jarsigner -keystore ~/adt/cacerts -storepass 'changeme' -verbose {} 'replicant' \;
(cd t/ && zip -r ../android-eclipse-v201507261317.zip *)
rm -rf t/
At install time, Eclipse will ask the user if she trusts "Builder; ADT; Replicant". h2. Testing See the nice Eclipse tutorial at [[SDK#Usage-guides]]. h2. TODOs * Note: partial incompatibility in Eclipse 3.8.1, in the layout edition view. Needs testing with an older Eclipse:
This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in
ADT 21 should work with 3.6.2 (used for compilation) and possibly with 3.7 (to be tested). * Do we rely on prebuilt/prebuilts dirs?