¿Es posible cambiar dónde se guardan los dispositivos virtuales de Android?

185

He configurado Android SDK y Eclipse en mi máquina con Windows XP y los AVD (dispositivos virtuales Android) se guardan en "Documentos y configuraciones \ usuario \ .android" de forma predeterminada. ¿Hay alguna forma de cambiar este comportamiento? Tengo todos los demás componentes guardados en un directorio en una partición separada y me gustaría que todo se consolidara. Obviamente no es un gran problema, pero ¿alguien aquí sabe una solución para esto?

primehunter326
fuente
He creado un disco RAM virtual que es 100 veces más rápido que el SSD y he movido mucho los archivos del emulador a este acelerador de disco.
Vinigas
@Vinigas ¿Puedes elaborar, por favor? "Disco RAM que es 100x" También quiero acelerar mi emulador
Utsav Gupta
Utilizo el software "SoftPerfect RAM disk" para crear un disco virtual. Luego puse los archivos del emulador de Android en este disco RAM y configuré la ubicación del emulador. Si tiene HDD, verá una gran diferencia entre el emulador en HDD y en RAM.
Vinigas
Guardar pregunta: stackoverflow.com/questions/3109473/…
Saidolim

Respuestas:

246

Agregue una nueva variable de entorno de usuario (Windows 7):

  1. Menú Inicio> Panel de control> Sistema> Configuración avanzada del sistema (a la izquierda)> Variables de entorno

  2. Agregue una nueva variable de usuario (en la parte superior) que señale su directorio de usuarios domésticos:

    Nombre de la variable: ANDROID_SDK_HOME
    Valor de la variable: una ruta a un directorio de su elección

AVD Manager usará este directorio para guardar su .androiddirectorio en él.

Para aquellos que puedan estar interesados, escribí en un blog sobre mi primera incursión en el desarrollo de Android ...
Android "Hello World": a Tale of Woe

Alternativamente, puede usar el Editor de entorno rápido para establecer las variables de entorno.

wloescher
fuente
1
Gracias. Leer la entrada de tu blog fue como revivir las primeras horas de hoy jugando con esto. ¡Que dolor!
Matt Burland el
66
+1 para tu información. pero estoy usando xp. para mí esto funcionará después de reiniciar. Gracias.
Gunaseelan
1
Este enfoque funciona para mí hasta que reinicie mi computadora. Win7.
wangf
2
O simplemente escriba cmdsetx ANDROID_SDK_HOME D:\your\path\here
Петър Петров
13
La variable de entorno ANDROID_AVD_HOME podría preferirse a ANDROID_SDK_HOME ya que evita mover cualquiera de las configuraciones específicas del usuario almacenadas en ~ / .android para que otros usuarios / distribuciones puedan usar los mismos AVD. Funcionó bien en Linux Debian.
John
24

Modifique el archivo "virtual_android2.2.ini" en "C: \ Documents and Settings {su inicio de sesión de Windows} .android \ avd \":

target=android-8
path=E:\android_workspace\avd\virtual_android2.2.avd

Y mueva la carpeta "virtual_android2.2.avd" de "C: \ Documents and Settings {su inicio de sesión de Windows} .android \ avd \" a "E: \ android_workspace \ avd \".

diyism
fuente
¡Esto funcionó para mí! Un poco torpe tener que hacer esto para cada emulador que creo
Chucky
Gracias me salvaste !!
Shahana Kareen
17

Vaya al directorio de herramientas de Android. Edite el archivo de comando android.bat. Aproximadamente al final del archivo de comando, busque una línea similar a

call %java_exe% -Djava.ext.dirs=%java_ext_dirs% -Dcom.android.sdkmanager.toolsdir="%tools_dir%" -Dcom.android.sdkmanager.workdir="%work_dir%" -jar %jar_path% %*

y reemplazar

call %java_exe%

con

call %java_exe% -Duser.home={your_prefer_dir}

donde {your_prefer_dire} es su directorio preferido sin llaves pero agrega comillas dobles,

p.ej

call %java_exe% -Duser.home="E:\Program Files (x86)\android-sdk-windows"
serpiente de loft
fuente
2
Esto funcionó para mí, mientras que la respuesta aceptada no. Además, esto realmente responde a lo que preguntó el OP, que era cómo cambiar del directorio de inicio del usuario a otro directorio AVD, y no al revés.
Adam Burley
¡ESTO NO DEBE HACERSE! SDK Manager se queja de eso y no encuentra la nueva ubicación de la carpeta ... Use ANDROID_SDK_HOME en entornos de usuario y reinicie su computadora podría ayudar: [la carpeta .android se creará en% android_sdk_home%]
Davideas
16

