Issue
I would like to have a portable android development environment that I could take everywhere (e.g. a usb stick). The idea is to have a folder that would include:
- eclipse
- android-sdk
- jdk
- .android (folder that contains the avd's and keys)
- workspace
I installed Eclipse 3.7.0, added ADT plugin and
- added option "-vm ../jdk/bin/" in eclipse.ini file
- set the eclipse android-sdk variable to a relative path (../android-sdk)
- set the eclipse workspace to a relative path
- set the eclipse key folder to a relative path
The question is how can you make the avd's portable? How can .android folder be portable? I saw some solutions mentioning the creation of an environment variable but I was thinking of a solution that works out of the box, or an ,as much as possible, automated procedure. The OS should be windows 7, but ideally should work on any version. Any help would be greatly appreciated. Thanks.
Solution
I think I found a way to do this on a Mac and Windows. I have tested both solutions on multiple computers, but not exhaustively.
I had basically the same approach as you, but the problem is that the relative path for the Android SDK in Eclipse breaks the AVD Manager for some reason. It wouldn't allow me to run existing or create new AVDs. I got around this by including an "initial_setup" script that is to be run one time to set the Android SDK based on where the user unzips this package. It also creates the initial AVD for them. So they download and unzip the package, run the initial_setup script, and are good to go with a default Android development environment.
The key is updating Eclipse ADT Plugin preferences to use the absolute path of the Android SDK. This is accomplished with this line from the script below. Note that the path for the preferences file is relative to the workspace (and the workspace path is set as relative to the Eclipse installation).
echo com.android.ide.eclipse.adt.sdk=$sdk_path >> ./workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.android.ide.eclipse.adt.prefs
Mac Instructions
Here's my unzipped directory structure:
android_dev_environment (root)
- android-sdk-macosx
- eclipse
- initial_setup
- workspace
And here are the contents of initial_setup:
#!/bin/bash
# Set the Android SDK path in Eclipse. Must be the absolute; a relative path
# does not work with the AVD Manager.
cd "$(dirname "$0")"
sdk_path=`pwd`/android-sdk-macosx
echo "Setting Android SDK path in Eclipse..."
echo com.android.ide.eclipse.adt.sdk=$sdk_path >> ./workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.android.ide.eclipse.adt.prefs
echo "Android SDK path set."
# Create a new AVD
echo "Creating new AVD..."
echo no | $sdk_path/tools/android create avd -n Android403 -t 1 --force
echo "AVD created."
Windows Instructions
Here's my unzipped directory structure:
android_dev_environment (root)
- android-sdk-windows
- eclipse
- initial_setup.bat
- java
- workspace
The Windows version has its own local JDK 6 in the java directory. Eclipse needs to know about it, so edit eclipse\eclipse.ini. Add the following lines above the -vmargs line:
-vm
..\Java\jdk1.6.0_33\bin\javaw.exe
And here are the contents of initial_setup.bat:
REM Set the Android SDK path in Eclipse. Must be the absolute; a relative path
REM does not work with the AVD Manager.
cd > temp.txt 2>&1
set /p sdk_path= < temp.txt
del temp.txt
set sdk_path=%sdk_path%\android-sdk-windows
set sdk_path=%sdk_path:\=\\%
set sdk_path=%sdk_path::=\:%
echo “Setting Android SDK path in Eclipse...”
echo com.android.ide.eclipse.adt.sdk=%sdk_path%>> .\workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings\com.android.ide.eclipse.adt.prefs
echo “Android SDK path set.”
REM Create a new AVD
echo “Creating a new AVD...”
echo no | .\android-sdk-windows\tools\android create avd -n Android403 -t 1 --force
echo “AVD created.”
pause
For 64 bit Windows you also need to tweak the find_java.bat file in the Android SDK so that it finds the Java installed with the bundle. Add the following lines to android-sdk-windows\tools\lib\find_java.bat (before it runs its own check that starts with the comment "rem Check we have a valid Java.exe..."
set java_exe=%~dp0\..\..\..\Java\jdk1.6.0_33\bin\java.exe
set javaw_exe=%~dp0\..\..\..\Java\jdk1.6.0_33\bin\javaw.exe
if defined javaw_exe goto :EOF
How to Use the Environment Bundle
- Unzip the bundle
- Double-click on initial_setup in the android_dev_environment folder to set the Android SDK path to the user’s absolute path and create the default AVD
- Run the Eclipse executable inside the eclipse directory
Note: Running initial_setup on a Mac or a PC multiple times does not hurt anything. The dev environment will break if the user moves the whole directory after initial_setup, but running initial_setup from the new location will fix it. I plan on including a README file with these instructions.
Hope this helps!
Answered By - Ben Jakuben
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.