org.safs.android.auto.lib
Class AndroidTools

java.lang.Object
  extended by org.safs.android.auto.lib.ConsoleTool
      extended by org.safs.android.auto.lib.AndroidTools

public class AndroidTools
extends ConsoleTool


Field Summary
static java.lang.String ANDROID_HOME_ENV_VAR
          "ANDROID_HOME"
static java.lang.String ANDROID_HOME_SYS_PROP
          "android-home" as in VM argument "-Dandroid-home=..."
static java.lang.String ANDROID_SDK_AAPT_TOOL_UNX
          "aapt"
static java.lang.String ANDROID_SDK_AAPT_TOOL_WIN
          "aapt.exe"
static java.lang.String ANDROID_SDK_ADB_TOOL_UNX
          "adb"
static java.lang.String ANDROID_SDK_ADB_TOOL_WIN
          "adb.exe"
static java.lang.String ANDROID_SDK_AIDL_TOOL_UNX
          "aidl"
static java.lang.String ANDROID_SDK_AIDL_TOOL_WIN
          "aidl.exe"
static java.lang.String ANDROID_SDK_APKBUILDER_TOOL_UNX
          "apkbuilder"
static java.lang.String ANDROID_SDK_APKBUILDER_TOOL_WIN
          "apkbuilder.bat"
static java.lang.String ANDROID_SDK_DDMS_TOOL_UNX
          "ddms"
static java.lang.String ANDROID_SDK_DDMS_TOOL_WIN
          "ddms.bat"
static java.lang.String ANDROID_SDK_DMTRACEDUMP_TOOL_UNX
          "dmtracedump"
static java.lang.String ANDROID_SDK_DMTRACEDUMP_TOOL_WIN
          "dmtracedump.exe"
static java.lang.String ANDROID_SDK_DX_TOOL_UNX
          "dx"
static java.lang.String ANDROID_SDK_DX_TOOL_WIN
          "dx.bat"
static java.lang.String ANDROID_SDK_EMULATOR_TOOL_UNX
          "emulator"
static java.lang.String ANDROID_SDK_EMULATOR_TOOL_WIN
          "emulator.exe"
static java.lang.String ANDROID_SDK_ENV_VAR
          "ANDROID_SDK"
static java.lang.String ANDROID_SDK_MKSDCARD_TOOL_UNX
          "mksdcard"
static java.lang.String ANDROID_SDK_MKSDCARD_TOOL_WIN
          "mksdcard.exe"
static java.lang.String ANDROID_SDK_NEW_TOOLS_DIR
          "platform-tools" subdirectory in Android SDK
static java.lang.String ANDROID_SDK_OLD_TOOLS_DIR
          "tools" subdirectory in Android SDK
static java.lang.String ANDROID_SDK_SQLITE3_TOOL_UNX
          "sqlite3"
static java.lang.String ANDROID_SDK_SQLITE3_TOOL_WIN
          "sqlite3.exe"
static java.lang.String ANDROID_SDK_TRACEVIEW_TOOL_UNX
          "traceview"
static java.lang.String ANDROID_SDK_TRACEVIEW_TOOL_WIN
          "traceview.bat"
 
Fields inherited from class org.safs.android.auto.lib.ConsoleTool
binDirectories, console
 
Method Summary
 Process2 aapt(java.util.List<java.lang.String> args)
           
 Process2 aapt(java.lang.String... args)
           
 Process2 adb(java.util.List<java.lang.String> args)
           
 Process2 adb(java.lang.String... args)
           
 Process2 aidl(java.util.List<java.lang.String> args)
           
 Process2 aidl(java.lang.String... args)
           
 Process2 apkBuilder(java.util.List<java.lang.String> args)
           
 Process2 apkBuilder(java.lang.String... args)
           
 Process2 ddms(java.util.List<java.lang.String> args)
           
 Process2 ddms(java.lang.String... args)
           
 Process2 dmtracedump(java.util.List<java.lang.String> args)
           
 Process2 dmtracedump(java.lang.String... args)
           
 Process2 dx(java.util.List<java.lang.String> args)
           
 Process2 dx(java.lang.String... args)
           
 Process2 emulator(java.util.List<java.lang.String> args)
           
 Process2 emulator(java.lang.String... args)
           