Según la documentación oficial https://developer.android.com/studio/command-line/variables.html , debe cambiar la variable de entorno ANDROID_AVD_HOME var:

Variables de entorno del emulador

Por defecto, el emulador almacena los archivos de configuración en $ HOME / .android / y los datos de AVD en $ HOME / .android / avd /. Puede anular los valores predeterminados configurando las siguientes variables de entorno. El comando emulator -avd busca en el directorio avd en el orden de los valores en $ ANDROID_AVD_HOME, $ ANDROID_SDK_HOME / .android / avd / y $ HOME / .android / avd /. Para obtener ayuda sobre la variable de entorno del emulador, escriba emulator -help-environment en la línea de comandos. Para obtener información sobre las opciones de la línea de comandos del emulador, consulte Control del emulador desde la línea de comandos.

  • ANDROID_EMULATOR_HOME : establece la ruta al directorio de configuración del emulador específico del usuario. La ubicación predeterminada es
    $ ANDROID_SDK_HOME / .android /.
  • ANDROID_AVD_HOME : establece la ruta al directorio que contiene todos los archivos específicos de AVD, que consisten principalmente en imágenes de disco muy grandes. La ubicación predeterminada es $ ANDROID_EMULATOR_HOME / avd /. Es posible que desee especificar una nueva ubicación si la ubicación predeterminada es baja en espacio en disco.

Después de cambiar o configurar ANDROID_AVD_HOME, tendrá que mover todo el contenido dentro de ~ user / .android / avd / a su nueva ubicación y cambiar la ruta en el archivo ini de cada emulador, simplemente reemplácelo con su nueva ruta

Leonardo Sapuy
fuente
1
Esta debería ser la respuesta. Gracias.
Ned
13

Mueve tu .androida donde quieras.

Luego, crea un enlace simbólico como este:

# In your home folder
$ ln -s /path/to/.android/ .

Esto simplemente le dice a Linux que cada vez que /.androidcualquier aplicación haga referencia a la ruta ~ , vincúlela /path/to/.android.

ps95
fuente
Gracias @ prakharsingh95
TonyMkenu
6

Mira esto . usando el androidcomando para crear avdpuede especificar dónde colocar los archivos.

-p --path     Location path of the directory where the new AVD will be created
Macarse
fuente
¿Conoces alguna forma de hacerlo a través de la utilidad de configuración y configurarlo por defecto en una ubicación en particular?
primehunter326
Realmente no. Ni siquiera uso Windows :(
Macarse
Bueno, como dije, no es gran cosa, solo pensé que habría alguna forma de controlarlo más dado lo modular que es todo el paquete SDK. ¡Gracias por tu ayuda!
primehunter326
El enlace de arriba está muerto ( developer.android.com/intl/zh-TW/guide/developing/tools/… )
Jeff Mergler
6

Para Visual Studio 2017 en Windows 10

Copiar C:\Users\YOURUSERNAME\.androidcarpeta a (por ejemplo)E:\avd

Abra la ventana de variables de entorno:

  1. Vaya a Configuración y haga clic en Sistema.
  2. A la izquierda, haga clic en Acerca de y seleccione Información del sistema en la parte inferior.
  3. En la nueva ventana, haga clic en Configuración avanzada del sistema a la izquierda.
  4. Haga clic en Variables de entorno en la parte inferior de la ventana resultante.

Agregue una nueva variable:

  • Nombre de la variable: ANDROID_SDK_HOME
  • Valor variable: una ruta a un directorio (p E:\avd. Ej. )

No incluir .androiden el valor variable.

Reinicie Visual Studio.

Para cambiar la ubicación del SDK y NDK, vaya a:

Herramientas -> Opciones -> Xamarin -> Configuración de Android

usuario2511140
fuente
4

Puede cambiar el archivo .ini para el nuevo AVD:

target=android-7
path=C:\Users\username\.android\avd\VIRTUAL_DEVICE_NAME.avd

No sé cómo especificar dónde se debe almacenar el archivo .ini :)

JFrostos
fuente
4

La variable de entorno ANDROID_AVD_HOMEse puede usar para definir el directorio en el que AVD Manager buscará los archivos AVD INI y, por lo tanto, se puede usar para cambiar la ubicación de los dispositivos virtuales;

