javax.swing.plaf.basic.BasicComboBoxRenderer#com.android.sdklib.devices.Device源码实例Demo

下面列出了javax.swing.plaf.basic.BasicComboBoxRenderer#com.android.sdklib.devices.Device 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: javaide   文件: HardwareConfigHelper.java
/**
 * Returns a user-displayable description of the given generic device
 * @param device the device to check
 * @return the label
 * @see #isGeneric(Device)
 */
@NonNull
public static String getGenericLabel(@NonNull Device device) {
    // * Use the same precision for all devices (all but one specify decimals)
    // * Add some leading space such that the dot ends up roughly in the
    //   same space
    // * Add in screen resolution and density
    String name = device.getDisplayName();
    Matcher matcher = GENERIC_PATTERN.matcher(name);
    if (matcher.matches()) {
        String size = matcher.group(1);
        String n = matcher.group(2);
        int dot = size.indexOf('.');
        if (dot == -1) {
            size += ".0";
            dot = size.length() - 2;
        }
        for (int i = 0; i < 2 - dot; i++) {
            size = ' ' + size;
        }
        name = size + "\" " + n;
    }

    return String.format(Locale.US, "%1$s (%2$s)", name,
            getResolutionString(device));
}
 
源代码2 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
    Device device = devices.get(rowIndex);
    switch (columnIndex) {
        case 0:
            return device.getDisplayName();
        case 1:
            if (device.hasPlayStore()) {
                return new ImageIcon(ImageUtilities.loadImage("org/netbeans/modules/android/avd/manager/device-play-store.png"));
            }
            return null;
        case 2:
            return getDiagonalSize(device);
        case 3:
            return getDimensionString(device);
        case 4:
            return getDensityString(device);
        default:
            return "Err";
    }
}
 
源代码3 项目: NBANDROID-V2   文件: AvdManager.java
String getResolution(AvdInfo info) {
    Device device = deviceManager.getDevice(info.getDeviceName(), info.getDeviceManufacturer());
    Dimension res = null;
    Density density = null;
    if (device != null) {
        res = device.getScreenSize(device.getDefaultState().getOrientation());
        density = device.getDefaultHardware().getScreen().getPixelDensity();
    }
    String resolution;
    String densityString = density == null ? "Unknown Density" : density.getResourceValue();
    if (res != null) {
        resolution = String.format(Locale.getDefault(), "%1$d \u00D7 %2$d: %3$s", res.width, res.height, densityString);
    } else {
        resolution = "Unknown Resolution";
    }
    return resolution;
}
 
源代码4 项目: java-n-IDE-for-Android   文件: AvdManager.java
/**
 * Updates the device-specific part of an AVD ini.
 * @param avd the AVD to update.
 * @param log the log object to receive action logs. Cannot be null.
 * @return The new AVD on success.
 * @throws IOException
 */
public AvdInfo updateDeviceChanged(AvdInfo avd, ILogger log) throws IOException {

    // Overwrite the properties derived from the device and nothing else
    Map<String, String> properties = new HashMap<String, String>(avd.getProperties());

    DeviceManager devMan = DeviceManager.createInstance(myLocalSdk.getLocation(), log);
    Collection<Device> devices = devMan.getDevices(DeviceManager.ALL_DEVICES);
    String name = properties.get(AvdManager.AVD_INI_DEVICE_NAME);
    String manufacturer = properties.get(AvdManager.AVD_INI_DEVICE_MANUFACTURER);

    if (properties != null && devices != null && name != null && manufacturer != null) {
        for (Device d : devices) {
            if (d.getId().equals(name) && d.getManufacturer().equals(manufacturer)) {
                properties.putAll(DeviceManager.getHardwareProperties(d));
                try {
                    return updateAvd(avd, properties, AvdStatus.OK, log);
                } catch (IOException e) {
                    log.error(e, null);
                }
            }
        }
    } else {
        log.error(null, "Base device information incomplete or missing.");
    }
    return null;
}
 
源代码5 项目: javaide   文件: HardwareConfigHelper.java
/**
 * Returns a user-displayable description of the given Nexus device
 * @param device the device to check
 * @return the label
 * @see #isNexus(com.android.sdklib.devices.Device)
 */
