Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create portable android development environment

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.

like image 291
Thomas Kaliakos Avatar asked May 30 '12 21:05

Thomas Kaliakos


People also ask

Can I install Android Studio in 4GB RAM?

Minimum space and configuration requirements: Officially android studio requires a minimum of 4GB RAM but 8GB RAM is recommended for it. It also requires a minimum of 2GB Disk Space but 4GB Disk Space is recommended for it. But these are the minimum requirements.

Is Android portable?

AS (Android Studio) itself is portable, however the JDK (Java Development Kit) which is required to run AS, is not. So you still need to install JDK on each computer you use. To set up gradle for offline, go to: File > Settings > Build, Execution, Deployment > Gradle then check Offline Work .


2 Answers

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

  1. Unzip the bundle
  2. 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
  3. 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!

like image 200
Ben Jakuben Avatar answered Nov 15 '22 20:11

Ben Jakuben


If your willing to use linux you could use a portable operating system on your flash drive with all your settings and programs exactly how you like them on any computer with a usb drive. Or use a live cd and save to another location. I dont know how you could do it with windows

like image 39
ghostbust555 Avatar answered Nov 15 '22 19:11

ghostbust555