Home | History | Annotate | Download | only in android
      1 /*
      2  * Copyright (C) 2007 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android;
     18 
     19 import java.io.File;
     20 
     21 /**
     22  * Constant definition class.<br>
     23  * <br>
     24  * Most constants have a prefix defining the content.
     25  * <ul>
     26  * <li><code>OS_</code> OS path constant. These paths are different depending on the platform.</li>
     27  * <li><code>FN_</code> File name constant.</li>
     28  * <li><code>FD_</code> Folder name constant.</li>
     29  * <li><code>TAG_</code> XML element tag name</li>
     30  * <li><code>ATTR_</code> XML attribute name</li>
     31  * <li><code>VALUE_</code> XML attribute value</li>
     32  * <li><code>CLASS_</code> Class name</li>
     33  * <li><code>DOT_</code> File name extension, including the dot </li>
     34  * <li><code>EXT_</code> File name extension, without the dot </li>
     35  * </ul>
     36  */
     37 @SuppressWarnings("javadoc") // Not documenting all the fields here
     38 public final class SdkConstants {
     39     public static final int PLATFORM_UNKNOWN = 0;
     40     public static final int PLATFORM_LINUX = 1;
     41     public static final int PLATFORM_WINDOWS = 2;
     42     public static final int PLATFORM_DARWIN = 3;
     43 
     44     /**
     45      * Returns current platform, one of {@link #PLATFORM_WINDOWS}, {@link #PLATFORM_DARWIN},
     46      * {@link #PLATFORM_LINUX} or {@link #PLATFORM_UNKNOWN}.
     47      */
     48     public static final int CURRENT_PLATFORM = currentPlatform();
     49 
     50     /**
     51      * Charset for the ini file handled by the SDK.
     52      */
     53     public static final String INI_CHARSET = "UTF-8";                                 //$NON-NLS-1$
     54 
     55     /** An SDK Project's AndroidManifest.xml file */
     56     public static final String FN_ANDROID_MANIFEST_XML= "AndroidManifest.xml";        //$NON-NLS-1$
     57     /** pre-dex jar filename. i.e. "classes.jar" */
     58     public static final String FN_CLASSES_JAR = "classes.jar";                        //$NON-NLS-1$
     59     /** Dex filename inside the APK. i.e. "classes.dex" */
     60     public static final String FN_APK_CLASSES_DEX = "classes.dex";                    //$NON-NLS-1$
     61 
     62     /** An SDK Project's build.xml file */
     63     public static final String FN_BUILD_XML = "build.xml";                            //$NON-NLS-1$
     64 
     65     /** Name of the framework library, i.e. "android.jar" */
     66     public static final String FN_FRAMEWORK_LIBRARY = "android.jar";                  //$NON-NLS-1$
     67     /** Name of the framework library, i.e. "uiautomator.jar" */
     68     public static final String FN_UI_AUTOMATOR_LIBRARY = "uiautomator.jar";           //$NON-NLS-1$
     69     /** Name of the layout attributes, i.e. "attrs.xml" */
     70     public static final String FN_ATTRS_XML = "attrs.xml";                            //$NON-NLS-1$
     71     /** Name of the layout attributes, i.e. "attrs_manifest.xml" */
     72     public static final String FN_ATTRS_MANIFEST_XML = "attrs_manifest.xml";          //$NON-NLS-1$
     73     /** framework aidl import file */
     74     public static final String FN_FRAMEWORK_AIDL = "framework.aidl";                  //$NON-NLS-1$
     75     /** framework renderscript folder */
     76     public static final String FN_FRAMEWORK_RENDERSCRIPT = "renderscript";            //$NON-NLS-1$
     77     /** framework include folder */
     78     public static final String FN_FRAMEWORK_INCLUDE = "include";                      //$NON-NLS-1$
     79     /** framework include (clang) folder */
     80     public static final String FN_FRAMEWORK_INCLUDE_CLANG = "clang-include";          //$NON-NLS-1$
     81     /** layoutlib.jar file */
     82     public static final String FN_LAYOUTLIB_JAR = "layoutlib.jar";                    //$NON-NLS-1$
     83     /** widget list file */
     84     public static final String FN_WIDGETS = "widgets.txt";                            //$NON-NLS-1$
     85     /** Intent activity actions list file */
     86     public static final String FN_INTENT_ACTIONS_ACTIVITY = "activity_actions.txt";   //$NON-NLS-1$
     87     /** Intent broadcast actions list file */
     88     public static final String FN_INTENT_ACTIONS_BROADCAST = "broadcast_actions.txt"; //$NON-NLS-1$
     89     /** Intent service actions list file */
     90     public static final String FN_INTENT_ACTIONS_SERVICE = "service_actions.txt";     //$NON-NLS-1$
     91     /** Intent category list file */
     92     public static final String FN_INTENT_CATEGORIES = "categories.txt";               //$NON-NLS-1$
     93 
     94     /** annotations support jar */
     95     public static final String FN_ANNOTATIONS_JAR = "annotations.jar";                //$NON-NLS-1$
     96 
     97     /** platform build property file */
     98     public static final String FN_BUILD_PROP = "build.prop";                          //$NON-NLS-1$
     99     /** plugin properties file */
    100     public static final String FN_PLUGIN_PROP = "plugin.prop";                        //$NON-NLS-1$
    101     /** add-on manifest file */
    102     public static final String FN_MANIFEST_INI = "manifest.ini";                      //$NON-NLS-1$
    103     /** add-on layout device XML file. */
    104     public static final String FN_DEVICES_XML = "devices.xml";                        //$NON-NLS-1$
    105     /** hardware properties definition file */
    106     public static final String FN_HARDWARE_INI = "hardware-properties.ini";           //$NON-NLS-1$
    107 
    108     /** project property file */
    109     public static final String FN_PROJECT_PROPERTIES = "project.properties";          //$NON-NLS-1$
    110 
    111     /** project local property file */
    112     public static final String FN_LOCAL_PROPERTIES = "local.properties";              //$NON-NLS-1$
    113 
    114     /** project ant property file */
    115     public static final String FN_ANT_PROPERTIES = "ant.properties";                  //$NON-NLS-1$
    116 
    117     /** Skin layout file */
    118     public static final String FN_SKIN_LAYOUT = "layout";                             //$NON-NLS-1$
    119 
    120     /** dx.jar file */
    121     public static final String FN_DX_JAR = "dx.jar";                                  //$NON-NLS-1$
    122 
    123     /** dx executable (with extension for the current OS) */
    124     public static final String FN_DX =
    125         "dx" + ext(".bat", "");                           //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    126 
    127     /** aapt executable (with extension for the current OS) */
    128     public static final String FN_AAPT =
    129         "aapt" + ext(".exe", "");                         //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    130 
    131     /** aidl executable (with extension for the current OS) */
    132     public static final String FN_AIDL =
    133         "aidl" + ext(".exe", "");                         //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    134 
    135     /** renderscript executable (with extension for the current OS) */
    136     public static final String FN_RENDERSCRIPT =
    137         "llvm-rs-cc" + ext(".exe", "");                   //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    138 
    139     /** adb executable (with extension for the current OS) */
    140     public static final String FN_ADB =
    141         "adb" + ext(".exe", "");                          //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    142 
    143     /** emulator executable for the current OS */
    144     public static final String FN_EMULATOR =
    145         "emulator" + ext(".exe", "");                     //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    146 
    147     /** zipalign executable (with extension for the current OS) */
    148     public static final String FN_ZIPALIGN =
    149         "zipalign" + ext(".exe", "");                     //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    150 
    151     /** dexdump executable (with extension for the current OS) */
    152     public static final String FN_DEXDUMP =
    153         "dexdump" + ext(".exe", "");                      //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    154 
    155     /** proguard executable (with extension for the current OS) */
    156     public static final String FN_PROGUARD =
    157         "proguard" + ext(".bat", ".sh");                  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    158 
    159     /** find_lock for Windows (with extension for the current OS) */
    160     public static final String FN_FIND_LOCK =
    161         "find_lock" + ext(".exe", "");                    //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    162 
    163     /** properties file for SDK Updater packages */
    164     public static final String FN_SOURCE_PROP = "source.properties";                  //$NON-NLS-1$
    165     /** properties file for content hash of installed packages */
    166     public static final String FN_CONTENT_HASH_PROP = "content_hash.properties";      //$NON-NLS-1$
    167     /** properties file for the SDK */
    168     public static final String FN_SDK_PROP = "sdk.properties";                        //$NON-NLS-1$
    169 
    170     /**
    171      * filename for gdbserver.
    172      */
    173     public static final String FN_GDBSERVER = "gdbserver";              //$NON-NLS-1$
    174 
    175     /** global Android proguard config file */
    176     public static final String FN_ANDROID_PROGUARD_FILE = "proguard-android.txt";   //$NON-NLS-1$
    177     /** global Android proguard config file with optimization enabled */
    178     public static final String FN_ANDROID_OPT_PROGUARD_FILE = "proguard-android-optimize.txt";  //$NON-NLS-1$
    179     /** default proguard config file with new file extension (for project specific stuff) */
    180     public static final String FN_PROJECT_PROGUARD_FILE = "proguard-project.txt";   //$NON-NLS-1$
    181 
    182     /* Folder Names for Android Projects . */
    183 
    184     /** Resources folder name, i.e. "res". */
    185     public static final String FD_RESOURCES = "res";                    //$NON-NLS-1$
    186     /** Assets folder name, i.e. "assets" */
    187     public static final String FD_ASSETS = "assets";                    //$NON-NLS-1$
    188     /** Default source folder name in an SDK project, i.e. "src".
    189      * <p/>
    190      * Note: this is not the same as {@link #FD_PKG_SOURCES}
    191      * which is an SDK sources folder for packages. */
    192     public static final String FD_SOURCES = "src";                      //$NON-NLS-1$
    193     /** Default generated source folder name, i.e. "gen" */
    194     public static final String FD_GEN_SOURCES = "gen";                  //$NON-NLS-1$
    195     /** Default native library folder name inside the project, i.e. "libs"
    196      * While the folder inside the .apk is "lib", we call that one libs because
    197      * that's what we use in ant for both .jar and .so and we need to make the 2 development ways
    198      * compatible. */
    199     public static final String FD_NATIVE_LIBS = "libs";                 //$NON-NLS-1$
    200     /** Native lib folder inside the APK: "lib" */
    201     public static final String FD_APK_NATIVE_LIBS = "lib";              //$NON-NLS-1$
    202     /** Default output folder name, i.e. "bin" */
    203     public static final String FD_OUTPUT = "bin";                       //$NON-NLS-1$
    204     /** Classes output folder name, i.e. "classes" */
    205     public static final String FD_CLASSES_OUTPUT = "classes";           //$NON-NLS-1$
    206     /** proguard output folder for mapping, etc.. files */
    207     public static final String FD_PROGUARD = "proguard";                //$NON-NLS-1$
    208     /** aidl output folder for copied aidl files */
    209     public static final String FD_AIDL = "aidl";                        //$NON-NLS-1$
    210 
    211     /* Folder Names for the Android SDK */
    212 
    213     /** Name of the SDK platforms folder. */
    214     public static final String FD_PLATFORMS = "platforms";              //$NON-NLS-1$
    215     /** Name of the SDK addons folder. */
    216     public static final String FD_ADDONS = "add-ons";                   //$NON-NLS-1$
    217     /** Name of the SDK system-images folder. */
    218     public static final String FD_SYSTEM_IMAGES = "system-images";      //$NON-NLS-1$
    219     /** Name of the SDK sources folder where source packages are installed.
    220      * <p/>
    221      * Note this is not the same as {@link #FD_SOURCES} which is the folder name where sources
    222      * are installed inside a project. */
    223     public static final String FD_PKG_SOURCES = "sources";              //$NON-NLS-1$
    224     /** Name of the SDK tools folder. */
    225     public static final String FD_TOOLS = "tools";                      //$NON-NLS-1$
    226     /** Name of the SDK tools/support folder. */
    227     public static final String FD_SUPPORT = "support";                  //$NON-NLS-1$
    228     /** Name of the SDK platform tools folder. */
    229     public static final String FD_PLATFORM_TOOLS = "platform-tools";    //$NON-NLS-1$
    230     /** Name of the SDK tools/lib folder. */
    231     public static final String FD_LIB = "lib";                          //$NON-NLS-1$
    232     /** Name of the SDK docs folder. */
    233     public static final String FD_DOCS = "docs";                        //$NON-NLS-1$
    234     /** Name of the doc folder containing API reference doc (javadoc) */
    235     public static final String FD_DOCS_REFERENCE = "reference";         //$NON-NLS-1$
    236     /** Name of the SDK images folder. */
    237     public static final String FD_IMAGES = "images";                    //$NON-NLS-1$
    238     /** Name of the ABI to support. */
    239     public static final String ABI_ARMEABI = "armeabi";                 //$NON-NLS-1$
    240     public static final String ABI_ARMEABI_V7A = "armeabi-v7a";         //$NON-NLS-1$
    241     public static final String ABI_INTEL_ATOM = "x86";                  //$NON-NLS-1$
    242     public static final String ABI_MIPS = "mips";                       //$NON-NLS-1$
    243     /** Name of the CPU arch to support. */
    244     public static final String CPU_ARCH_ARM = "arm";                    //$NON-NLS-1$
    245     public static final String CPU_ARCH_INTEL_ATOM = "x86";             //$NON-NLS-1$
    246     public static final String CPU_ARCH_MIPS = "mips";                  //$NON-NLS-1$
    247     /** Name of the CPU model to support. */
    248     public static final String CPU_MODEL_CORTEX_A8 = "cortex-a8";       //$NON-NLS-1$
    249 
    250     /** Name of the SDK skins folder. */
    251     public static final String FD_SKINS = "skins";                      //$NON-NLS-1$
    252     /** Name of the SDK samples folder. */
    253     public static final String FD_SAMPLES = "samples";                  //$NON-NLS-1$
    254     /** Name of the SDK extras folder. */
    255     public static final String FD_EXTRAS = "extras";                    //$NON-NLS-1$
    256     /**
    257      * Name of an extra's sample folder.
    258      * Ideally extras should have one {@link #FD_SAMPLES} folder containing
    259      * one or more sub-folders (one per sample). However some older extras
    260      * might contain a single "sample" folder with directly the samples files
    261      * in it. When possible we should encourage extras' owners to move to the
    262      * multi-samples format.
    263      */
    264     public static final String FD_SAMPLE = "sample";                    //$NON-NLS-1$
    265     /** Name of the SDK templates folder, i.e. "templates" */
    266     public static final String FD_TEMPLATES = "templates";              //$NON-NLS-1$
    267     /** Name of the SDK Ant folder, i.e. "ant" */
    268     public static final String FD_ANT = "ant";                          //$NON-NLS-1$
    269     /** Name of the SDK data folder, i.e. "data" */
    270     public static final String FD_DATA = "data";                        //$NON-NLS-1$
    271     /** Name of the SDK renderscript folder, i.e. "rs" */
    272     public static final String FD_RENDERSCRIPT = "rs";                  //$NON-NLS-1$
    273     /** Name of the SDK resources folder, i.e. "res" */
    274     public static final String FD_RES = "res";                          //$NON-NLS-1$
    275     /** Name of the SDK font folder, i.e. "fonts" */
    276     public static final String FD_FONTS = "fonts";                      //$NON-NLS-1$
    277     /** Name of the android sources directory */
    278     public static final String FD_ANDROID_SOURCES = "sources";          //$NON-NLS-1$
    279     /** Name of the addon libs folder. */
    280     public static final String FD_ADDON_LIBS = "libs";                  //$NON-NLS-1$
    281 
    282     /** Name of the cache folder in the $HOME/.android. */
    283     public static final String FD_CACHE = "cache";                      //$NON-NLS-1$
    284 
    285     /** API codename of a release (non preview) system image or platform. **/
    286     public static final String CODENAME_RELEASE = "REL";                //$NON-NLS-1$
    287 
    288     /** Namespace for the resource XML, i.e. "http://schemas.android.com/apk/res/android" */
    289     public static final String NS_RESOURCES =
    290         "http://schemas.android.com/apk/res/android";                   //$NON-NLS-1$
    291 
    292     /** Namespace for the device schema, i.e. "http://schemas.android.com/sdk/devices/1" */
    293     public static final String NS_DEVICES_XSD =
    294         "http://schemas.android.com/sdk/devices/1";                     //$NON-NLS-1$
    295 
    296 
    297     /** The name of the uses-library that provides "android.test.runner" */
    298     public static final String ANDROID_TEST_RUNNER_LIB =
    299         "android.test.runner";                                          //$NON-NLS-1$
    300 
    301     /* Folder path relative to the SDK root */
    302     /** Path of the documentation directory relative to the sdk folder.
    303      *  This is an OS path, ending with a separator. */
    304     public static final String OS_SDK_DOCS_FOLDER = FD_DOCS + File.separator;
    305 
    306     /** Path of the tools directory relative to the sdk folder, or to a platform folder.
    307      *  This is an OS path, ending with a separator. */
    308     public static final String OS_SDK_TOOLS_FOLDER = FD_TOOLS + File.separator;
    309 
    310     /** Path of the lib directory relative to the sdk folder, or to a platform folder.
    311      *  This is an OS path, ending with a separator. */
    312     public static final String OS_SDK_TOOLS_LIB_FOLDER =
    313             OS_SDK_TOOLS_FOLDER + FD_LIB + File.separator;
    314 
    315     /**
    316      * Path of the lib directory relative to the sdk folder, or to a platform
    317      * folder. This is an OS path, ending with a separator.
    318      */
    319     public static final String OS_SDK_TOOLS_LIB_EMULATOR_FOLDER = OS_SDK_TOOLS_LIB_FOLDER
    320             + "emulator" + File.separator;                              //$NON-NLS-1$
    321 
    322     /** Path of the platform tools directory relative to the sdk folder.
    323      *  This is an OS path, ending with a separator. */
    324     public static final String OS_SDK_PLATFORM_TOOLS_FOLDER = FD_PLATFORM_TOOLS + File.separator;
    325 
    326     /** Path of the Platform tools Lib directory relative to the sdk folder.
    327      *  This is an OS path, ending with a separator. */
    328     public static final String OS_SDK_PLATFORM_TOOLS_LIB_FOLDER =
    329             OS_SDK_PLATFORM_TOOLS_FOLDER + FD_LIB + File.separator;
    330 
    331     /** Path of the bin folder of proguard folder relative to the sdk folder.
    332      *  This is an OS path, ending with a separator. */
    333     public static final String OS_SDK_TOOLS_PROGUARD_BIN_FOLDER =
    334         SdkConstants.OS_SDK_TOOLS_FOLDER +
    335         "proguard" + File.separator +                                   //$NON-NLS-1$
    336         "bin" + File.separator;                                         //$NON-NLS-1$
    337 
    338     /* Folder paths relative to a platform or add-on folder */
    339 
    340     /** Path of the images directory relative to a platform or addon folder.
    341      *  This is an OS path, ending with a separator. */
    342     public static final String OS_IMAGES_FOLDER = FD_IMAGES + File.separator;
    343 
    344     /** Path of the skin directory relative to a platform or addon folder.
    345      *  This is an OS path, ending with a separator. */
    346     public static final String OS_SKINS_FOLDER = FD_SKINS + File.separator;
    347 
    348     /* Folder paths relative to a Platform folder */
    349 
    350     /** Path of the data directory relative to a platform folder.
    351      *  This is an OS path, ending with a separator. */
    352     public static final String OS_PLATFORM_DATA_FOLDER = FD_DATA + File.separator;
    353 
    354     /** Path of the renderscript directory relative to a platform folder.
    355      *  This is an OS path, ending with a separator. */
    356     public static final String OS_PLATFORM_RENDERSCRIPT_FOLDER = FD_RENDERSCRIPT + File.separator;
    357 
    358 
    359     /** Path of the samples directory relative to a platform folder.
    360      *  This is an OS path, ending with a separator. */
    361     public static final String OS_PLATFORM_SAMPLES_FOLDER = FD_SAMPLES + File.separator;
    362 
    363     /** Path of the resources directory relative to a platform folder.
    364      *  This is an OS path, ending with a separator. */
    365     public static final String OS_PLATFORM_RESOURCES_FOLDER =
    366             OS_PLATFORM_DATA_FOLDER + FD_RES + File.separator;
    367 
    368     /** Path of the fonts directory relative to a platform folder.
    369      *  This is an OS path, ending with a separator. */
    370     public static final String OS_PLATFORM_FONTS_FOLDER =
    371             OS_PLATFORM_DATA_FOLDER + FD_FONTS + File.separator;
    372 
    373     /** Path of the android source directory relative to a platform folder.
    374      *  This is an OS path, ending with a separator. */
    375     public static final String OS_PLATFORM_SOURCES_FOLDER = FD_ANDROID_SOURCES + File.separator;
    376 
    377     /** Path of the android templates directory relative to a platform folder.
    378      *  This is an OS path, ending with a separator. */
    379     public static final String OS_PLATFORM_TEMPLATES_FOLDER = FD_TEMPLATES + File.separator;
    380 
    381     /** Path of the Ant build rules directory relative to a platform folder.
    382      *  This is an OS path, ending with a separator. */
    383     public static final String OS_PLATFORM_ANT_FOLDER = FD_ANT + File.separator;
    384 
    385     /** Path of the attrs.xml file relative to a platform folder. */
    386     public static final String OS_PLATFORM_ATTRS_XML =
    387             OS_PLATFORM_RESOURCES_FOLDER + SdkConstants.FD_RES_VALUES + File.separator +
    388             FN_ATTRS_XML;
    389 
    390     /** Path of the attrs_manifest.xml file relative to a platform folder. */
    391     public static final String OS_PLATFORM_ATTRS_MANIFEST_XML =
    392             OS_PLATFORM_RESOURCES_FOLDER + SdkConstants.FD_RES_VALUES + File.separator +
    393             FN_ATTRS_MANIFEST_XML;
    394 
    395     /** Path of the layoutlib.jar file relative to a platform folder. */
    396     public static final String OS_PLATFORM_LAYOUTLIB_JAR =
    397             OS_PLATFORM_DATA_FOLDER + FN_LAYOUTLIB_JAR;
    398 
    399     /** Path of the renderscript include folder relative to a platform folder. */
    400     public static final String OS_FRAMEWORK_RS =
    401             FN_FRAMEWORK_RENDERSCRIPT + File.separator + FN_FRAMEWORK_INCLUDE;
    402     /** Path of the renderscript (clang) include folder relative to a platform folder. */
    403     public static final String OS_FRAMEWORK_RS_CLANG =
    404             FN_FRAMEWORK_RENDERSCRIPT + File.separator + FN_FRAMEWORK_INCLUDE_CLANG;
    405 
    406     /* Folder paths relative to a addon folder */
    407     /** Path of the images directory relative to a folder folder.
    408      *  This is an OS path, ending with a separator. */
    409     public static final String OS_ADDON_LIBS_FOLDER = FD_ADDON_LIBS + File.separator;
    410 
    411     /** Skin default **/
    412     public static final String SKIN_DEFAULT = "default";                    //$NON-NLS-1$
    413 
    414     /** SDK property: ant templates revision */
    415     public static final String PROP_SDK_ANT_TEMPLATES_REVISION =
    416         "sdk.ant.templates.revision";                                       //$NON-NLS-1$
    417 
    418     /** SDK property: default skin */
    419     public static final String PROP_SDK_DEFAULT_SKIN = "sdk.skin.default"; //$NON-NLS-1$
    420 
    421     /* Android Class Constants */
    422     public static final String CLASS_ACTIVITY = "android.app.Activity"; //$NON-NLS-1$
    423     public static final String CLASS_APPLICATION = "android.app.Application"; //$NON-NLS-1$
    424     public static final String CLASS_SERVICE = "android.app.Service"; //$NON-NLS-1$
    425     public static final String CLASS_BROADCASTRECEIVER = "android.content.BroadcastReceiver"; //$NON-NLS-1$
    426     public static final String CLASS_CONTENTPROVIDER = "android.content.ContentProvider"; //$NON-NLS-1$
    427     public static final String CLASS_INSTRUMENTATION = "android.app.Instrumentation"; //$NON-NLS-1$
    428     public static final String CLASS_INSTRUMENTATION_RUNNER =
    429         "android.test.InstrumentationTestRunner"; //$NON-NLS-1$
    430     public static final String CLASS_BUNDLE = "android.os.Bundle"; //$NON-NLS-1$
    431     public static final String CLASS_R = "android.R"; //$NON-NLS-1$
    432     public static final String CLASS_MANIFEST_PERMISSION = "android.Manifest$permission"; //$NON-NLS-1$
    433     public static final String CLASS_INTENT = "android.content.Intent"; //$NON-NLS-1$
    434     public static final String CLASS_CONTEXT = "android.content.Context"; //$NON-NLS-1$
    435     public static final String CLASS_VIEW = "android.view.View"; //$NON-NLS-1$
    436     public static final String CLASS_VIEWGROUP = "android.view.ViewGroup"; //$NON-NLS-1$
    437     public static final String CLASS_NAME_LAYOUTPARAMS = "LayoutParams"; //$NON-NLS-1$
    438     public static final String CLASS_VIEWGROUP_LAYOUTPARAMS =
    439         CLASS_VIEWGROUP + "$" + CLASS_NAME_LAYOUTPARAMS; //$NON-NLS-1$
    440     public static final String CLASS_NAME_FRAMELAYOUT = "FrameLayout"; //$NON-NLS-1$
    441     public static final String CLASS_FRAMELAYOUT =
    442         "android.widget." + CLASS_NAME_FRAMELAYOUT; //$NON-NLS-1$
    443     public static final String CLASS_PREFERENCE = "android.preference.Preference"; //$NON-NLS-1$
    444     public static final String CLASS_NAME_PREFERENCE_SCREEN = "PreferenceScreen"; //$NON-NLS-1$
    445     public static final String CLASS_PREFERENCES =
    446         "android.preference." + CLASS_NAME_PREFERENCE_SCREEN; //$NON-NLS-1$
    447     public static final String CLASS_PREFERENCEGROUP = "android.preference.PreferenceGroup"; //$NON-NLS-1$
    448     public static final String CLASS_PARCELABLE = "android.os.Parcelable"; //$NON-NLS-1$
    449     public static final String CLASS_FRAGMENT = "android.app.Fragment"; //$NON-NLS-1$
    450     public static final String CLASS_V4_FRAGMENT = "android.support.v4.app.Fragment"; //$NON-NLS-1$
    451     /** MockView is part of the layoutlib bridge and used to display classes that have
    452      * no rendering in the graphical layout editor. */
    453     public static final String CLASS_MOCK_VIEW = "com.android.layoutlib.bridge.MockView"; //$NON-NLS-1$
    454 
    455     /** Returns the appropriate name for the 'android' command, which is 'android.exe' for
    456      * Windows and 'android' for all other platforms. */
    457     public static String androidCmdName() {
    458         String os = System.getProperty("os.name");          //$NON-NLS-1$
    459         String cmd = "android";                             //$NON-NLS-1$
    460         if (os.startsWith("Windows")) {                     //$NON-NLS-1$
    461             cmd += ".bat";                                  //$NON-NLS-1$
    462         }
    463         return cmd;
    464     }
    465 
    466     /** Returns the appropriate name for the 'mksdcard' command, which is 'mksdcard.exe' for
    467      * Windows and 'mkdsdcard' for all other platforms. */
    468     public static String mkSdCardCmdName() {
    469         String os = System.getProperty("os.name");          //$NON-NLS-1$
    470         String cmd = "mksdcard";                            //$NON-NLS-1$
    471         if (os.startsWith("Windows")) {                     //$NON-NLS-1$
    472             cmd += ".exe";                                  //$NON-NLS-1$
    473         }
    474         return cmd;
    475     }
    476 
    477     /**
    478      * Returns current platform
    479      *
    480      * @return one of {@link #PLATFORM_WINDOWS}, {@link #PLATFORM_DARWIN},
    481      * {@link #PLATFORM_LINUX} or {@link #PLATFORM_UNKNOWN}.
    482      */
    483     public static int currentPlatform() {
    484         String os = System.getProperty("os.name");          //$NON-NLS-1$
    485         if (os.startsWith("Mac OS")) {                      //$NON-NLS-1$
    486             return PLATFORM_DARWIN;
    487         } else if (os.startsWith("Windows")) {              //$NON-NLS-1$
    488             return PLATFORM_WINDOWS;
    489         } else if (os.startsWith("Linux")) {                //$NON-NLS-1$
    490             return PLATFORM_LINUX;
    491         }
    492 
    493         return PLATFORM_UNKNOWN;
    494     }
    495 
    496     /**
    497      * Returns current platform's UI name
    498      *
    499      * @return one of "Windows", "Mac OS X", "Linux" or "other".
    500      */
    501     public static String currentPlatformName() {
    502         String os = System.getProperty("os.name");          //$NON-NLS-1$
    503         if (os.startsWith("Mac OS")) {                      //$NON-NLS-1$
    504             return "Mac OS X";                              //$NON-NLS-1$
    505         } else if (os.startsWith("Windows")) {              //$NON-NLS-1$
    506             return "Windows";                               //$NON-NLS-1$
    507         } else if (os.startsWith("Linux")) {                //$NON-NLS-1$
    508             return "Linux";                                 //$NON-NLS-1$
    509         }
    510 
    511         return "Other";
    512     }
    513 
    514     private static String ext(String windowsExtension, String nonWindowsExtension) {
    515         if (CURRENT_PLATFORM == PLATFORM_WINDOWS) {
    516             return windowsExtension;
    517         } else {
    518             return nonWindowsExtension;
    519         }
    520     }
    521 
    522     /** Default anim resource folder name, i.e. "anim" */
    523     public static final String FD_RES_ANIM = "anim"; //$NON-NLS-1$
    524     /** Default animator resource folder name, i.e. "animator" */
    525     public static final String FD_RES_ANIMATOR = "animator"; //$NON-NLS-1$
    526     /** Default color resource folder name, i.e. "color" */
    527     public static final String FD_RES_COLOR = "color"; //$NON-NLS-1$
    528     /** Default drawable resource folder name, i.e. "drawable" */
    529     public static final String FD_RES_DRAWABLE = "drawable"; //$NON-NLS-1$
    530     /** Default interpolator resource folder name, i.e. "interpolator" */
    531     public static final String FD_RES_INTERPOLATOR = "interpolator"; //$NON-NLS-1$
    532     /** Default layout resource folder name, i.e. "layout" */
    533     public static final String FD_RES_LAYOUT = "layout"; //$NON-NLS-1$
    534     /** Default menu resource folder name, i.e. "menu" */
    535     public static final String FD_RES_MENU = "menu"; //$NON-NLS-1$
    536     /** Default menu resource folder name, i.e. "mipmap" */
    537     public static final String FD_RES_MIPMAP = "mipmap"; //$NON-NLS-1$
    538     /** Default values resource folder name, i.e. "values" */
    539     public static final String FD_RES_VALUES = "values"; //$NON-NLS-1$
    540     /** Default xml resource folder name, i.e. "xml" */
    541     public static final String FD_RES_XML = "xml"; //$NON-NLS-1$
    542     /** Default raw resource folder name, i.e. "raw" */
    543     public static final String FD_RES_RAW = "raw"; //$NON-NLS-1$
    544     /** Separator between the resource folder qualifier. */
    545     public static final String RES_QUALIFIER_SEP = "-"; //$NON-NLS-1$
    546     /** Namespace used in XML files for Android attributes */
    547 
    548     // ---- XML ----
    549 
    550     /** URI of the reserved "xmlns"  prefix */
    551     public static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/";  //$NON-NLS-1$
    552     /** The "xmlns" attribute name */
    553     public static final String XMLNS = "xmlns";                              //$NON-NLS-1$
    554     /** The default prefix used for the {@link #XMLNS_URI} */
    555     public static final String XMLNS_PREFIX = "xmlns:";                      //$NON-NLS-1$
    556     /** Qualified name of the xmlns android declaration element */
    557     public static final String XMLNS_ANDROID = "xmlns:android";              //$NON-NLS-1$
    558     /** The default prefix used for the {@link #ANDROID_URI} name space */
    559     public static final String ANDROID_NS_NAME = "android";                  //$NON-NLS-1$
    560     /** The default prefix used for the {@link #ANDROID_URI} name space including the colon  */
    561     public static final String ANDROID_NS_NAME_PREFIX = "android:";          //$NON-NLS-1$
    562     /** The default prefix used for the app */
    563     public static final String APP_PREFIX = "app";                          //$NON-NLS-1$
    564     /** The entity for the ampersand character */
    565     public static final String AMP_ENTITY = "&amp;";                         //$NON-NLS-1$
    566     /** The entity for the quote character */
    567     public static final String QUOT_ENTITY = "&quot;";                       //$NON-NLS-1$
    568     /** The entity for the apostrophe character */
    569     public static final String APOS_ENTITY = "&apos;";                       //$NON-NLS-1$
    570     /** The entity for the less than character */
    571     public static final String LT_ENTITY = "&lt;";                           //$NON-NLS-1$
    572     /** The entity for the greater than character */
    573     public static final String GT_ENTITY = "&gt;";                           //$NON-NLS-1$
    574 
    575     // ---- Elements and Attributes ----
    576 
    577     /** Namespace prefix used for all resources */
    578     public static final String URI_PREFIX =
    579             "http://schemas.android.com/apk/res/";                     //$NON-NLS-1$
    580     /** Namespace used in XML files for Android attributes */
    581     public static final String ANDROID_URI =
    582             "http://schemas.android.com/apk/res/android";              //$NON-NLS-1$
    583     /** Namespace used in XML files for Android Tooling attributes */
    584     public static final String TOOLS_URI =
    585             "http://schemas.android.com/tools";                        //$NON-NLS-1$
    586     /** Namespace used for auto-adjusting namespaces */
    587     public static final String AUTO_URI =
    588             "http://schemas.android.com/apk/res-auto";                 //$NON-NLS-1$
    589     /** Default prefix used for tools attributes */
    590     public static final String TOOLS_PREFIX = "tools";                 //$NON-NLS-1$
    591     public static final String R_CLASS = "R";                          //$NON-NLS-1$
    592     public static final String ANDROID_PKG = "android";                //$NON-NLS-1$
    593 
    594     // Tags: Manifest
    595     public static final String TAG_SERVICE = "service";                //$NON-NLS-1$
    596     public static final String TAG_USES_PERMISSION = "uses-permission";//$NON-NLS-1$
    597     public static final String TAG_USES_LIBRARY = "uses-library";      //$NON-NLS-1$
    598     public static final String TAG_APPLICATION = "application";        //$NON-NLS-1$
    599     public static final String TAG_INTENT_FILTER = "intent-filter";    //$NON-NLS-1$
    600     public static final String TAG_USES_SDK = "uses-sdk";              //$NON-NLS-1$
    601     public static final String TAG_ACTIVITY = "activity";              //$NON-NLS-1$
    602     public static final String TAG_RECEIVER = "receiver";              //$NON-NLS-1$
    603     public static final String TAG_PROVIDER = "provider";              //$NON-NLS-1$
    604     public static final String TAG_GRANT_PERMISSION = "grant-uri-permission"; //$NON-NLS-1$
    605     public static final String TAG_PATH_PERMISSION = "path-permission"; //$NON-NLS-1$
    606 
    607     // Tags: Resources
    608     public static final String TAG_RESOURCES = "resources";            //$NON-NLS-1$
    609     public static final String TAG_STRING = "string";                  //$NON-NLS-1$
    610     public static final String TAG_ARRAY = "array";                    //$NON-NLS-1$
    611     public static final String TAG_STYLE = "style";                    //$NON-NLS-1$
    612     public static final String TAG_ITEM = "item";                      //$NON-NLS-1$
    613     public static final String TAG_STRING_ARRAY = "string-array";      //$NON-NLS-1$
    614     public static final String TAG_PLURALS = "plurals";                //$NON-NLS-1$
    615     public static final String TAG_INTEGER_ARRAY = "integer-array";    //$NON-NLS-1$
    616     public static final String TAG_COLOR = "color";                    //$NON-NLS-1$
    617     public static final String TAG_DIMEN = "dimen";                    //$NON-NLS-1$
    618     public static final String TAG_DRAWABLE = "drawable";              //$NON-NLS-1$
    619     public static final String TAG_MENU = "menu";                      //$NON-NLS-1$
    620 
    621     // Tags: Layouts
    622     public static final String VIEW_TAG = "view";                      //$NON-NLS-1$
    623     public static final String VIEW_INCLUDE = "include";               //$NON-NLS-1$
    624     public static final String VIEW_MERGE = "merge";                   //$NON-NLS-1$
    625     public static final String VIEW_FRAGMENT = "fragment";             //$NON-NLS-1$
    626     public static final String REQUEST_FOCUS = "requestFocus";         //$NON-NLS-1$
    627 
    628     public static final String VIEW = "View";                          //$NON-NLS-1$
    629     public static final String VIEW_GROUP = "ViewGroup";               //$NON-NLS-1$
    630     public static final String FRAME_LAYOUT = "FrameLayout";           //$NON-NLS-1$
    631     public static final String LINEAR_LAYOUT = "LinearLayout";         //$NON-NLS-1$
    632     public static final String RELATIVE_LAYOUT = "RelativeLayout";     //$NON-NLS-1$
    633     public static final String GRID_LAYOUT = "GridLayout";             //$NON-NLS-1$
    634     public static final String SCROLL_VIEW = "ScrollView";             //$NON-NLS-1$
    635     public static final String BUTTON = "Button";                      //$NON-NLS-1$
    636     public static final String COMPOUND_BUTTON = "CompoundButton";     //$NON-NLS-1$
    637     public static final String ADAPTER_VIEW = "AdapterView";           //$NON-NLS-1$
    638     public static final String GALLERY = "Gallery";                    //$NON-NLS-1$
    639     public static final String GRID_VIEW = "GridView";                 //$NON-NLS-1$
    640     public static final String TAB_HOST = "TabHost";                   //$NON-NLS-1$
    641     public static final String RADIO_GROUP = "RadioGroup";             //$NON-NLS-1$
    642     public static final String RADIO_BUTTON = "RadioButton";           //$NON-NLS-1$
    643     public static final String SWITCH = "Switch";                      //$NON-NLS-1$
    644     public static final String EDIT_TEXT = "EditText";                 //$NON-NLS-1$
    645     public static final String LIST_VIEW = "ListView";                 //$NON-NLS-1$
    646     public static final String TEXT_VIEW = "TextView";                 //$NON-NLS-1$
    647     public static final String CHECKED_TEXT_VIEW = "CheckedTextView";  //$NON-NLS-1$
    648     public static final String IMAGE_VIEW = "ImageView";               //$NON-NLS-1$
    649     public static final String SURFACE_VIEW = "SurfaceView";           //$NON-NLS-1$
    650     public static final String ABSOLUTE_LAYOUT = "AbsoluteLayout";     //$NON-NLS-1$
    651     public static final String TABLE_LAYOUT = "TableLayout";           //$NON-NLS-1$
    652     public static final String TABLE_ROW = "TableRow";                 //$NON-NLS-1$
    653     public static final String TAB_WIDGET = "TabWidget";               //$NON-NLS-1$
    654     public static final String IMAGE_BUTTON = "ImageButton";           //$NON-NLS-1$
    655     public static final String SEEK_BAR = "SeekBar";                   //$NON-NLS-1$
    656     public static final String VIEW_STUB = "ViewStub";                 //$NON-NLS-1$
    657     public static final String SPINNER = "Spinner";                    //$NON-NLS-1$
    658     public static final String WEB_VIEW = "WebView";                   //$NON-NLS-1$
    659     public static final String TOGGLE_BUTTON = "ToggleButton";         //$NON-NLS-1$
    660     public static final String CHECK_BOX = "CheckBox";                 //$NON-NLS-1$
    661     public static final String ABS_LIST_VIEW = "AbsListView";          //$NON-NLS-1$
    662     public static final String PROGRESS_BAR = "ProgressBar";           //$NON-NLS-1$
    663     public static final String ABS_SPINNER = "AbsSpinner";             //$NON-NLS-1$
    664     public static final String ABS_SEEK_BAR = "AbsSeekBar";            //$NON-NLS-1$
    665     public static final String VIEW_ANIMATOR = "ViewAnimator";         //$NON-NLS-1$
    666     public static final String VIEW_SWITCHER = "ViewSwitcher";         //$NON-NLS-1$
    667     public static final String EXPANDABLE_LIST_VIEW = "ExpandableListView";    //$NON-NLS-1$
    668     public static final String HORIZONTAL_SCROLL_VIEW = "HorizontalScrollView"; //$NON-NLS-1$
    669     public static final String MULTI_AUTO_COMPLETE_TEXT_VIEW = "MultiAutoCompleteTextView"; //$NON-NLS-1$
    670     public static final String AUTO_COMPLETE_TEXT_VIEW = "AutoCompleteTextView"; //$NON-NLS-1$
    671 
    672     // Tags: Drawables
    673     public static final String TAG_BITMAP = "bitmap";                  //$NON-NLS-1$
    674 
    675     // Attributes: Manifest
    676     public static final String ATTR_EXPORTED = "exported";             //$NON-NLS-1$
    677     public static final String ATTR_PERMISSION = "permission";         //$NON-NLS-1$
    678     public static final String ATTR_MIN_SDK_VERSION = "minSdkVersion"; //$NON-NLS-1$
    679     public static final String ATTR_TARGET_SDK_VERSION = "targetSdkVersion"; //$NON-NLS-1$
    680     public static final String ATTR_ICON = "icon";                     //$NON-NLS-1$
    681     public static final String ATTR_PACKAGE = "package";               //$NON-NLS-1$
    682     public static final String ATTR_THEME = "theme";                   //$NON-NLS-1$
    683     public static final String ATTR_PATH = "path";                     //$NON-NLS-1$
    684     public static final String ATTR_PATH_PREFIX = "pathPrefix";        //$NON-NLS-1$
    685     public static final String ATTR_PATH_PATTERN = "pathPattern";      //$NON-NLS-1$
    686     public static final String ATTR_ALLOW_BACKUP = "allowBackup";      //$NON_NLS-1$
    687     public static final String ATTR_DEBUGGABLE = "debuggable";         //$NON-NLS-1$
    688     public static final String ATTR_READ_PERMISSION = "readPermission"; //$NON_NLS-1$
    689     public static final String ATTR_WRITE_PERMISSION = "writePermission"; //$NON_NLS-1$
    690 
    691     // Attributes: Resources
    692     public static final String ATTR_NAME = "name";                     //$NON-NLS-1$
    693     public static final String ATTR_TYPE = "type";                     //$NON-NLS-1$
    694     public static final String ATTR_PARENT = "parent";                 //$NON-NLS-1$
    695     public static final String ATTR_TRANSLATABLE = "translatable";     //$NON-NLS-1$
    696     public static final String ATTR_COLOR = "color";                   //$NON-NLS-1$
    697 
    698     // Attributes: Layout
    699     public static final String ATTR_LAYOUT_RESOURCE_PREFIX = "layout_";         //$NON-NLS-1$
    700     public static final String ATTR_CLASS = "class";                   //$NON-NLS-1$
    701     public static final String ATTR_STYLE = "style";                   //$NON-NLS-1$
    702     public static final String ATTR_CONTEXT = "context";               //$NON-NLS-1$
    703     public static final String ATTR_ID = "id";                         //$NON-NLS-1$
    704     public static final String ATTR_TEXT = "text";                     //$NON-NLS-1$
    705     public static final String ATTR_TEXT_SIZE = "textSize";            //$NON-NLS-1$
    706     public static final String ATTR_LABEL = "label";                   //$NON-NLS-1$
    707     public static final String ATTR_HINT = "hint";                     //$NON-NLS-1$
    708     public static final String ATTR_PROMPT = "prompt";                 //$NON-NLS-1$
    709     public static final String ATTR_ON_CLICK = "onClick";              //$NON-NLS-1$
    710     public static final String ATTR_INPUT_TYPE = "inputType";          //$NON-NLS-1$
    711     public static final String ATTR_INPUT_METHOD = "inputMethod";      //$NON-NLS-1$
    712     public static final String ATTR_LAYOUT_GRAVITY = "layout_gravity"; //$NON-NLS-1$
    713     public static final String ATTR_LAYOUT_WIDTH = "layout_width";     //$NON-NLS-1$
    714     public static final String ATTR_LAYOUT_HEIGHT = "layout_height";   //$NON-NLS-1$
    715     public static final String ATTR_LAYOUT_WEIGHT = "layout_weight";   //$NON-NLS-1$
    716     public static final String ATTR_PADDING = "padding";               //$NON-NLS-1$
    717     public static final String ATTR_PADDING_BOTTOM = "paddingBottom";  //$NON-NLS-1$
    718     public static final String ATTR_PADDING_TOP = "paddingTop";        //$NON-NLS-1$
    719     public static final String ATTR_PADDING_RIGHT = "paddingRight";    //$NON-NLS-1$
    720     public static final String ATTR_PADDING_LEFT = "paddingLeft";      //$NON-NLS-1$
    721     public static final String ATTR_FOREGROUND = "foreground";         //$NON-NLS-1$
    722     public static final String ATTR_BACKGROUND = "background";         //$NON-NLS-1$
    723     public static final String ATTR_ORIENTATION = "orientation";       //$NON-NLS-1$
    724     public static final String ATTR_LAYOUT = "layout";                 //$NON-NLS-1$
    725     public static final String ATTR_ROW_COUNT = "rowCount";            //$NON-NLS-1$
    726     public static final String ATTR_COLUMN_COUNT = "columnCount";      //$NON-NLS-1$
    727     public static final String ATTR_LABEL_FOR = "labelFor";            //$NON-NLS-1$
    728     public static final String ATTR_BASELINE_ALIGNED = "baselineAligned";       //$NON-NLS-1$
    729     public static final String ATTR_CONTENT_DESCRIPTION = "contentDescription"; //$NON-NLS-1$
    730     public static final String ATTR_IME_ACTION_LABEL = "imeActionLabel";        //$NON-NLS-1$
    731     public static final String ATTR_PRIVATE_IME_OPTIONS = "privateImeOptions";  //$NON-NLS-1$
    732     public static final String VALUE_NONE = "none";                    //$NON-NLS-1$
    733     public static final String VALUE_NO = "no";                        //$NON-NLS-1$
    734     public static final String ATTR_NUMERIC = "numeric";               //$NON-NLS-1$
    735     public static final String ATTR_IME_ACTION_ID = "imeActionId";     //$NON-NLS-1$
    736     public static final String ATTR_IME_OPTIONS = "imeOptions";        //$NON-NLS-1$
    737     public static final String ATTR_FREEZES_TEXT = "freezesText";      //$NON-NLS-1$
    738     public static final String ATTR_EDITOR_EXTRAS = "editorExtras";    //$NON-NLS-1$
    739     public static final String ATTR_EDITABLE = "editable";             //$NON-NLS-1$
    740     public static final String ATTR_DIGITS = "digits";                 //$NON-NLS-1$
    741     public static final String ATTR_CURSOR_VISIBLE = "cursorVisible";  //$NON-NLS-1$
    742     public static final String ATTR_CAPITALIZE = "capitalize";         //$NON-NLS-1$
    743     public static final String ATTR_PHONE_NUMBER = "phoneNumber";      //$NON-NLS-1$
    744     public static final String ATTR_PASSWORD = "password";             //$NON-NLS-1$
    745     public static final String ATTR_BUFFER_TYPE = "bufferType";        //$NON-NLS-1$
    746     public static final String ATTR_AUTO_TEXT = "autoText";            //$NON-NLS-1$
    747     public static final String ATTR_ENABLED = "enabled";               //$NON-NLS-1$
    748     public static final String ATTR_SINGLE_LINE = "singleLine";        //$NON-NLS-1$
    749     public static final String ATTR_SCALE_TYPE = "scaleType";          //$NON-NLS-1$
    750     public static final String ATTR_IMPORTANT_FOR_ACCESSIBILITY =
    751             "importantForAccessibility";                               //$NON-NLS-1$
    752 
    753     // AbsoluteLayout layout params
    754     public static final String ATTR_LAYOUT_Y = "layout_y";             //$NON-NLS-1$
    755     public static final String ATTR_LAYOUT_X = "layout_x";             //$NON-NLS-1$
    756 
    757     // GridLayout layout params
    758     public static final String ATTR_LAYOUT_ROW = "layout_row";         //$NON-NLS-1$
    759     public static final String ATTR_LAYOUT_ROW_SPAN = "layout_rowSpan";//$NON-NLS-1$
    760     public static final String ATTR_LAYOUT_COLUMN = "layout_column";   //$NON-NLS-1$
    761     public static final String ATTR_LAYOUT_COLUMN_SPAN = "layout_columnSpan";       //$NON-NLS-1$
    762 
    763     // TableRow
    764     public static final String ATTR_LAYOUT_SPAN = "layout_span";       //$NON-NLS-1$
    765 
    766     // RelativeLayout layout params:
    767     public static final String ATTR_LAYOUT_ALIGN_LEFT = "layout_alignLeft";        //$NON-NLS-1$
    768     public static final String ATTR_LAYOUT_ALIGN_RIGHT = "layout_alignRight";      //$NON-NLS-1$
    769     public static final String ATTR_LAYOUT_ALIGN_TOP = "layout_alignTop";          //$NON-NLS-1$
    770     public static final String ATTR_LAYOUT_ALIGN_BOTTOM = "layout_alignBottom";    //$NON-NLS-1$
    771     public static final String ATTR_LAYOUT_ALIGN_PARENT_TOP = "layout_alignParentTop"; //$NON-NLS-1$
    772     public static final String ATTR_LAYOUT_ALIGN_PARENT_BOTTOM = "layout_alignParentBottom"; //$NON-NLS-1$
    773     public static final String ATTR_LAYOUT_ALIGN_PARENT_LEFT = "layout_alignParentLeft";//$NON-NLS-1$
    774     public static final String ATTR_LAYOUT_ALIGN_PARENT_RIGHT = "layout_alignParentRight";   //$NON-NLS-1$
    775     public static final String ATTR_LAYOUT_ALIGN_WITH_PARENT_MISSING = "layout_alignWithParentIfMissing"; //$NON-NLS-1$
    776     public static final String ATTR_LAYOUT_ALIGN_BASELINE = "layout_alignBaseline"; //$NON-NLS-1$
    777     public static final String ATTR_LAYOUT_CENTER_IN_PARENT = "layout_centerInParent"; //$NON-NLS-1$
    778     public static final String ATTR_LAYOUT_CENTER_VERTICAL = "layout_centerVertical"; //$NON-NLS-1$
    779     public static final String ATTR_LAYOUT_CENTER_HORIZONTAL = "layout_centerHorizontal"; //$NON-NLS-1$
    780     public static final String ATTR_LAYOUT_TO_RIGHT_OF = "layout_toRightOf";    //$NON-NLS-1$
    781     public static final String ATTR_LAYOUT_TO_LEFT_OF = "layout_toLeftOf";      //$NON-NLS-1$
    782     public static final String ATTR_LAYOUT_BELOW = "layout_below";              //$NON-NLS-1$
    783     public static final String ATTR_LAYOUT_ABOVE = "layout_above";              //$NON-NLS-1$
    784 
    785     // Margins
    786     public static final String ATTR_LAYOUT_MARGIN = "layout_margin";               //$NON-NLS-1$
    787     public static final String ATTR_LAYOUT_MARGIN_LEFT = "layout_marginLeft";      //$NON-NLS-1$
    788     public static final String ATTR_LAYOUT_MARGIN_RIGHT = "layout_marginRight";    //$NON-NLS-1$
    789     public static final String ATTR_LAYOUT_MARGIN_TOP = "layout_marginTop";        //$NON-NLS-1$
    790     public static final String ATTR_LAYOUT_MARGIN_BOTTOM = "layout_marginBottom";  //$NON-NLS-1$
    791 
    792     // Attributes: Drawables
    793     public static final String ATTR_TILE_MODE = "tileMode";            //$NON-NLS-1$
    794 
    795     // Values: Layouts
    796     public static final String VALUE_FILL_PARENT = "fill_parent";       //$NON-NLS-1$
    797     public static final String VALUE_MATCH_PARENT = "match_parent";     //$NON-NLS-1$
    798     public static final String VALUE_VERTICAL = "vertical";             //$NON-NLS-1$
    799     public static final String VALUE_TRUE = "true";                     //$NON-NLS-1$
    800     public static final String VALUE_EDITABLE = "editable";             //$NON-NLS-1$
    801 
    802 
    803     // Values: Resources
    804     public static final String VALUE_ID = "id";                        //$NON-NLS-1$
    805 
    806     // Values: Drawables
    807     public static final String VALUE_DISABLED = "disabled";            //$NON-NLS-1$
    808     public static final String VALUE_CLAMP = "clamp";                  //$NON-NLS-1$
    809 
    810     // Menus
    811     public static final String ATTR_SHOW_AS_ACTION = "showAsAction";   //$NON-NLS-1$
    812     public static final String VALUE_IF_ROOM = "ifRoom";               //$NON-NLS-1$
    813     public static final String VALUE_ALWAYS = "always";                //$NON-NLS-1$
    814 
    815     // Units
    816     public static final String UNIT_DP = "dp";                         //$NON-NLS-1$
    817     public static final String UNIT_DIP = "dip";                       //$NON-NLS-1$
    818     public static final String UNIT_SP = "sp";                         //$NON-NLS-1$
    819     public static final String UNIT_PX = "px";                         //$NON-NLS-1$
    820     public static final String UNIT_IN = "in";                         //$NON-NLS-1$
    821     public static final String UNIT_MM = "mm";                         //$NON-NLS-1$
    822     public static final String UNIT_PT = "pt";                         //$NON-NLS-1$
    823 
    824     // Filenames and folder names
    825     public static final String ANDROID_MANIFEST_XML = "AndroidManifest.xml"; //$NON-NLS-1$
    826     public static final String OLD_PROGUARD_FILE = "proguard.cfg";     //$NON-NLS-1$
    827     public static final String CLASS_FOLDER =
    828             "bin" + File.separator + "classes";                        //$NON-NLS-1$ //$NON-NLS-2$
    829     public static final String GEN_FOLDER = "gen";                     //$NON-NLS-1$
    830     public static final String SRC_FOLDER = "src";                     //$NON-NLS-1$
    831     public static final String LIBS_FOLDER = "libs";                   //$NON-NLS-1$
    832     public static final String BIN_FOLDER = "bin";                     //$NON-NLS-1$
    833 
    834     public static final String RES_FOLDER = "res";                     //$NON-NLS-1$
    835     public static final String DOT_XML = ".xml";                       //$NON-NLS-1$
    836     public static final String DOT_GIF = ".gif";                       //$NON-NLS-1$
    837     public static final String DOT_JPG = ".jpg";                       //$NON-NLS-1$
    838     public static final String DOT_PNG = ".png";                       //$NON-NLS-1$
    839     public static final String DOT_9PNG = ".9.png";                    //$NON-NLS-1$
    840     public static final String DOT_JAVA = ".java";                     //$NON-NLS-1$
    841     public static final String DOT_CLASS = ".class";                   //$NON-NLS-1$
    842     public static final String DOT_JAR = ".jar";                       //$NON-NLS-1$
    843 
    844 
    845     /** Extension of the Application package Files, i.e. "apk". */
    846     public static final String EXT_ANDROID_PACKAGE = "apk"; //$NON-NLS-1$
    847     /** Extension of java files, i.e. "java" */
    848     public static final String EXT_JAVA = "java"; //$NON-NLS-1$
    849     /** Extension of compiled java files, i.e. "class" */
    850     public static final String EXT_CLASS = "class"; //$NON-NLS-1$
    851     /** Extension of xml files, i.e. "xml" */
    852     public static final String EXT_XML = "xml"; //$NON-NLS-1$
    853     /** Extension of jar files, i.e. "jar" */
    854     public static final String EXT_JAR = "jar"; //$NON-NLS-1$
    855     /** Extension of aidl files, i.e. "aidl" */
    856     public static final String EXT_AIDL = "aidl"; //$NON-NLS-1$
    857     /** Extension of Renderscript files, i.e. "rs" */
    858     public static final String EXT_RS = "rs"; //$NON-NLS-1$
    859     /** Extension of dependency files, i.e. "d" */
    860     public static final String EXT_DEP = "d"; //$NON-NLS-1$
    861     /** Extension of native libraries, i.e. "so" */
    862     public static final String EXT_NATIVE_LIB = "so"; //$NON-NLS-1$
    863     /** Extension of dex files, i.e. "dex" */
    864     public static final String EXT_DEX = "dex"; //$NON-NLS-1$
    865     /** Extension for temporary resource files, ie "ap_ */
    866     public static final String EXT_RES = "ap_"; //$NON-NLS-1$
    867     /** Extension for pre-processable images. Right now pngs */
    868     public static final String EXT_PNG = "png"; //$NON-NLS-1$
    869 
    870     private final static String DOT = "."; //$NON-NLS-1$
    871 
    872     /** Dot-Extension of the Application package Files, i.e. ".apk". */
    873     public static final String DOT_ANDROID_PACKAGE = DOT + EXT_ANDROID_PACKAGE;
    874     /** Dot-Extension of aidl files, i.e. ".aidl" */
    875     public static final String DOT_AIDL = DOT + EXT_AIDL;
    876     /** Dot-Extension of renderscript files, i.e. ".rs" */
    877     public static final String DOT_RS = DOT + EXT_RS;
    878     /** Dot-Extension of dependency files, i.e. ".d" */
    879     public static final String DOT_DEP = DOT + EXT_DEP;
    880     /** Dot-Extension of dex files, i.e. ".dex" */
    881     public static final String DOT_DEX = DOT + EXT_DEX;
    882     /** Dot-Extension for temporary resource files, ie "ap_ */
    883     public static final String DOT_RES = DOT + EXT_RES;
    884     /** Dot-Extension for BMP files, i.e. ".bmp" */
    885     public static final String DOT_BMP = ".bmp"; //$NON-NLS-1$
    886     /** Dot-Extension for SVG files, i.e. ".svg" */
    887     public static final String DOT_SVG = ".svg"; //$NON-NLS-1$
    888     /** Dot-Extension for template files */
    889     public static final String DOT_FTL = ".ftl"; //$NON-NLS-1$
    890     /** Dot-Extension of text files, i.e. ".txt" */
    891     public static final String DOT_TXT = ".txt"; //$NON-NLS-1$
    892 
    893     /** Resource base name for java files and classes */
    894     public static final String FN_RESOURCE_BASE = "R"; //$NON-NLS-1$
    895     /** Resource java class  filename, i.e. "R.java" */
    896     public static final String FN_RESOURCE_CLASS = FN_RESOURCE_BASE + DOT_JAVA;
    897     /** Resource class file  filename, i.e. "R.class" */
    898     public static final String FN_COMPILED_RESOURCE_CLASS = FN_RESOURCE_BASE + DOT_CLASS;
    899     /** Manifest java class filename, i.e. "Manifest.java" */
    900     public static final String FN_MANIFEST_CLASS = "Manifest.java"; //$NON-NLS-1$
    901 
    902     public static final String DRAWABLE_FOLDER = "drawable";           //$NON-NLS-1$
    903     public static final String DRAWABLE_XHDPI = "drawable-xhdpi";      //$NON-NLS-1$
    904     public static final String DRAWABLE_HDPI = "drawable-hdpi";        //$NON-NLS-1$
    905     public static final String DRAWABLE_MDPI = "drawable-mdpi";        //$NON-NLS-1$
    906     public static final String DRAWABLE_LDPI = "drawable-ldpi";        //$NON-NLS-1$
    907 
    908     // Resources
    909     public static final String PREFIX_RESOURCE_REF = "@";               //$NON-NLS-1$
    910     public static final String PREFIX_THEME_REF = "?";                  //$NON-NLS-1$
    911     public static final String ANDROID_PREFIX = "@android:";            //$NON-NLS-1$
    912     public static final String ANDROID_THEME_PREFIX = "?android:";      //$NON-NLS-1$
    913     public static final String LAYOUT_RESOURCE_PREFIX = "@layout/";     //$NON-NLS-1$
    914     public static final String STYLE_RESOURCE_PREFIX = "@style/";       //$NON-NLS-1$
    915     public static final String NEW_ID_PREFIX = "@+id/";                 //$NON-NLS-1$
    916     public static final String ID_PREFIX = "@id/";                      //$NON-NLS-1$
    917     public static final String DRAWABLE_PREFIX = "@drawable/";          //$NON-NLS-1$
    918     public static final String STRING_PREFIX = "@string/";              //$NON-NLS-1$
    919     public static final String ANDROID_STRING_PREFIX = "@android:string/"; //$NON-NLS-1$
    920     public static final String ANDROID_LAYOUT_RESOURCE_PREFIX = "@android:layout/"; //$NON-NLS-1$
    921 
    922     public static final String RESOURCE_CLZ_ID = "id";                  //$NON-NLS-1$
    923     public static final String RESOURCE_CLZ_COLOR = "color";            //$NON-NLS-1$
    924     public static final String RESOURCE_CLZ_ARRAY = "array";            //$NON-NLS-1$
    925     public static final String RESOURCE_CLZ_ATTR = "attr";              //$NON-NLS-1$
    926     public static final String RESOURCE_CLR_STYLEABLE = "styleable";    //$NON-NLS-1$
    927     public static final String NULL_RESOURCE = "@null";                 //$NON-NLS-1$
    928     public static final String TRANSPARENT_COLOR = "@android:color/transparent";      //$NON-NLS-1$
    929     public static final String ANDROID_STYLE_RESOURCE_PREFIX = "@android:style/";     //$NON-NLS-1$
    930     public static final String REFERENCE_STYLE = "style/";                     //$NON-NLS-1$
    931     public static final String PREFIX_ANDROID = "android:";                    //$NON-NLS-1$
    932 
    933     // Packages
    934     public static final String ANDROID_PKG_PREFIX = "android.";         //$NON-NLS-1$
    935     public static final String WIDGET_PKG_PREFIX = "android.widget.";   //$NON-NLS-1$
    936     public static final String VIEW_PKG_PREFIX = "android.view.";       //$NON-NLS-1$
    937 
    938     // Project properties
    939     public static final String ANDROID_LIBRARY = "android.library";     //$NON-NLS-1$
    940     public static final String PROGUARD_CONFIG = "proguard.config";     //$NON-NLS-1$
    941     public static final String ANDROID_LIBRARY_REFERENCE_FORMAT = "android.library.reference.%1$d";//$NON-NLS-1$
    942     public static final String PROJECT_PROPERTIES = "project.properties";//$NON-NLS-1$
    943 
    944     // Java References
    945     public static final String ATTR_REF_PREFIX = "?attr/";               //$NON-NLS-1$
    946     public static final String R_PREFIX = "R.";                          //$NON-NLS-1$
    947     public static final String R_ID_PREFIX = "R.id.";                    //$NON-NLS-1$
    948     public static final String R_LAYOUT_RESOURCE_PREFIX = "R.layout.";            //$NON-NLS-1$
    949     public static final String R_DRAWABLE_PREFIX = "R.drawable.";        //$NON-NLS-1$
    950     public static final String R_ATTR_PREFIX = "R.attr.";                //$NON-NLS-1$
    951 
    952     // Attributes related to tools
    953     public static final String ATTR_IGNORE = "ignore";                   //$NON-NLS-1$
    954 
    955     // SuppressLint
    956     public static final String SUPPRESS_ALL = "all";                     //$NON-NLS-1$
    957     public static final String SUPPRESS_LINT = "SuppressLint";           //$NON-NLS-1$
    958     public static final String TARGET_API = "TargetApi";                 //$NON-NLS-1$
    959     public static final String FQCN_SUPPRESS_LINT = "android.annotation." + SUPPRESS_LINT; //$NON-NLS-1$
    960     public static final String FQCN_TARGET_API = "android.annotation." + TARGET_API; //$NON-NLS-1$
    961 
    962     // Class Names
    963     public static final String CONSTRUCTOR_NAME = "<init>";                          //$NON-NLS-1$
    964     public static final String CLASS_CONSTRUCTOR = "<clinit>";                       //$NON-NLS-1$
    965     public static final String FRAGMENT = "android/app/Fragment";                    //$NON-NLS-1$
    966     public static final String FRAGMENT_V4 = "android/support/v4/app/Fragment";      //$NON-NLS-1$
    967     public static final String ANDROID_APP_ACTIVITY = "android/app/Activity";        //$NON-NLS-1$
    968     public static final String ANDROID_APP_SERVICE = "android/app/Service";          //$NON-NLS-1$
    969     public static final String ANDROID_CONTENT_CONTENT_PROVIDER =
    970             "android/content/ContentProvider";                                       //$NON-NLS-1$
    971     public static final String ANDROID_CONTENT_BROADCAST_RECEIVER =
    972             "android/content/BroadcastReceiver";                                     //$NON-NLS-1$
    973 
    974     // Method Names
    975     public static final String FORMAT_METHOD = "format";                             //$NON-NLS-1$
    976     public static final String GET_STRING_METHOD = "getString";                      //$NON-NLS-1$
    977 
    978 
    979 
    980 
    981     public static final String ATTR_TAG = "tag";                        //$NON-NLS-1$
    982     public static final String ATTR_NUM_COLUMNS = "numColumns";         //$NON-NLS-1$
    983 
    984     // Some common layout element names
    985     public static final String CALENDAR_VIEW = "CalendarView";          //$NON-NLS-1$
    986     public static final String SPACE = "Space";                         //$NON-NLS-1$
    987     public static final String GESTURE_OVERLAY_VIEW = "GestureOverlayView";//$NON-NLS-1$
    988 
    989     public static final String ATTR_HANDLE = "handle";                  //$NON-NLS-1$
    990     public static final String ATTR_CONTENT = "content";                //$NON-NLS-1$
    991     public static final String ATTR_CHECKED = "checked";                //$NON-NLS-1$
    992 
    993     // TextView
    994     public static final String ATTR_DRAWABLE_RIGHT = "drawableRight";              //$NON-NLS-1$
    995     public static final String ATTR_DRAWABLE_LEFT = "drawableLeft";                //$NON-NLS-1$
    996     public static final String ATTR_DRAWABLE_BOTTOM = "drawableBottom";            //$NON-NLS-1$
    997     public static final String ATTR_DRAWABLE_TOP = "drawableTop";                  //$NON-NLS-1$
    998     public static final String ATTR_DRAWABLE_PADDING = "drawablePadding";          //$NON-NLS-1$
    999 
   1000     public static final String ATTR_USE_DEFAULT_MARGINS = "useDefaultMargins";      //$NON-NLS-1$
   1001     public static final String ATTR_MARGINS_INCLUDED_IN_ALIGNMENT = "marginsIncludedInAlignment"; //$NON-NLS-1$
   1002 
   1003     public static final String VALUE_WRAP_CONTENT = "wrap_content";             //$NON-NLS-1$
   1004     public static final String VALUE_FALSE= "false";                            //$NON-NLS-1$
   1005     public static final String VALUE_N_DP = "%ddp";                             //$NON-NLS-1$
   1006     public static final String VALUE_ZERO_DP = "0dp";                           //$NON-NLS-1$
   1007     public static final String VALUE_ONE_DP = "1dp";                            //$NON-NLS-1$
   1008     public static final String VALUE_TOP = "top";                               //$NON-NLS-1$
   1009     public static final String VALUE_LEFT = "left";                             //$NON-NLS-1$
   1010     public static final String VALUE_RIGHT = "right";                           //$NON-NLS-1$
   1011     public static final String VALUE_BOTTOM = "bottom";                         //$NON-NLS-1$
   1012     public static final String VALUE_CENTER_VERTICAL = "center_vertical";       //$NON-NLS-1$
   1013     public static final String VALUE_CENTER_HORIZONTAL = "center_horizontal";   //$NON-NLS-1$
   1014     public static final String VALUE_FILL_HORIZONTAL = "fill_horizontal";       //$NON-NLS-1$
   1015     public static final String VALUE_FILL_VERTICAL = "fill_vertical";           //$NON-NLS-1$
   1016     public static final String VALUE_0 = "0";                                   //$NON-NLS-1$
   1017     public static final String VALUE_1 = "1";                                   //$NON-NLS-1$
   1018 
   1019     // Gravity values. These have the GRAVITY_ prefix in front of value because we already
   1020     // have VALUE_CENTER_HORIZONTAL defined for layouts, and its definition conflicts
   1021     // (centerHorizontal versus center_horizontal)
   1022     public static final String GRAVITY_VALUE_ = "center";                             //$NON-NLS-1$
   1023     public static final String GRAVITY_VALUE_CENTER = "center";                       //$NON-NLS-1$
   1024     public static final String GRAVITY_VALUE_RIGHT = "right";                         //$NON-NLS-1$
   1025     public static final String GRAVITY_VALUE_LEFT = "left";                           //$NON-NLS-1$
   1026     public static final String GRAVITY_VALUE_BOTTOM = "bottom";                       //$NON-NLS-1$
   1027     public static final String GRAVITY_VALUE_TOP = "top";                             //$NON-NLS-1$
   1028     public static final String GRAVITY_VALUE_FILL_HORIZONTAL = "fill_horizontal";     //$NON-NLS-1$
   1029     public static final String GRAVITY_VALUE_FILL_VERTICAL = "fill_vertical";         //$NON-NLS-1$
   1030     public static final String GRAVITY_VALUE_CENTER_HORIZONTAL = "center_horizontal"; //$NON-NLS-1$
   1031     public static final String GRAVITY_VALUE_CENTER_VERTICAL = "center_vertical";     //$NON-NLS-1$
   1032     public static final String GRAVITY_VALUE_FILL = "fill";                           //$NON-NLS-1$
   1033 
   1034     /**
   1035      * The top level android package as a prefix, "android.".
   1036      */
   1037     public static final String ANDROID_SUPPORT_PKG_PREFIX = ANDROID_PKG_PREFIX + "support."; //$NON-NLS-1$
   1038 
   1039     /** The android.view. package prefix */
   1040     public static final String ANDROID_VIEW_PKG = ANDROID_PKG_PREFIX + "view."; //$NON-NLS-1$
   1041 
   1042     /** The android.widget. package prefix */
   1043     public static final String ANDROID_WIDGET_PREFIX = ANDROID_PKG_PREFIX + "widget."; //$NON-NLS-1$
   1044 
   1045     /** The android.webkit. package prefix */
   1046     public static final String ANDROID_WEBKIT_PKG = ANDROID_PKG_PREFIX + "webkit."; //$NON-NLS-1$
   1047 
   1048     /** The LayoutParams inner-class name suffix, .LayoutParams */
   1049     public static final String DOT_LAYOUT_PARAMS = ".LayoutParams"; //$NON-NLS-1$
   1050 
   1051     /** The fully qualified class name of an EditText view */
   1052     public static final String FQCN_EDIT_TEXT = "android.widget.EditText"; //$NON-NLS-1$
   1053 
   1054     /** The fully qualified class name of a LinearLayout view */
   1055     public static final String FQCN_LINEAR_LAYOUT = "android.widget.LinearLayout"; //$NON-NLS-1$
   1056 
   1057     /** The fully qualified class name of a RelativeLayout view */
   1058     public static final String FQCN_RELATIVE_LAYOUT = "android.widget.RelativeLayout"; //$NON-NLS-1$
   1059 
   1060     /** The fully qualified class name of a RelativeLayout view */
   1061     public static final String FQCN_GRID_LAYOUT = "android.widget.GridLayout"; //$NON-NLS-1$
   1062     public static final String FQCN_GRID_LAYOUT_V7 = "android.support.v7.widget.GridLayout"; //$NON-NLS-1$
   1063 
   1064     /** The fully qualified class name of a FrameLayout view */
   1065     public static final String FQCN_FRAME_LAYOUT = "android.widget.FrameLayout"; //$NON-NLS-1$
   1066 
   1067     /** The fully qualified class name of a TableRow view */
   1068     public static final String FQCN_TABLE_ROW = "android.widget.TableRow"; //$NON-NLS-1$
   1069 
   1070     /** The fully qualified class name of a TableLayout view */
   1071     public static final String FQCN_TABLE_LAYOUT = "android.widget.TableLayout"; //$NON-NLS-1$
   1072 
   1073     /** The fully qualified class name of a GridView view */
   1074     public static final String FQCN_GRID_VIEW = "android.widget.GridView"; //$NON-NLS-1$
   1075 
   1076     /** The fully qualified class name of a TabWidget view */
   1077     public static final String FQCN_TAB_WIDGET = "android.widget.TabWidget"; //$NON-NLS-1$
   1078 
   1079     /** The fully qualified class name of a Button view */
   1080     public static final String FQCN_BUTTON = "android.widget.Button"; //$NON-NLS-1$
   1081 
   1082     /** The fully qualified class name of a RadioButton view */
   1083     public static final String FQCN_RADIO_BUTTON = "android.widget.RadioButton"; //$NON-NLS-1$
   1084 
   1085     /** The fully qualified class name of a ToggleButton view */
   1086     public static final String FQCN_TOGGLE_BUTTON = "android.widget.ToggleButton"; //$NON-NLS-1$
   1087 
   1088     /** The fully qualified class name of a Spinner view */
   1089     public static final String FQCN_SPINNER = "android.widget.Spinner"; //$NON-NLS-1$
   1090 
   1091     /** The fully qualified class name of an AdapterView */
   1092     public static final String FQCN_ADAPTER_VIEW = "android.widget.AdapterView"; //$NON-NLS-1$
   1093 
   1094     /** The fully qualified class name of a ListView */
   1095     public static final String FQCN_LIST_VIEW = "android.widget.ListView"; //$NON-NLS-1$
   1096 
   1097     /** The fully qualified class name of an ExpandableListView */
   1098     public static final String FQCN_EXPANDABLE_LIST_VIEW = "android.widget.ExpandableListView"; //$NON-NLS-1$
   1099 
   1100     /** The fully qualified class name of a GestureOverlayView */
   1101     public static final String FQCN_GESTURE_OVERLAY_VIEW = "android.gesture.GestureOverlayView"; //$NON-NLS-1$
   1102 
   1103     /** The fully qualified class name of a DatePicker */
   1104     public static final String FQCN_DATE_PICKER = "android.widget.DatePicker"; //$NON-NLS-1$
   1105 
   1106     /** The fully qualified class name of a TimePicker */
   1107     public static final String FQCN_TIME_PICKER = "android.widget.TimePicker"; //$NON-NLS-1$
   1108 
   1109     /** The fully qualified class name of a RadioGroup */
   1110     public static final String FQCN_RADIO_GROUP = "android.widgets.RadioGroup";  //$NON-NLS-1$
   1111 
   1112     /** The fully qualified class name of a Space */
   1113     public static final String FQCN_SPACE = "android.widget.Space"; //$NON-NLS-1$
   1114     public static final String FQCN_SPACE_V7 = "android.support.v7.widget.Space"; //$NON-NLS-1$
   1115 
   1116     /** The fully qualified class name of a TextView view */
   1117     public static final String FQCN_TEXT_VIEW = "android.widget.TextView"; //$NON-NLS-1$
   1118 
   1119     /** The fully qualified class name of an ImageView view */
   1120     public static final String FQCN_IMAGE_VIEW = "android.widget.ImageView"; //$NON-NLS-1$
   1121 
   1122     public static final String ATTR_SRC = "src"; //$NON-NLS-1$
   1123 
   1124     public static final String ATTR_GRAVITY = "gravity"; //$NON-NLS-1$
   1125     public static final String ATTR_WEIGHT_SUM = "weightSum"; //$NON-NLS-1$
   1126     public static final String ATTR_EMS = "ems"; //$NON-NLS-1$
   1127 
   1128     public static final String VALUE_HORIZONTAL = "horizontal"; //$NON-NLS-1$
   1129 
   1130     /**
   1131      * The highest known API level. Note that the tools may also look at the
   1132      * installed platforms to see if they can find more recently released
   1133      * platforms, e.g. when the tools have not yet been updated for a new
   1134      * release. This number is used as a baseline and any more recent platforms
   1135      * found can be used to increase the highest known number.
   1136      */
   1137     public static final int HIGHEST_KNOWN_API = 16;
   1138 }
   1139