@NonNull
public static String getNexusLabel(@NonNull Device device) {
    String name = device.getDisplayName();
    Screen screen = device.getDefaultHardware().getScreen();
    float length = (float) screen.getDiagonalLength();
    // Round dimensions to the nearest tenth
    length = Math.round(10 * length) / 10.0f;
    return String.format(Locale.US, "%1$s (%3$s\", %2$s)",
            name, getResolutionString(device), Float.toString(length));
}
 
源代码6 项目: javaide   文件: HardwareConfigHelper.java
/**
 * Returns a user displayable screen resolution string for the given device
 * @param device the device to look up the string for
 * @return a user displayable string
 */
@NonNull
public static String getResolutionString(@NonNull Device device) {
    Screen screen = device.getDefaultHardware().getScreen();
    return String.format(Locale.US,
            "%1$d \u00D7 %2$d: %3$s", // U+00D7: Unicode multiplication sign
            screen.getXDimension(),
            screen.getYDimension(),
            screen.getPixelDensity().getResourceValue());
}
 
源代码7 项目: javaide   文件: HardwareConfigHelper.java
/**
 * Returns the rank of the given nexus device. This can be used to order
 * the devices chronologically.
 *
 * @param device the device to look up the rank for
 * @return the rank of the device
 */
public static int nexusRank(Device device) {
    String id = device.getId();
    if (id.equals("Nexus One")) {      //$NON-NLS-1$
        return 1;
    }
    if (id.equals("Nexus S")) {        //$NON-NLS-1$
        return 2;
    }
    if (id.equals("Galaxy Nexus")) {   //$NON-NLS-1$
        return 3;
    }
    if (id.equals("Nexus 7")) {        //$NON-NLS-1$
        return 4; // 2012 version
    }
    if (id.equals("Nexus 10")) {       //$NON-NLS-1$
        return 5;
    }
    if (id.equals("Nexus 4")) {        //$NON-NLS-1$
        return 6;
    }
    if (id.equals("Nexus 7 2013")) {   //$NON-NLS-1$
        return 7;
    }
    if (id.equals("Nexus 5")) {        //$NON-NLS-1$
      return 8;
    }
    if (id.equals("Nexus 9")) {        //$NON-NLS-1$
        return 9;
    }
    if (id.equals("Nexus 6")) {        //$NON-NLS-1$
        return 10;
    }

    return 100; // devices released in the future?
}
 
源代码8 项目: javaide   文件: HardwareConfigHelper.java
/**
 * Sorts the given list of Nexus devices according to rank
 * @param list the list to sort
 */
public static void sortNexusList(@NonNull List<Device> list) {
    Collections.sort(list, new Comparator<Device>() {
        @Override
        public int compare(Device device1, Device device2) {
            // Descending order of age
            return nexusRank(device2) - nexusRank(device1);
        }
    });
}
 
源代码9 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
private void createProfileButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createProfileButtonActionPerformed
    // TODO add your handling code here:
    Device device = AvdHwProfile.showDeviceProfiler(null, deviceManager, false);
    if (device != null) {
        deviceManager.addUserDevice(device);
        deviceManager.saveUserDevices();
        refreshDevices();
    }
}
 
源代码10 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
private void importProfileButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_importProfileButtonActionPerformed
    // TODO add your handling code here:
    FileChooserBuilder builder = new FileChooserBuilder("android-devices");
    builder.setFilesOnly(true);
    builder.setFileFilter(new FileNameExtensionFilter("Android devide definition", "xml", "XML"));
    File[] files = builder.showMultiOpenDialog();
    if (files != null) {
        for (File file : files) {
            try {
                Table<String, String, Device> devices = DeviceParser.parse(file);
                Map<String, Map<String, Device>> rowMap = devices.rowMap();
                rowMap.values().stream().forEach((t) -> {
                    t.values().stream().forEach((d) -> {
                        Device device = AvdHwProfile.showDeviceProfiler(d, deviceManager, false);
                        if (device != null) {
                            deviceManager.addUserDevice(d);
                        }
                    });
                });
            } catch (Exception ex) {
                NotifyDescriptor nd = new NotifyDescriptor.Message("Error while parsing Android device definition!", NotifyDescriptor.ERROR_MESSAGE);
                DialogDisplayer.getDefault().notifyLater(nd);
            }
        }
        deviceManager.saveUserDevices();
        refreshDevices();
    }
}
 