El valor predeterminado está %USERPROFILE%\.android\avden Windows (o ~/.android/avden Linux).

También se puede crear un enlace para todo el directorio %USERPROFILE%\.androiden Windows (o un enlace simbólico para el directorio ~/.androiden Linux).

Al mover AVD, la pathentrada en el archivo AVD INI debe actualizarse en consecuencia.

Martin Zeitler
fuente
Esta variable de entorno ANDROID_AVD_HOME podría preferirse a ANDROID_SDK_HOME ya que evita mover cualquiera de las configuraciones específicas del usuario almacenadas en ~ / .android porque otros usuarios / distribuciones podrían usar los mismos AVD. En Linux, exporté ANDROID_AVD_HOME en mi ~ / .profile y funciona muy bien.
John
3

Otra forma de especificar ANDROID_SDK_HOME sin perder el tiempo con las variables de entorno (especialmente cuando se usa ec2) es simplemente crear un acceso directo de eclipse y agregar lo siguiente como objetivo

C: \ Windows \ System32 \ cmd.exe / C "setx ANDROID_SDK_HOME SU AVD PATH / M Y SU ECLIPSE.EXE PATH "

Esto establecerá ANDROID_SDK_HOME como variable del sistema cada vez que inicie eclipse.

HTH Paul

Pablo
fuente
3

Tenga en cuenta lo siguiente: modificar android.bat en el directorio de herramientas de Android, como se sugiere en una respuesta anterior, puede ocasionar problemas.

Si lo hace, para tener legítimamente su directorio .android ubicado en una ubicación no predeterminada, puede haber una inconsistencia entre los AVD listados por Android Studio (usando "Herramientas> Android> Administrador AVD") y los AVD listados por herramienta de línea de comando sdk "android avd".

Supongo que Android Studio, con su Administrador AVD interno, no utiliza la ruta modificada android.bat; se basa en la variable ANDROID_SDK_HOME para localizar AVD.

Mis propias pruebas han demostrado que las herramientas de Android usan correctamente la variable ANDROID_SDK_HOME.

Por lo tanto, no tiene sentido, hasta donde yo sé, modificar Android.bat, y usar la variable de entorno debería ser preferible.

SR_
fuente
3

En Windows 10 tuve ese problema porque mi unidad C se estaba llenando y necesitaba espacio libre, la carpeta AVD tenía 14 gig space, así que necesitaba mover esa carpeta a otro controlador, la primera respuesta no funcionó para mí, así que probé otra forma de solucionarlo este problema, te hago una foto si tienes el mismo problema, no necesitas mover todos los archivos en la carpeta .android a otra unidad (de esta manera no funciona) solo mueve las carpetas avd en .... android \ avd a otra unidad y abra archivos .ini y cambie la ruta de la carpeta avd de ese archivo a la nueva ruta. Me gusta esta imagen:

la imagen lo ayuda a ver cómo cambiar la ruta anterior a la nueva

Espero que esto funcione para ti.

Ali Yousefi
fuente
1

En mi caso, lo que me preocupa es el espacio en disco C: unidad. Entonces, lo que hice fue copiar la carpeta ".avd" (no el archivo) a otra unidad, y dejar el archivo ".ini" allí, pero cambiarlo para que apunte

user829248
fuente
1

Creo que la forma más fácil es mover la carpeta avd de la carpeta C: \ Users [USER] .android a la ubicación deseada y luego crear un enlace simbólico en C: \ Users [USER] .android con el mismo nombre.

Si se pregunta cómo hacer esto, primero instale Link Shell Extension . Después del movimiento de la carpeta, haga clic derecho sobre ella y seleccione Elegir fuente de enlace, luego haga clic derecho en la carpeta .android y en el submenú Soltar como ... seleccione Enlace simbólico .

Ali
fuente
esto funciona y, sinceramente, debería ser mucho más alto. Además, puede crear un enlace simbólico para C:\Users\user\AppData\Local\Android\Sdk\system-images, ese lugar también ocupa mucho espacio. no necesita usar herramientas de terceros, mklink /D system-images D:\path\to\system-imagesfunciona bien
ardilla
1

