From c56cd34dcafe0d854a3a2b234a32cf859708f1df Mon Sep 17 00:00:00 2001 From: "smain@google.com" Date: Fri, 5 Dec 2014 11:26:00 -0800 Subject: [PATCH] docs: setup-virtual-device Change-Id: I7c49f97c6ebbf64fb642dc24698e172361e5694f --- docs/html/images/tools/as-avd-start.png | Bin 0 -> 4493 bytes docs/html/images/ui/studio-avdmgr-icon.png | Bin 546 -> 0 bytes docs/html/tools/devices/emulator.jd | 70 +++---- docs/html/tools/devices/index.jd | 2 +- docs/html/tools/devices/managing-avds.jd | 210 +++++++++++---------- 5 files changed, 144 insertions(+), 138 deletions(-) create mode 100644 docs/html/images/tools/as-avd-start.png delete mode 100644 docs/html/images/ui/studio-avdmgr-icon.png diff --git a/docs/html/images/tools/as-avd-start.png b/docs/html/images/tools/as-avd-start.png new file mode 100644 index 0000000000000000000000000000000000000000..02c58ef044517311c3855354f1f45971d43469f8 GIT binary patch literal 4493 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 Virtual Devices.

During development and testing of your application, you install and run your application in the Android emulator. You can launch the emulator as a standalone -application from a command line, or you can run it from within your Eclipse +application from a command line, or you can run it from within your Android Studio development environment. In either case, you specify the AVD configuration to load and any startup options you want to use, as described in this document.

@@ -188,13 +188,13 @@ window. For more information about command line options for the emulator, see th instances of the emulator concurrently, each with its own AVD configuration and storage area for user data, SD card, and so on.

-

If you are working in Eclipse, the ADT plugin for Eclipse installs your -application and starts the emulator automatically, when you run or debug -the application. You can specify emulator startup options in the Run/Debug +

When you run your app from Android Studio, it installs and launches the +app on your connected device or emulator (launching the emulator, if necessary). +You can specify emulator startup options in the Run/Debug dialog, in the Target tab. When the emulator is running, you can issue console commands as described later in this document.

-

If you are not working in Eclipse, see Installing Applications +

If you are not working in Android Studio, see Installing Applications on the Emulator for information about how to install your application.

To stop an emulator instance, just close the emulator's window.

@@ -206,7 +206,7 @@ reference.

Installing Applications on the Emulator

-

If you don't have access to Eclipse or the ADT Plugin, you can install your application on the +

If you don't have access to Android Studio, you can install your application on the emulator using the adb utility. Before installing the application, you need to build and package it into an .apk as described in Building and @@ -287,16 +287,16 @@ option: Android 4.0.3 (API Level 15, revision 3) or higher system image target. Graphics acceleration is not available for earlier system images.