static AndroidTools get()
          TODO Do we need to keep this tool as a singleton? If different users call ConsoleTool.setToolHome(String) to set different tool-path, problem!!!
But on one machine, it is rarely that user has different path for one tool.
protected  java.util.List<java.lang.String> getToolHomeEnvs()
          called internally to get the list of environment variable names to search for the Android SDK home directory.
protected  java.util.List<java.lang.String> getToolHomeProperties()
          called internally to get the list (1) VM argument name to search for the Android SDK home directory.
 Process2 mksdcard(java.util.List<java.lang.String> args)
           
 Process2 mksdcard(java.lang.String... args)
           
protected  void modifyBinDirectories()
          called internally to set the List of tools directories to search for tools.
 void setAndroidHome(java.lang.String androidHome)
          Deprecated.  
 Process2 sqlite3(java.util.List<java.lang.String> args)
           
 Process2 sqlite3(java.lang.String... args)
           
 Process2 traceview(java.util.List<java.lang.String> args)
           
 Process2 traceview(java.lang.String... args)
           
 
Methods inherited from class org.safs.android.auto.lib.ConsoleTool
batch, batch, batch, exec, exec, exec, exec, getBinDirectories, getOsFamilyName, getToolHome, isUnixOS, isWindowsOS, locateTool, setToolHome
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ANDROID_HOME_ENV_VAR

public static final java.lang.String ANDROID_HOME_ENV_VAR
"ANDROID_HOME"

See Also:
Constant Field Values

ANDROID_SDK_ENV_VAR

public static final java.lang.String ANDROID_SDK_ENV_VAR
"ANDROID_SDK"

See Also:
Constant Field Values

ANDROID_HOME_SYS_PROP

public static final java.lang.String ANDROID_HOME_SYS_PROP
"android-home" as in VM argument "-Dandroid-home=..."

See Also:
Constant Field Values

ANDROID_SDK_OLD_TOOLS_DIR

public static final java.lang.String ANDROID_SDK_OLD_TOOLS_DIR
"tools" subdirectory in Android SDK

See Also:
Constant Field Values

ANDROID_SDK_NEW_TOOLS_DIR

public static final java.lang.String ANDROID_SDK_NEW_TOOLS_DIR
"platform-tools" subdirectory in Android SDK

See Also:
Constant Field Values

ANDROID_SDK_AAPT_TOOL_WIN

public static final java.lang.String ANDROID_SDK_AAPT_TOOL_WIN
"aapt.exe"

See Also:
Constant Field Values

ANDROID_SDK_AAPT_TOOL_UNX

public static final java.lang.String ANDROID_SDK_AAPT_TOOL_UNX
"aapt"

See Also:
Constant Field Values

ANDROID_SDK_AIDL_TOOL_WIN

public static final java.lang.String ANDROID_SDK_AIDL_TOOL_WIN
"aidl.exe"

See Also:
Constant Field Values

ANDROID_SDK_AIDL_TOOL_UNX

public static final java.lang.String ANDROID_SDK_AIDL_TOOL_UNX
"aidl"

See Also:
Constant Field Values

ANDROID_SDK_APKBUILDER_TOOL_WIN

public static final java.lang.String ANDROID_SDK_APKBUILDER_TOOL_WIN
"apkbuilder.bat"

See Also:
Constant Field Values

ANDROID_SDK_APKBUILDER_TOOL_UNX

public static final java.lang.String ANDROID_SDK_APKBUILDER_TOOL_UNX
"apkbuilder"

See Also:
Constant Field Values

ANDROID_SDK_ADB_TOOL_WIN