源代码11 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
private void cloneButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cloneButtonActionPerformed
    // TODO add your handling code here:
    if (selectedDevice != null) {
        Device device = AvdHwProfile.showDeviceProfiler(selectedDevice, deviceManager, false);
        if (device != null) {
            deviceManager.addUserDevice(device);
            deviceManager.saveUserDevices();
            refreshDevices();
        }

    }
}
 
源代码12 项目: NBANDROID-V2   文件: AvdHwProfile.java
public static Device showDeviceProfiler(Device device, DeviceManager deviceManager,boolean edit) {
    final AvdHwProfile hwProfile = new AvdHwProfile(device, deviceManager,edit);
    DialogDescriptor dd = new DialogDescriptor(hwProfile, "Device profile editor", true, DialogDescriptor.OK_CANCEL_OPTION, DialogDescriptor.CANCEL_OPTION, null);
    Object notify = DialogDisplayer.getDefault().notify(dd);
    if (DialogDescriptor.OK_OPTION.equals(notify)) {
        Device buildDevice = hwProfile.buildDevice();
        NbPreferences.forModule(CreateAvdVisualPanel1.class).putBoolean(buildDevice.getId(), buildDevice.hasPlayStore());
        return buildDevice;
    }
    return null;
}
 
源代码13 项目: NBANDROID-V2   文件: AvdHwProfile.java
public String getUniqueId( String id) {
    String baseId = id == null ? "New Device" : id;
    Collection<Device> devices = deviceManager.getDevices(DeviceManager.DeviceFilter.USER);
    String candidate = baseId;
    int i = 0;
    while (anyIdMatches(candidate, devices)) {
        candidate = String.format(Locale.getDefault(), "%s %d", baseId, ++i);
    }
    return candidate;
}
 
源代码14 项目: NBANDROID-V2   文件: AvdHwProfile.java
private static boolean anyIdMatches( String id,  Collection<Device> devices) {
    for (Device d : devices) {
        if (id.equalsIgnoreCase(d.getId())) {
            return true;
        }
    }
    return false;
}
 
源代码15 项目: NBANDROID-V2   文件: AvdHwProfile.java
private Device buildDevice() {
    builder.setPlayStore(playstore.isSelected());
    builder.addAllState(generateStates(buildHardware()));
    builder.setName(deviceName.getText());
    if (edit) {
        builder.setId(deviceName.getText());
    }else{
        builder.setId(getUniqueId(deviceName.getText()));
    }
    builder.setManufacturer("User");
    DeviceType dt = (DeviceType) deviceType.getSelectedItem();
    switch (dt) {
        default:
            builder.setTagId(null);
            break;
        case TV:
            builder.setTagId(DeviceType.TV.id);
            break;
        case WEAR:
            builder.setTagId(DeviceType.WEAR.id);
            break;

    }
    Software software = new Software();
    software.setLiveWallpaperSupport(true);
    software.setPlayStoreEnabled(playstore.isSelected());
    software.setGlVersion("2.0");
    builder.addSoftware(software);
    return builder.build();
}
 
源代码16 项目: NBANDROID-V2   文件: CreateAvdVisualPanel3.java
void readSettings() {
    defaultSdk = (AndroidSdk) wiz.getProperty(ANDROID_SDK);
    avdManager = (AvdManager) wiz.getProperty(AVD_MANAGER);
    selectedDevice = (Device) wiz.getProperty(DEVICE_SELECTED);
    selectedImage = (SystemImageDescription) wiz.getProperty(SYSTEM_IMAGE);
    initAvdName();
    updateAvdId();
    defaultSkinPath = defaultSdk.getSdkPath() + File.separator + "skins";
    File skinFile = selectedDevice.getDefaultHardware().getSkinFile();
    String skinPath = defaultSdk.getSdkPath() + File.separator + "skins" + File.separator + skinFile;
    skinCombo.setModel(new SkinsComboboxModel(new File(defaultSkinPath)));
    skinCombo.setSelectedItem(new File(skinPath));
    skinCombo.setRenderer(new BasicComboBoxRenderer() {
        @Override
        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            Component component = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); //To change body of generated methods, choose Tools | Templates.
            if ((component instanceof JLabel) && (value instanceof File)) {
                ((JLabel) component).setText(((File) value).getName());
            }
            return component;
        }

    });
    performanceGraphics.setSelectedItem(GpuMode.AUTO);
    avdName.getDocument().addDocumentListener(this);
    performanceCores.setModel(new javax.swing.SpinnerNumberModel(RECOMMENDED_NUMBER_OF_CORES, 1, MAX_NUMBER_OF_CORES, 1));
    //   initPlaystore();
    initMemory();
}
 