-
  • If you are running the emulator from Eclipse, run your Android application using an AVD with -the {@code -gpu on} option enabled: +
  • If you are running the emulator from Android Studio, run your Android application using an AVD +with the {@code -gpu on} option enabled:
      -
    1. In Eclipse, click your Android project folder and then select Run > Run -Configurations...
    2. -
    3. In the left panel of the Run Configurations dialog, select your Android -project run configuration or create a new configuration.
    4. -
    5. Click the Target tab.
    6. -
    7. Select the AVD you created in the previous procedure.
    8. -
    9. In the Additional Emulator Command Line Options field, enter:
      +
    10. In Android Studio, click your Android application module folder and then select + Run > Edit Configurations...
    11. +
    12. In the left panel of the Run/Debug Configurations dialog, select your Android + run configuration or create a new configuration.
    13. +
    14. Under the Device Target options, + select the AVD you created in the previous procedure.
    15. +
    16. In the Additional Command Line Options field, enter:
      {@code -gpu on}
    17. Run your Android project using this run configuration.
    @@ -414,15 +414,15 @@ SERVICE_NAME: intelhaxm

    Note: You must provide an x86-based AVD configuration name, otherwise VM acceleration will not be enabled.

  • -
  • If you are running the emulator from Eclipse, run your Android application with an x86-based +
  • If you are running the emulator from Android Studio, run your Android application with an x86-based AVD:
      -
    1. In Eclipse, click your Android project folder and then select Run > Run +
    2. In Android Studio, click your Android project folder and then select Run > Edit Configurations...
    3. -
    4. In the left panel of the Run Configurations dialog, select your Android -project run configuration or create a new configuration.
    5. -
    6. Click the Target tab.
    7. -
    8. Select the x86-based AVD you created previously.
    9. +
    10. In the left panel of the Run/Debug Configurations dialog, select your Android +run configuration or create a new configuration.
    11. +
    12. Under the Device Target options, select the x86-based AVD you created +previously.
    13. Run your Android project using this run configuration.
  • @@ -467,15 +467,15 @@ opening a terminal window and running the following command:

    Note: You must provide an x86-based AVD configuration name, otherwise VM acceleration will not be enabled.

    -
  • If you are running the emulator from Eclipse, run your Android application with an x86-based +
  • If you are running the emulator from Andriod Studio, run your Android application with an x86-based AVD:
      -
    1. In Eclipse, click your Android project folder and then select Run > Run +
    2. In Android Studio, click your Android module folder and then select Run > Edit Configurations...
    3. -
    4. In the left panel of the Run Configurations dialog, select your Android -project run configuration or create a new configuration.
    5. -
    6. Click the Target tab.
    7. -
    8. Select the x86-based AVD you created previously.
    9. +
    10. In the left panel of the Run/Debug Configurations dialog, select your Android +run configuration or create a new configuration.
    11. +
    12. Under the Device Target options, + select the x86-based AVD you created previously.
    13. Run your Android project using this run configuration.
  • @@ -513,16 +513,16 @@ AVD and include the KVM options:

    Note: You must provide an x86-based AVD configuration name, otherwise VM acceleration will not be enabled.

    -
  • If you are running the emulator from Eclipse, run your Android application with an x86-based +
  • If you are running the emulator from Android Studio, run your Android application with an x86-based AVD and include the KVM options:
      -
    1. In Eclipse, click your Android project folder and then select Run > Run +
    2. In Android Studio, click your Android module folder and then select Run > Edit Configurations...
    3. -
    4. In the left panel of the Run Configurations dialog, select your Android -project run configuration or create a new configuration.
    5. -
    6. Click the Target tab.
    7. -
    8. Select the x86-based AVD you created previously.
    9. -
    10. In the Additional Emulator Command Line Options field, enter: +
    11. In the left panel of the Run/Debug Configurations dialog, select your Android +run configuration or create a new configuration.
    12. +
    13. Under the Device Target options, select the x86-based AVD you created +previously.
    14. +
    15. In the Additional Command Line Options field, enter:
      -qemu -m 512 -enable-kvm
    16. Run your Android project using this run configuration.
    17. @@ -721,7 +721,7 @@ in the AVD directory, or in a custom location (if you specified a path with the Override using -data <filepath>, where <filepath> is the path the image, relative to the current working directory. If you supply a filename only, the emulator looks for the file in the current working directory. If the file at <filepath> does -not exist, the emulator creates an image from the default userdata.img, stores it under the name you +not exist, the emulator creates an image from the default userdata.img, stores it under the name you specified, and persists user data to it at shutdown. diff --git a/docs/html/tools/devices/index.jd b/docs/html/tools/devices/index.jd index bec226810323a..1ea4c478b8b20 100644 --- a/docs/html/tools/devices/index.jd +++ b/docs/html/tools/devices/index.jd @@ -67,7 +67,7 @@ options, from the <sdk>/tools/ directory.

      To learn how to manage AVDs using a graphical tool, read Managing AVDs with AVD Manager. To -learn how to manage AVDs on the command line, read + learn how to manage AVDs on the command line, read Managing AVDs from the Command Line.

      diff --git a/docs/html/tools/devices/managing-avds.jd b/docs/html/tools/devices/managing-avds.jd index 9afa88a803917..4ca858846dbb6 100644 --- a/docs/html/tools/devices/managing-avds.jd +++ b/docs/html/tools/devices/managing-avds.jd @@ -10,100 +10,110 @@ parent.link=index.html
      1. Creating an AVD
          +
        1. Creating a device definition
        2. Hardware options
      2. +
      3. Creating Emulator Skins
      -

      The AVD Manager is an easy to use user interface to manage your AVD (Android Virtual Device) - configurations. An AVD is a device configuration for the Android emulator that allows you to - model different configurations of Android-powered devices. When you start the AVD Manager in Android - Studio or navigate to your SDK's {@code tools/} directory and execute - android avd, you will see the AVD Manager main screen with your current virtual - devices. You can right-click an existing AVD to perform actions on the AVD, such as delete, - duplicate, wipe data, show on disk, and display details.

      +

      The AVD Manager is a tool you can use + to create and manage Android virtual devices (AVDs), which define device configurations + for the Android Emulator.

      + +

      To launch the AVD Manager:

      +
        +
      • In Android Studio, select Tools > Android > AVD Manager, or click + the AVD Manager icon in the toolbar.
      • + +
      • Or, use the command line to navigate to your SDK's tools/ directory and execute: +
        $ android avd
        +
      • +
      + +

      The AVD Manager main screen shows your current virtual devices, as shown in figure 1.

      + -

      Figure 1. AVD Manager.

      +

      Figure 1. The AVD Manager main screen shows your current + virtual devices.

      + + +

      Note: If you launch the AVD Manager from the command line, the UI +is different than how it appears in Android Studio, as documented here. Most of the same +functionality is available, but the command-line version of the AVD Manager +is currently not documented.

      Creating an AVD

      -

      You can create as many AVDs as you would like to test on. It is recommended that you test your - applications on all API levels higher than the target API level for your application.

      +

      You can create as many AVDs as you would like to use with the Android Emulator. + To effectively test your app, you should create an AVD that models each device type for which + you have designed your app to support. For instance, you should create an AVD for each + API level equal to and higher than the minimum version you've specified in your manifest + {@code <uses-sdk>} tag.

      -

      To create an AVD:

      +

      To create an AVD based on an existing device definition:

        -
      1. Start the AVD Manager: +
      2. From the main screen (figure 1), click Create Virtual Device.
      3. -
          -
        • In Android Studio: select Tools > Android > AVD Manager, or click - the AVD Manager icon in the Android Studio toolbar.
        • +
        • In the Select Hardware window, select a device configuration, such as Nexus 6, + then click Next.

          - -
        • In other IDEs: Navigate to your SDK's tools/ directory and execute the - android tool with no arguments.
        • -
        + +

        Figure 2. The Select Hardware window.

        - -
      4. Click Create Virtual Device to create an AVD. The - Select Hardware dialog appears.

        - - -

        Figure 2. Select Hardware window.

        +
      5. Select the desired system version for the AVD and click Next.
      6. - -
      7. Select the device category and form factor. Click Edit Device to modify - an existing AVD, or click New Hardware Profile to create a new hardware profile. - Click Next to continue.

        -

        The hardware profile includes settings for screen size, camera, memory options,input type, - and sensors. For a list of hardware features, see Hardware options.

        - - -

        Figure 3. Configure Hardware window.

        +
      8. Verify the configuration settings, then click Finish. +

        If necessary, click Show Advanced Settings to select a custom skin + for the hardware profile and adjust other hardware settings.

      9. - -
      10. Select the desired system image. Click Install Latest Version to download - a new system image. Click Next to continue. -
      11. - -
      12. Fill in the details for the AVD. - -

        Give it a name, device type, platform target, image size, orientation, and emulator - performance. Click Show Advanced Settings to assign a custom skin to the - hardware profile and other advanced settings for the device type. -

        - -

        Tip:Store custom skins in an easily accessible directory, - such as ~/skins. From information about custom skins, see - Skins.

        - - -

        Figure 4. Configure AVD window.

        - -

        Tip: Be sure to define a target for your AVD that satisfies - your application's Build Target (the AVD platform target must have an API Level equal to or - greater than the API Level that your application compiles against).

        -
      13. - -
      14. Click Finish.
      -

      Your AVD is now ready and you can either close the AVD Manager, create more AVDs, or - manage an emulator with the AVD by clicking an icon in the Actions column: -

      +

      To launch the AVD in the Android Emulator, click the launch button + + in the list of AVDs.

      + + +

      Creating a device definition

      + +

      In case the available device definitions do not match the device type you'd like to emulate, +you can create a custom device definition for your AVD:

      +
        +
      1. From the main screen (figure 1), click Create Virtual Device.
      2. +
      3. To begin you custom device by using an existing device profile as a template, select + a device profile then click Clone Device. +

        Or, to start from scratch, click New Hardware Profile.

        +
      4. +
      5. +

        The following Configure Hardware Profile window (figure 3) allows you to specify various +configurations such as the screen size, memory options, input type, and sensors.

        + +

        When you're done configuring the device, click Finish.

        + + +

        Figure 3. The Configure Hardware window when + creating a custom device configuration.

        +
      6. +
      7. Your custom device configuration is now available in the list of device definitions + (shown after you click Create Virtual Device). To continue preparing an AVD + with your custom device configuration, select the new configuration and follow the instructions + above to create an AVD with an existing device definition (and select your new definition).
      8. + +
      -
        -
      • Start an AVD
      • -
      • Edit an AVD
      • -
      • Perform management actions
      • -

      Hardware options

      +

      If you are creating a new AVD, you can specify the following hardware options for the AVD to emulate:

      @@ -264,28 +274,31 @@ to emulate:

      -

      Using Custom Emulator Skins

      -

      A custom Android emulator skin is a collection of files that enable you to customize the visual -and control elements of an emulator display. Custom emulator skins enable you to define variations -of emulation properties, such as the use of a trackball or touchscreen, to match your device -customizations. Each custom emulator skin contains:

      +

      Creating Emulator Skins

      + +

      An Android emulator skin is a collection of files that define the visual and control elements of +an emulator display. If the skin definitions available in the AVD settings don't meet your needs, +you can create your own custom skin definition, then apply it to your AVD from the +advanced settings on the Verify Configuration screen.

      + +

      Each emulator skin contains:

        -
      • A hardware.ini file for initialization settings
      • +
      • A hardware.ini file
      • Layout files for supported orientations (landscape, portrait) and physical configuration
      • Image files for display elements, such as background, keys and buttons

      To create and use a custom skin:

      -
        -
      1. Create a skin folder in an easily accessible location, such as ~/skins.
      2. -
      3. Define the skin orientation and configuration settings in a file called layout - in the skin folder. -
        + 
          +
        1. Create a new directory where you will save your skin configuration files.
        2. +
        3. Define the visual appearance of the skin in a text file named + layout. This file defines many characteristics of the skin, such as the + size and image assets for specific buttons. For example: +
           parts {
          -
               device {
                   display {
          -            width   1080
          -            height  1920
          +            width   320
          +            height  480
                       x       0
                       y       0
                   }
          @@ -299,32 +312,25 @@ parts {
                   buttons {
                       power {
                           image  button_vertical.png
          -                 x  1229
          -                 y  616
          +                x 1229
          +                y 616
                       }
                   }
               }
          -  ...
          +    ...
           }
          -
           
        4. -
        5. Creates a hardware.ini file for the skin-specific properties that determine - emulator specifications and behavior. For a complete list of emulator properties, see - Managing AVDs from the Command - Line. For example:
        6. -
          -# skin-specific hardware values
          -hw.lcd.density=213
          -vm.heapSize=48
          -hw.ramSize=1024
          -hw.keyboard.lid=no
          -hw.mainKeys=no
          -
          -
        7. Add the bitmap files of the device images to the skin folder.
        8. -
        9. Archive the files in the skin folder.
        10. -
        11. Create a new AVD and select the archive file as a custom skin.
        12. -
        +
      4. Add the bitmap files of the device images in the same directory.
      5. +
      6. Specify additional hardware-specific device configurations an hardware.ini + file for the device settings, such as hw.keyboard and + hw.lcd.density.
      7. +
      8. Archive the files in the skin folder and select the archive file as a custom skin.
      9. +
      + +

      For more detailed information about creating emulator skins, see the +Android Emulator Skin File Specification in the tools source code.

      + -

      You can now run the AVD with a custom skin for testing and viewing your app.