public static final java.lang.String ANDROID_SDK_ADB_TOOL_WIN
"adb.exe"

See Also:
Constant Field Values

ANDROID_SDK_ADB_TOOL_UNX

public static final java.lang.String ANDROID_SDK_ADB_TOOL_UNX
"adb"

See Also:
Constant Field Values

ANDROID_SDK_DDMS_TOOL_WIN

public static final java.lang.String ANDROID_SDK_DDMS_TOOL_WIN
"ddms.bat"

See Also:
Constant Field Values

ANDROID_SDK_DDMS_TOOL_UNX

public static final java.lang.String ANDROID_SDK_DDMS_TOOL_UNX
"ddms"

See Also:
Constant Field Values

ANDROID_SDK_DMTRACEDUMP_TOOL_WIN

public static final java.lang.String ANDROID_SDK_DMTRACEDUMP_TOOL_WIN
"dmtracedump.exe"

See Also:
Constant Field Values

ANDROID_SDK_DMTRACEDUMP_TOOL_UNX

public static final java.lang.String ANDROID_SDK_DMTRACEDUMP_TOOL_UNX
"dmtracedump"

See Also:
Constant Field Values

ANDROID_SDK_DX_TOOL_WIN

public static final java.lang.String ANDROID_SDK_DX_TOOL_WIN
"dx.bat"

See Also:
Constant Field Values

ANDROID_SDK_DX_TOOL_UNX

public static final java.lang.String ANDROID_SDK_DX_TOOL_UNX
"dx"

See Also:
Constant Field Values

ANDROID_SDK_EMULATOR_TOOL_WIN

public static final java.lang.String ANDROID_SDK_EMULATOR_TOOL_WIN
"emulator.exe"

See Also:
Constant Field Values

ANDROID_SDK_EMULATOR_TOOL_UNX

public static final java.lang.String ANDROID_SDK_EMULATOR_TOOL_UNX
"emulator"

See Also:
Constant Field Values

ANDROID_SDK_MKSDCARD_TOOL_WIN

public static final java.lang.String ANDROID_SDK_MKSDCARD_TOOL_WIN
"mksdcard.exe"

See Also:
Constant Field Values

ANDROID_SDK_MKSDCARD_TOOL_UNX

public static final java.lang.String ANDROID_SDK_MKSDCARD_TOOL_UNX
"mksdcard"

See Also:
Constant Field Values

ANDROID_SDK_SQLITE3_TOOL_WIN

public static final java.lang.String ANDROID_SDK_SQLITE3_TOOL_WIN
"sqlite3.exe"

See Also:
Constant Field Values

ANDROID_SDK_SQLITE3_TOOL_UNX

public static final java.lang.String ANDROID_SDK_SQLITE3_TOOL_UNX
"sqlite3"

See Also:
Constant Field Values

ANDROID_SDK_TRACEVIEW_TOOL_WIN

public static final java.lang.String ANDROID_SDK_TRACEVIEW_TOOL_WIN
"traceview.bat"

See Also:
Constant Field Values

ANDROID_SDK_TRACEVIEW_TOOL_UNX

public static final java.lang.String ANDROID_SDK_TRACEVIEW_TOOL_UNX
"traceview"

See Also:
Constant Field Values
Method Detail

get

public static AndroidTools get()
TODO Do we need to keep this tool as a singleton? If different users call ConsoleTool.setToolHome(String) to set different tool-path, problem!!!
But on one machine, it is rarely that user has different path for one tool. Different version?

Returns:

modifyBinDirectories

protected void modifyBinDirectories()
called internally to set the List of tools directories to search for tools.

Specified by:
modifyBinDirectories in class ConsoleTool
See Also:
ANDROID_SDK_OLD_TOOLS_DIR, ANDROID_SDK_NEW_TOOLS_DIR

getToolHomeProperties

protected java.util.List<java.lang.String> getToolHomeProperties()
called internally to get the list (1) VM argument name to search for the Android SDK home directory.