源代码17 项目: javaide   文件: HardwareConfigHelper.java
/**
 * Whether the given device is a wear device
 */
public static boolean isWear(@Nullable Device device) {
    return device != null && device.getId().startsWith(ID_PREFIX_WEAR);
}
 
源代码18 项目: javaide   文件: HardwareConfigHelper.java
/**
 * Whether the given device is a TV device
 */
public static boolean isTv(@Nullable Device device) {
    return device != null && device.getId().startsWith(ID_PREFIX_TV);
}
 
源代码19 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
private void refreshDevices() {
    List<Device> allDevices = new ArrayList<>(deviceManager.getDevices(EnumSet.of(DeviceManager.DeviceFilter.DEFAULT, DeviceManager.DeviceFilter.USER, DeviceManager.DeviceFilter.VENDOR, DeviceManager.DeviceFilter.SYSTEM_IMAGES)));
    userDevices = new ArrayList<>(deviceManager.getDevices(EnumSet.of(DeviceManager.DeviceFilter.USER)));
    for (Device device : userDevices) {
        boolean playStore = NbPreferences.forModule(CreateAvdVisualPanel1.class).getBoolean(device.getId(), false);
        if (playStore) {
            try {
                Field declaredField = Device.class.getDeclaredField("mHasPlayStore");
                declaredField.setAccessible(true);
                declaredField.setBoolean(device, true);
            } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException ex) {
                Exceptions.printStackTrace(ex);
            }
            List<Software> allSoftware = device.getAllSoftware();
            for (int i = 0; i < allSoftware.size(); i++) {
                Software software = allSoftware.get(i);
                software.setPlayStoreEnabled(true);
            }
        }
        device.getId();
    }
    tvDevices = allDevices.stream().filter((t) -> {
        return isTv(t);
    }).collect(Collectors.toList());
    allDevices.removeAll(tvDevices);
    wearDevices = allDevices.stream().filter((t) -> {
        return HardwareConfigHelper.isWear(t);
    }).collect(Collectors.toList());
    allDevices.removeAll(wearDevices);
    mobileDevices = allDevices.stream().filter((t) -> {
        return isPhone(t);
    }).collect(Collectors.toList());
    allDevices.removeAll(mobileDevices);
    tabletDevices = allDevices.stream().filter((t) -> {
        return isTablet(t);
    }).collect(Collectors.toList());
    allDevices.removeAll(tabletDevices);
    modelMobile = new DevicesTableModel(mobileDevices);
    modelTablet = new DevicesTableModel(tabletDevices);
    modelTv = new DevicesTableModel(tvDevices);
    modelWear = new DevicesTableModel(wearDevices);
    tableMobile.setModel(modelMobile);
    tableTablet.setModel(modelTablet);
    tableTv.setModel(modelTv);
    tableWear.setModel(modelWear);
}
 
源代码20 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
public static boolean isPhone(Device d) {
    return d.getDefaultHardware().getScreen().getDiagonalLength() < PHONE_SIZE_CUTOFF;
}
 
源代码21 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
public static boolean isTablet(Device d) {
    return d.getDefaultHardware().getScreen().getDiagonalLength() >= PHONE_SIZE_CUTOFF;
}
 
源代码22 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
public static boolean isTv(Device d) {
    return HardwareConfigHelper.isTv(d) || d.getDefaultHardware().getScreen().getDiagonalLength() >= TV_SIZE_CUTOFF;
}
 
源代码23 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
public static String getDiagonalSize(Device device) {
    return DF.format(device.getDefaultHardware().getScreen().getDiagonalLength()) + '"';
}
 
源代码24 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
public static String getDimensionString(Device device) {
    Dimension size = device.getScreenSize(device.getDefaultState().getOrientation());
    return size == null ? "Unknown Resolution" : String.format(Locale.getDefault(), "%dx%d", size.width, size.height);
}
 
源代码25 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
public static String getDensityString(Device device) {
    return device.getDefaultHardware().getScreen().getPixelDensity().getResourceValue();
}
 
源代码26 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
public List<Device> getDevices() {
    return devices;
}
 