Seguí https://www.mysysadmintips.com/windows/clients/761-move-android-studio-avd-folder-to-a-new-location .

  1. Comience a copiar una carpeta "C: \ Users \ user \ .android \ avd" a "D: \ Android \ .android \ avd" (o algo más).

  2. Cierre Android Studio y ejecute emuladores.

  3. Presione Win + Breaky abra Advanced System Settings. Luego presione Environment Variables. Agregar una variable de usuario ANDROID_SDK_HOME. (No experimenté con ANDROID_AVD_HOME). En Variable valuecampo escriba D:\Android. Si también movió SDK a otra carpeta, cámbielo ANDROID_HOME(olvidé cambiarlo y algunos emuladores no se iniciaron, consulte https://stackoverflow.com/a/57408085/2914140 ).

  4. Espere hasta que la carpeta termine de copiarse e inicie Android Studio.

  5. Abra Android Virtual Device Managery vea una lista de emuladores. Si no ve emuladores y existen, entonces probablemente ingresó una ruta incorrecta en el valor de la variable de usuario en el paso 3. En este caso, cierre AS, cambie la variable y abra AS nuevamente.

  6. Inicia cualquier emulador. Intentará restaurar su estado, pero a veces falla . Puede aparecer una pantalla negra en lugar del fondo de pantalla de Android.

  7. En este caso puedes:

    a. Reinicia tu emulador. Para hacer esto, cierre el emulador, luego haga clic en Administrador AVD Cold Boot Now.

ingrese la descripción de la imagen aquí

si. Si esto no ayudó, abra la configuración del emulador, que se encuentra en el archivo "D: \ Android \ .android \ avd \ Pixel_API_27.ini".

ingrese la descripción de la imagen aquí

Cambie una ruta a una nueva carpeta AVD. Reinicia el emulador.

  1. Elimine la antigua carpeta AVD de "C: \ Users \ user \ .android \ avd".
CoolMind
fuente
0

ANDROID_SDK_HOME también funcionó para mí en Windows 8 x64, también encontré toda la ubicación (en mi caso fue d: \. Android) y la eliminé. No lo necesitarás más.

Alkasai
fuente
0

En el administrador de AVD, después de configurar AVD usando un objetivo con Google APIs, en la ejecución recibía un error.

El detalle mostró: "AVD Destino desconocido 'Google Inc.: API de Google: ......"

Durante la instalación (en el sistema Win7) elegí una ubicación de directorio SDK, en lugar de aceptar C:\Users\... , agregué ese directorio a la línea de comando 'ruta' de la variable de entorno : los objetivos de la lista de Android mostraron un par de API de Google.

La configuración ANDROID_SDK_HOMEde mi ruta de instalación corrigió el error de ejecución avd.

usuario5803030
fuente
0

Nombre de la variable: ANDROID_SDK_HOME
Valor de la variable: C: \ Usuarios> Nombre de usuario

trabajó para mi.

Buminda
fuente
0

MacOs Obtenga un directorio adv

./emulator -help-datadir

el directorio predeterminado es:

/Users/{your_computer_user_name}/.android

y luego vaya a la carpeta avd edite el archivo .ini con la ruta a su directorio de emulador personalizado ejemplo:

ruta = / Volúmenes / Macintos / _emulatorandroid / avd / Nexus_5X_API_27.avd path.rel = avd / Nexus_5X_API_27.avd target = android-27

y luego guardar. Ahora tu emulador ha cambiado

ingrese la descripción de la imagen aquí

Y resultado:

ingrese la descripción de la imagen aquí

Tung Tran
fuente
0

hay 4 pasos principales 1. copie la carpeta .android en su ubicación deseada como lo hice en D:\Android\.android 2. establezca ANDROID_AVD_HOME en variables de entorno como ANDROID_AVD_HOME D:\Android\.android\avd 3. cambie el contenido del archivo avd name.ini con una nueva ubicación como avd.ini.encoding=UTF-8 path=D:\Android\.android\avd\Pixel_2_API_29.avd path.rel=avd\Pixel_2_API_29.avd target=android-29 4. reinicie android studio

Durgesh Kumar
fuente
0

1 - Mover AVD a la nueva carpeta

2 - Inicio Menú> Panel de control> Sistema> Configuración avanzada del sistema (a la izquierda)> Variables de entorno Agregar una nueva variable de usuario: Nombre de la variable: ANDROID_AVD_HOME Valor de la variable: una ruta a un directorio de su elección

3 - Cambiar el archivo .INI Establecer nueva carpeta.

4 - Abra Android Studio

TRABAJOS - Windows 2010

MÁS INSTRUCCIONES: https://developer.android.com/studio/command-line/variables

usuario4062512
fuente