Overrides:
getToolHomeProperties in class ConsoleTool
Returns:
A list of 'system property name', where the 'tool home' may be stored.
See Also:
ANDROID_HOME_SYS_PROP

getToolHomeEnvs

protected java.util.List<java.lang.String> getToolHomeEnvs()
called internally to get the list of environment variable names to search for the Android SDK home directory.

Overrides:
getToolHomeEnvs in class ConsoleTool
Returns:
A list of 'environment variable name', where the 'tool home' may be stored.
See Also:
ANDROID_HOME_ENV_VAR, ANDROID_SDK_ENV_VAR

setAndroidHome

public void setAndroidHome(java.lang.String androidHome)
Deprecated. 

If you are sure about the tool's home, you can set it.
Because if you set it, ConsoleTool.getToolHome() will not try to get the tool's home
from "JVM properties" or "System environment variables"
This method is deprecated, please use ConsoleTool.setToolHome(String) instead.

Parameters:
toolHome -
See Also:
ConsoleTool.getToolHome(), ConsoleTool.setToolHome(String)

aapt

public Process2 aapt(java.lang.String... args)
              throws java.io.IOException
Throws:
java.io.IOException

aapt

public Process2 aapt(java.util.List<java.lang.String> args)
              throws java.io.IOException
Throws:
java.io.IOException

aidl

public Process2 aidl(java.lang.String... args)
              throws java.io.IOException
Throws:
java.io.IOException

aidl

public Process2 aidl(java.util.List<java.lang.String> args)
              throws java.io.IOException
Throws:
java.io.IOException

apkBuilder

public Process2 apkBuilder(java.lang.String... args)
                    throws java.io.IOException
Throws:
java.io.IOException

apkBuilder

public Process2 apkBuilder(java.util.List<java.lang.String> args)
                    throws java.io.IOException
Throws:
java.io.IOException

adb

public Process2 adb(java.lang.String... args)
             throws java.io.IOException
Throws:
java.io.IOException

adb

public Process2 adb(java.util.List<java.lang.String> args)
             throws java.io.IOException
Throws:
java.io.IOException

ddms

public Process2 ddms(java.lang.String... args)
              throws java.io.IOException
Throws:
java.io.IOException

ddms

public Process2 ddms(java.util.List<java.lang.String> args)
              throws java.io.IOException
Throws:
java.io.IOException

dmtracedump

public Process2 dmtracedump(java.lang.String... args)
                     throws java.io.IOException
Throws:
java.io.IOException

dmtracedump

public Process2 dmtracedump(java.util.List<java.lang.String> args)
                     throws java.io.IOException
Throws:
java.io.IOException

dx

public Process2 dx(java.lang.String... args)
            throws java.io.IOException
Throws:
java.io.IOException

dx

public Process2 dx(java.util.List<java.lang.String> args)
            throws java.io.IOException
Throws:
java.io.IOException

emulator

public Process2 emulator(java.lang.String... args)
                  throws java.io.IOException
Throws:
java.io.IOException

emulator

public Process2 emulator(java.util.List<java.lang.String> args)
                  throws java.io.IOException
Throws:
java.io.IOException

mksdcard

public Process2 mksdcard(java.lang.String... args)
                  throws java.io.IOException
Throws:
java.io.IOException

mksdcard

public Process2 mksdcard(java.util.List<java.lang.String> args)
                  throws java.io.IOException
Throws:
java.io.IOException

sqlite3

public Process2 sqlite3(java.lang.String... args)
                 throws java.io.IOException
Throws:
java.io.IOException

sqlite3

public Process2 sqlite3(java.util.List<java.lang.String> args)
                 throws java.io.IOException
Throws:
java.io.IOException

traceview

public Process2 traceview(java.lang.String... args)
                   throws java.io.IOException
Throws:
java.io.IOException

traceview

public Process2 traceview(java.util.List<java.lang.String> args)
                   throws java.io.IOException
Throws:
java.io.IOException