<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "../dtd/reference.dtd">
<reference id="u_new-proj-widget_android" xml:lang="en-us">
  <title>New Android Widget Project</title>
  <shortdesc>Creates a project for an Android widget.</shortdesc>
  <prolog>
    <metadata>
      <keywords>
        <!--<indexterm></indexterm>-->
      </keywords>
    </metadata>
  </prolog>
  <refbody>
    <section>
      <simpletable>
        <strow>
          <stentry><uicontrol>Project name</uicontrol></stentry>
          <stentry>A name for the newly created Eclipse project. Note that MOTODEV Studio will create a folder for your
            project using this name; therefore, the name you supply must follow the rules for filenames on your host
            operating system.</stentry>
        </strow>
        <strow>
          <stentry><uicontrol>Use default location</uicontrol></stentry>
          <stentry>Indicates whether projects should be created in the current workspace. To specify a different
            location, clear this option and then use the <uicontrol>Location</uicontrol> field to specify the folder in
            which the project is to be created.</stentry>
        </strow>
        <strow>
          <stentry><uicontrol>Location</uicontrol></stentry>
          <stentry>Specifies the folder in which projects are created. By default projects are created in the current
            workspace. Clear the <uicontrol>Use default location</uicontrol> option to specify a different
          location.</stentry>
        </strow>
        <strow>
          <stentry><uicontrol>Target</uicontrol></stentry>
          <stentry>Specifies the Android platform against which the application is to be built.</stentry>
        </strow>
        <strow>
          <stentry><uicontrol>Application name</uicontrol></stentry>
          <stentry>The name of your widget application as it will appear to the user on the Android device.</stentry>
        </strow>
        <strow>
          <stentry><uicontrol>Package name</uicontrol></stentry>
          <stentry>The full Java package name for your application. Note that this needs to be a unique identifier; use
            standard domain-style naming.</stentry>
        </strow>
        <strow>
          <stentry><uicontrol>Activity name</uicontrol></stentry>
          <stentry>The name for the application's main activity. This is the name for the class stub that will be
            generated by the plugin.</stentry>
        </strow>
        <strow>
          <stentry><uicontrol>Min SDK version</uicontrol></stentry>
          <stentry>A value that corresponds to the minimum required API level. This value determines whether or not your
            application will run on a given Android device: if the <uicontrol>Min SDK version</uicontrol> is greater
            than the level supported by the device, the application will not run on that device. This field is
            automatically set when you specify a <uicontrol>Target</uicontrol>, but can be overridden.</stentry>
        </strow>
      </simpletable>
    </section>
  </refbody>
</reference>
