question: @ Nullable public AvdInfo createOrUpdateAvd ( @ Nullable AvdInfo currentInfo , @ NotNull String avdName , @ NotNull Device device , @ NotNull SystemImageDescription systemImageDescription , @ NotNull ScreenOrientation orientation , boolean isCircular , @ Nullable String sdCard , @ Nullable File skinFolder , @ NotNull Map < String , String > hardwareProperties , boolean createSnapshot ) { if ( ! initIfNecessary ( ) ) { return null ; } File avdFolder ; try { if ( currentInfo != null ) { avdFolder = new File ( currentInfo . getDataFolderPath ( ) ) ; } else { avdFolder = AvdInfo . getDefaultAvdFolder ( myAvdManager , avdName , myFileOp , true ) ; } } catch ( AndroidLocation . AndroidLocationException e ) { IJ_LOG . error ( "Could not create AVD " + avdName , e ) ; return null ; } Dimension resolution = device . getScreenSize ( orientation ) ; assert resolution != null ; String skinName = null ; if ( skinFolder == null && isCircular ) { skinFolder = getRoundSkin ( systemImageDescription ) ; } if ( FileUtil . filesEqual ( skinFolder , AvdWizardUtils . NO_SKIN ) ) { skinFolder = null ; } if ( skinFolder == null ) { skinName = String . format ( "%dx%d" , Math . round ( resolution . getWidth ( ) ) , Math . round ( resolution . getHeight ( ) ) ) ; } if ( orientation == ScreenOrientation . LANDSCAPE ) { hardwareProperties . put ( HardwareProperties . HW_INITIAL_ORIENTATION , ScreenOrientation . LANDSCAPE . getShortDisplayValue ( ) . toLowerCase ( Locale . ROOT ) ) ; } if ( currentInfo != null && ! avdName . equals ( currentInfo . getName ( ) ) ) { boolean success = myAvdManager . moveAvd ( currentInfo , avdName , currentInfo . getDataFolderPath ( ) , SDK_LOG ) ; if ( ! success ) { return null ; } } return myAvdManager . createAvd ( avdFolder , avdName , systemImageDescription . getSystemImage ( ) , skinFolder , skinName , sdCard , hardwareProperties , device . getBootProps ( ) , createSnapshot , false , currentInfo != null , SDK_LOG ) ; }
target:  Update the given AVD with the new settings or create one if no AVD is specified. Returns the created AVD.