源代码27 项目: NBANDROID-V2   文件: CreateAvdVisualPanel1.java
public DevicesTableModel(List<Device> devices) {
    this.devices = devices;
}
 
源代码28 项目: NBANDROID-V2   文件: AvdHwProfile.java
private void initBootProperties( Device device) {
  for (Map.Entry<String, String> entry : device.getBootProps().entrySet()) {
    builder.addBootProp(entry.getKey(), entry.getValue());
  }
}
 
源代码29 项目: NBANDROID-V2   文件: AvdHwProfile.java
/**
 * Creates new form AvdHwProfile
 */
public AvdHwProfile(Device device, DeviceManager deviceManager,boolean edit) {
    this.deviceManager = deviceManager;
    this.edit=edit;
    initComponents();
    deviceType.setModel(new DefaultComboBoxModel<>(DeviceType.values()));
    if (device != null) {
         String tagId = device.getTagId();
        initBootProperties(device);
        if (tagId == null) {
            deviceType.setSelectedItem(DeviceType.MOBILE);
        } else if (DeviceType.TV.id.equals(tagId)) {
            deviceType.setSelectedItem(DeviceType.TV);
        } else if (DeviceType.WEAR.id.equals(tagId)) {
            deviceType.setSelectedItem(DeviceType.WEAR);
        }
        if (edit) {
            deviceName.setText(device.getDisplayName());
            deviceName.setEditable(false);
        }else{
            deviceName.setText(String.format("%s (Edited)", device.getDisplayName()));
        }
        if (CreateAvdVisualPanel1.isTv(device)) {
            deviceType.setSelectedItem(DeviceType.TV);
        } else if (HardwareConfigHelper.isWear(device)) {
            deviceType.setSelectedItem(DeviceType.WEAR);
        } else {
            deviceType.setSelectedItem(DeviceType.MOBILE);
        }
        screenSize.setValue(device.getDefaultHardware().getScreen().getDiagonalLength());
        Dimension dimension = device.getScreenSize(device.getDefaultState().getOrientation());
        resolutionX.setValue(dimension.width);
        resolutionY.setValue(dimension.height);
        round.setSelected(device.isScreenRound());
        ram.setValue(device.getDefaultHardware().getRam().getSizeAsUnit(Storage.Unit.MiB));
        hwButt.setSelected(device.getDefaultHardware().getButtonType() == ButtonType.HARD);
        hwKeyb.setSelected(device.getDefaultHardware().getKeyboard() != Keyboard.NOKEY);
        List<State> states = device.getAllStates();
        portrait.setSelected(false);
        landscape.setSelected(false);
        for (State state : states) {
            if (state.getOrientation().equals(ScreenOrientation.PORTRAIT)) {
                portrait.setSelected(true);
            }
            if (state.getOrientation().equals(ScreenOrientation.LANDSCAPE)) {
                landscape.setSelected(true);
            }
        }
        Navigation nav = device.getDefaultHardware().getNav();
        switch (nav) {
            case NONAV:
                navigationStyle.setSelectedIndex(0);
                break;
            case DPAD:
                navigationStyle.setSelectedIndex(1);
                break;
            case TRACKBALL:
                navigationStyle.setSelectedIndex(2);
                break;
            case WHEEL:
                navigationStyle.setSelectedIndex(3);
                break;
        }
        cameraFront.setSelected(device.getDefaultHardware().getCamera(CameraLocation.FRONT) != null);
        cameraBack.setSelected(device.getDefaultHardware().getCamera(CameraLocation.BACK) != null);
        accelerometer.setSelected(device.getDefaultHardware().getSensors().contains(Sensor.ACCELEROMETER));
        gyroscope.setSelected(device.getDefaultHardware().getSensors().contains(Sensor.GYROSCOPE));
        gps.setSelected(device.getDefaultHardware().getSensors().contains(Sensor.GPS));
        proximity.setSelected(device.getDefaultHardware().getSensors().contains(Sensor.PROXIMITY_SENSOR));
        File skinFile = device.getDefaultHardware().getSkinFile();
        AndroidSdk defaultSdk = AndroidSdkProvider.getDefaultSdk();
        if (defaultSdk != null) {
            String skinPath = defaultSdk.getSdkPath() + File.separator + "skins";
            skin.setModel(new SkinsComboboxModel(new File(skinPath)));
        }
        skin.setSelectedItem(skinFile);
        playstore.setSelected(device.hasPlayStore());
    } else {
        deviceType.setSelectedItem(DeviceType.MOBILE);
        navigationStyle.setSelectedIndex(0);
        deviceName.setText(getUniqueId(null));
    }
    skin.setRenderer(new BasicComboBoxRenderer() {
        @Override
        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            Component component = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); //To change body of generated methods, choose Tools | Templates.
            if ((component instanceof JLabel) && (value instanceof File)) {
                ((JLabel) component).setText(((File) value).getName());
            }
            return component;
        }

    });
}
 
源代码30 项目: NBANDROID-V2   文件: CreateAvdWizardIterator.java
@Override
public Set<?> instantiate() throws IOException {
    // TODO return set of FileObject (or DataObject) you have created

    //path /home/arsi/.android/avd/Nexus_5_API_27.avd
    //avd name Nexus_5_API_27
    //skinFolder /jetty/android-studio-sdk/skins/nexus_5
    //skinname null
    //sdcard 512M
    //
    //hw.dPad => no  x
    //hw.lcd.height => 1920 x
    //fastboot.chosenSnapshotFile => 
    //runtime.network.speed => full
    //hw.accelerometer => yes x
    //hw.device.name => Nexus 5 x
    //vm.heapSize => 128
    //skin.dynamic => yes
    //hw.device.manufacturer => Google x
    //hw.lcd.width => 1080 x
    //skin.path => /jetty/android-studio-sdk/skins/nexus_5
    //hw.gps => yes x
    //hw.initialOrientation => Portrait
    //hw.audioInput => yes x
    //showDeviceFrame => yes
    //hw.camera.back => emulated
    //hw.mainKeys => no x
    //AvdId => Nexus_5_API_27
    //hw.lcd.density => 480 x
    //hw.camera.front => emulated
    //avd.ini.displayname => Nexus 5 API 27
    //hw.gpu.mode => auto/host/software
    //hw.device.hash2 => MD5:1c925b9117dd9f33c5128dac289a0d68 x
    //fastboot.forceChosenSnapshotBoot => no
    //fastboot.forceFastBoot => yes
    //hw.trackBall => no x
    //hw.ramSize => 1536
    //hw.battery => yes x
    //fastboot.forceColdBoot => no
    //hw.cpu.ncore => 4
    //hw.sdCard => yes xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    //runtime.network.latency => none
    //hw.keyboard => yes
    //hw.sensors.proximity => yes x
    //hw.sensors.orientation => yesx
    //disk.dataPartition.size => 2G
    //hw.gpu.enabled => yes
    //
    //dev has playstore true
    //create snapshot false
    //removeprev false
    //editExisting true
    AndroidSdk defaultSdk = (AndroidSdk) wizard.getProperty(ANDROID_SDK);
    AvdManager avdManager = (AvdManager) wizard.getProperty(AVD_MANAGER);
    Device selectedDevice = (Device) wizard.getProperty(DEVICE_SELECTED);
    SystemImageDescription selectedImage = (SystemImageDescription) wizard.getProperty(SYSTEM_IMAGE);
    String displayName = (String) wizard.getProperty(AVD_DISPLAY_NAME);
    String avdId = (String) wizard.getProperty(AVD_ID_NAME);
    Map<String, String> hardwareProperties = DeviceManager.getHardwareProperties(selectedDevice);
    Map<String, String> userHardwareProperties = (Map<String, String>) wizard.getProperty(AVD_USER_HW_CONFIG);
    hardwareProperties.putAll(userHardwareProperties);
    String skinPath = hardwareProperties.get("skin.path");
    String sdcard = (String) wizard.getProperty(AVD_SDCARD);
    try {
        String avdPath = avdManager.getBaseAvdFolder().getAbsoluteFile().getAbsolutePath() + File.separator + avdId + ".avd";
        avdManager.createAvd(new File(avdPath), avdId, selectedImage.getSystemImage(),
                new File(skinPath), null, sdcard, hardwareProperties, selectedDevice.getBootProps(), selectedDevice.hasPlayStore()&&selectedImage.getSystemImage().hasPlayStore(), false, false, true, new StdLogger(StdLogger.Level.INFO));
    } catch (AndroidLocation.AndroidLocationException androidLocationException) {
    }
    changeListener.stateChanged(null);
    return Collections.emptySet();
}