È possibile cambiare la posizione in cui vengono salvati i dispositivi virtuali Android?


185

Ho configurato Android SDK ed Eclipse sul mio computer con Windows XP e AVD (dispositivi virtuali Android) sono salvati in "Documents and Settings \ user \ .android" per impostazione predefinita. C'è un modo per cambiare questo comportamento? Ho tutti gli altri componenti salvati in una directory su una partizione separata e vorrei che tutto fosse consolidato. Ovviamente non è un grosso problema, ma qualcuno qui conosce una soluzione alternativa per questo?


Ho creato un disco RAM virtuale che è 100 volte più veloce di SSD e lo spostamento dei file dell'emulatore su questo disco velocizza molto il caricamento dell'emulatore.
Vinigas,

@Vinigas Puoi elaborare per favore "Disco RAM che è 100x" Voglio accelerare anche il mio emulatore
Utsav Gupta

Uso il software "Disco RAM SoftPerfect" per creare un disco virtuale. Quindi ho inserito i file dell'emulatore Android in questo disco RAM e ho impostato la posizione dell'emulatore. Se hai l'HDD, vedrai una grande differenza tra l'emulatore nell'HDD e nella RAM.
Vinigas,

Risposte:


246

Aggiungi una nuova variabile di ambiente utente (Windows 7):

  1. Menu Start> Pannello di controllo> Sistema> Impostazioni di sistema avanzate (a sinistra)> Variabili d'ambiente

  2. Aggiungi una nuova variabile utente (in alto) che punta alla tua directory utente di casa:

    Nome della variabile: ANDROID_SDK_HOME
    Valore della variabile: un percorso verso una directory di tua scelta

AVD Manager utilizzerà questa directory per salvare la sua .androiddirectory in essa.

Per coloro che potrebbero essere interessati, ho scritto un blog sulla mia prima incursione nello sviluppo di Android ...
Android "Hello World": a Tale of Woe

In alternativa, è possibile utilizzare Rapid Environment Editor per impostare le variabili di ambiente.


1
Grazie. Leggere il tuo post sul blog è stato come rivivere le prime ore di oggi a pensare a questo. Che dolore!
Matt Burland,

6
+1 per le tue informazioni. ma sto usando xp. per me questo funzionerà dopo il riavvio. Grazie.
Gunaseelan,

1
Questo approccio funziona per me fino al riavvio del computer. Win7.
Wang

2
O semplicemente digitare cmdsetx ANDROID_SDK_HOME D:\your\path\here
Петър Петров

13
La variabile d'ambiente ANDROID_AVD_HOME potrebbe essere preferita a ANDROID_SDK_HOME in quanto evita di spostare qualsiasi configurazione specifica dell'utente memorizzata in ~ / .android in modo che altri utenti / distribuzioni possano utilizzare gli stessi AVD. Ha funzionato bene su Linux Debian.
Giovanni,

24

Modifica il file "virtual_android2.2.ini" in "C: \ Documents and Settings {il tuo accesso a Windows} .android \ avd \":

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

E sposta la cartella "virtual_android2.2.avd" da "C: \ Documents and Settings {il tuo accesso a windows} .android \ avd \" in "E: \ android_workspace \ avd \".


Questo ha funzionato per me! Un po 'goffo doverlo fare per ogni emulatore che creo
Chucky

Grazie mi hai salvato !!
Shahana Kareen,

17

Vai alla directory degli strumenti Android. Modifica il file dei comandi android.bat. Alla fine del file di comando, trova una riga simile 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% %*

e sostituisci

call %java_exe%

con

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

dove {your_prefer_dire} è la tua directory preferita senza parentesi graffe ma aggiungi doppie virgolette,

per esempio

call %java_exe% -Duser.home="E:\Program Files (x86)\android-sdk-windows"

2
Questo ha funzionato per me, mentre la risposta accettata no. Inoltre, ciò risponde effettivamente a ciò che l'OP ha chiesto, ovvero come passare dalla directory home dell'utente a un'altra directory AVD, non viceversa.
Adam Burley,

NON DEVE ESSERE FATTO! SDK Manager se ne lamenta e non trova la nuova posizione della cartella ... Utilizzare ANDROID_SDK_HOME in ambienti utente e riavviare il computer potrebbe essere d'aiuto - [La cartella .android verrà creata in% android_sdk_home%]
Davideas

16

Sulla base della documentazione ufficiale https://developer.android.com/studio/command-line/variables.html è necessario modificare la variante di ambiente ANDROID_AVD_HOME :

Variabili d'ambiente dell'emulatore

Per impostazione predefinita, l'emulatore archivia i file di configurazione in $ HOME / .android / e i dati AVD in $ HOME / .android / avd /. È possibile ignorare le impostazioni predefinite impostando le seguenti variabili di ambiente. Il comando emulatore -avd cerca nella directory avd nell'ordine dei valori in $ ANDROID_AVD_HOME, $ ANDROID_SDK_HOME / .android / avd / e $ HOME / .android / avd /. Per la guida della variabile di ambiente dell'emulatore, digitare emulator -help-environment nella riga di comando. Per informazioni sulle opzioni della riga di comando dell'emulatore, vedere Controllo dell'emulatore dalla riga di comando.

  • ANDROID_EMULATOR_HOME : imposta il percorso della directory di configurazione dell'emulatore specifica dell'utente. Il percorso predefinito è
    $ ANDROID_SDK_HOME / .android /.
  • ANDROID_AVD_HOME : imposta il percorso della directory che contiene tutti i file specifici di AVD, che consistono principalmente in immagini di dischi molto grandi. Il percorso predefinito è $ ANDROID_EMULATOR_HOME / avd /. È possibile che si desideri specificare una nuova posizione se la posizione predefinita è insufficiente sullo spazio su disco.

Dopo aver modificato o impostato ANDROID_AVD_HOME dovrai spostare tutto il contenuto all'interno di ~ user / .android / avd / nella nuova posizione e cambiare il percorso nel file ini di ciascun emulatore, sostituiscilo con il tuo nuovo percorso


1
Questa dovrebbe essere la risposta. Grazie.
Ned

13

Sposta il tuo .androiddove vuoi.

Quindi, crea un link simbolico come questo:

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

Questo dice semplicemente a Linux che ogni volta che il percorso ~ /.androidfa riferimento a qualsiasi applicazione, lo collega a /path/to/.android.


Grazie @ prakharsingh95
TonyMkenu

6

Controllare questo fuori. usando il androidcomando per creare avdè possibile specificare dove posizionare i file.

-p --path     Location path of the directory where the new AVD will be created

Conosci un modo per farlo attraverso l'utility di configurazione e impostarlo come predefinito in una posizione particolare?
primehunter326,

Non proprio. Non uso nemmeno Windows :(
Macarse

Bene, come ho detto, non è un grosso problema, ho pensato che ci sarebbe stato un modo per controllarlo di più, dato quanto è modulare l'intero pacchetto SDK. Grazie per l'aiuto!
primehunter326,


6

Per Visual Studio 2017 su Windows 10

Copia C:\Users\YOURUSERNAME\.androidcartella in (ad esempio)E:\avd

Apri la finestra delle variabili di ambiente:

  1. Vai in Impostazioni e fai clic su Sistema.
  2. A sinistra, fai clic su Informazioni e seleziona Informazioni di sistema in basso.
  3. Nella nuova finestra, fai clic su Impostazioni di sistema avanzate a sinistra.
  4. Fai clic su Variabili d'ambiente nella parte inferiore della finestra risultante.

Aggiungi una nuova variabile:

  • Nome della variabile: ANDROID_SDK_HOME
  • Valore variabile: un percorso verso una directory (ad es. E:\avd)

Non includere .androidnel valore variabile.

Riavvia Visual Studio.

Per cambiare posizione SDK e NDK vai a:

Strumenti -> Opzioni -> Xamarin -> Impostazioni Android


4

È possibile modificare il file .ini per il nuovo AVD:

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

Non so come specificare dove archiviare il file .ini :)


4

La variabile ambientale ANDROID_AVD_HOMEpuò essere utilizzata per definire la directory in cui AVD Manager deve cercare i file INI AVD e può quindi essere utilizzata per modificare la posizione dei dispositivi virtuali;

Il valore predefinito è %USERPROFILE%\.android\avdsu Windows (o ~/.android/avdsu Linux).

Si può anche creare un collegamento per l'intera directory %USERPROFILE%\.androidsu Windows (o un collegamento simbolico per la directory ~/.androidsu Linux).

Quando si spostano gli AVD, la pathvoce nel file AVI INI deve essere aggiornata di conseguenza.


Questa variabile d'ambiente ANDROID_AVD_HOME potrebbe essere preferita ad ANDROID_SDK_HOME poiché evita di spostare qualsiasi configurazione specifica dell'utente memorizzata in ~ / .android perché altri utenti / distribuzioni potrebbero utilizzare gli stessi AVD. Su Linux, ho esportato ANDROID_AVD_HOME nel mio ~ / .profile e funziona bene.
Giovanni,

3

Un altro modo per specificare ANDROID_SDK_HOME senza fare confusione con le variabili di ambiente (specialmente quando si utilizza ec2) è semplicemente creare un collegamento di eclipse e aggiungere quanto segue come destinazione

C: \ Windows \ System32 \ cmd.exe / C "setx ANDROID_SDK_HOME IL TUO PERCORSO AVD / M E IL TUO PERCORSO ECLIPSE.EXE "

Questo imposterà ANDROID_SDK_HOME come variabile di sistema ogni volta che avvierai eclissi.

HTH Paul


3

Tieni presente quanto segue: la modifica di android.bat nella directory degli strumenti Android, come suggerito in una risposta precedente, può causare problemi.

In tal caso, al fine di disporre legittimamente la directory .android in una posizione non predefinita, potrebbe esserci un'incoerenza tra gli AVD elencati da Android Studio (utilizzando "Strumenti> Android> AVD Manager") e gli AVD elencati da strumento da riga di comando sdk "android avd".

Suppongo che Android Studio, con il suo AVD Manager interno, non usi il percorso modificato android.bat; si basa sulla variabile ANDROID_SDK_HOME per individuare gli AVD.

I miei test hanno dimostrato che gli strumenti Android utilizzano correttamente la variabile ANDROID_SDK_HOME.

Pertanto, per quanto ne so, non ha senso modificare il file android.bat e usare la variabile d'ambiente dovrebbe essere preferito.


3

In Windows 10 ho avuto quel problema perché il mio C Drive si stava riempiendo e avevo bisogno di spazio libero, la cartella AVD aveva 14 gig spazio quindi avevo bisogno di spostare quella cartella su un altro driver, la prima risposta non funzionava per me, quindi ho provato un altro modo per risolvere questo problema, ti faccio una foto se hai lo stesso problema, non è necessario spostare tutti i file nella cartella .android in un'altra unità (in questo modo non funziona) basta spostare le cartelle avd in .... android \ avd in un'altra unità e aprire i file .ini e cambiare il percorso della cartella avd da quel file al nuovo percorso. Come questa immagine:

image ti aiuta a vedere come cambiare il vecchio percorso in un nuovo percorso

Spero che questo funzioni per te.


1

Nel mio caso, ciò di cui mi preoccupavo è lo spazio su disco dell'unità C :. Quindi quello che ho fatto è stato copiare la cartella ".avd" (non file) su un'altra unità e lasciare lì il file ".ini" ma cambiarlo per puntare allo spostamento


1

Penso che il modo più semplice sia spostare la cartella avd dalla cartella C: \ Users [USER] .android nella posizione desiderata, quindi creare un collegamento simbolico ad essa in C: \ Users [USER] .android con lo stesso nome.

Se ti chiedi come farlo, installa prima l' estensione della shell di collegamento . Dopo lo spostamento della cartella, fai clic con il pulsante destro del mouse su di esso e seleziona Seleziona origine collegamento, quindi fai clic con il pulsante destro del mouse nella cartella .android e nel sottomenu Elimina come ... seleziona Collegamento simbolico .


questo funziona e onestamente dovrebbe essere molto più alto. inoltre, puoi creare un link simbolico per C:\Users\user\AppData\Local\Android\Sdk\system-images, quel posto occupa anche molto spazio. non è necessario utilizzare strumenti di terze parti, mklink /D system-images D:\path\to\system-imagesfunziona benissimo
scoiattolo

1

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

  1. Inizia a copiare una cartella "C: \ Users \ user \ .android \ avd" su "D: \ Android \ .android \ avd" (o qualcos'altro).

  2. Chiudi Android Studio ed emulatori in esecuzione.

  3. Premi Win + Breake apri Advanced System Settings. Quindi premere Environment Variables. Aggiungi una variabile utente ANDROID_SDK_HOME. (Non ho sperimentato ANDROID_AVD_HOME.) Sul Variable valuecampo scrivere D:\Android. Se hai anche spostato SDK in un'altra cartella, cambia ANDROID_HOME(ho dimenticato di cambiarlo e alcuni emulatori non sono stati avviati, vedi https://stackoverflow.com/a/57408085/2914140 ).

  4. Attendi il completamento della copia della cartella e avvia Android Studio.

  5. Apri Android Virtual Device Managere visualizza un elenco di emulatori. Se non vedi gli emulatori ed esistevano, probabilmente hai inserito il percorso sbagliato nel valore della variabile utente nel passaggio 3. In questo caso chiudi AS, cambia la variabile e apri di nuovo AS.

  6. Avvia qualsiasi emulatore. Tenterà di ripristinare lo stato, ma a volte non riesce . Una schermata nera può apparire al posto dello sfondo Android.

  7. In questo caso puoi:

    un. Riavvia l'emulatore. Per fare questo chiudere l'emulatore in esecuzione, quindi in AVD Manager fare clic su Cold Boot Now.

inserisci qui la descrizione dell'immagine

b. Se ciò non fosse d'aiuto, apri le impostazioni dell'emulatore, che si trovano nel file "D: \ Android \ .android \ avd \ Pixel_API_27.ini".

inserisci qui la descrizione dell'immagine

Modificare un percorso in una nuova cartella AVD. Riavvia l'emulatore.

  1. Elimina la vecchia cartella AVD da "C: \ Users \ user \ .android \ avd".

0

ANDROID_SDK_HOME ha funzionato anche per me su Windows 8 x64 anche trovare tutta la posizione (nel mio caso era d: \. Android) ed eliminarlo. Non ne avrai più bisogno.


0

In AVD Manager, dopo aver impostato AVD utilizzando una destinazione con Google APIs, in esecuzione si verificava un errore.

Il dettaglio mostrava: "Target sconosciuto AVD 'Google Inc.: API di Google: ......"

Durante l'installazione (sul sistema Win7) avevo scelto un percorso di directory SDK, invece di accettare C:\Users\... avevo aggiunto quella directory alla variabile di ambiente 'percorso' Riga di comando: i target dell'elenco Android mostravano un paio di API di Google.

L'impostazione ANDROID_SDK_HOMEsul mio percorso di installazione ha corretto l'errore avd run.


0

Nome della variabile: ANDROID_SDK_HOME
Valore della variabile: C: \ Users> Nome utente

ha funzionato per me.


0

MacOs Ottieni una directory adv

./emulator -help-datadir

la directory predefinita è:

/Users/{your_computer_user_name}/.android

e quindi vai alla cartella avd modifica il file .ini con il percorso del tuo esempio di directory dell'emulatore personalizzato:

percorso = / Volumes / Macintos / _emulatorandroid / avd / Nexus_5X_API_27.avd path.rel = avd / Nexus_5X_API_27.avd target = android-27

e poi salva. Ora il tuo emulatore è cambiato

inserisci qui la descrizione dell'immagine

E risultato:

inserisci qui la descrizione dell'immagine


0

ci sono 4 passaggi principali 1. copia la cartella .android nella posizione desiderata come ho fatto in D:\Android\.android 2. imposta ANDROID_AVD_HOME in variabili d'ambiente come ANDROID_AVD_HOME D:\Android\.android\avd 3. cambia il contenuto del file avd name.ini con una nuova posizione come 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. riavvia android studio


0

1 - Spostare AVD nella nuova cartella

2 - menu Start> Pannello di controllo> Sistema> Impostazioni di sistema avanzate (a sinistra)> Variabili d'ambiente Aggiungi una nuova variabile utente: Nome variabile: ANDROID_AVD_HOME Valore variabile: un percorso verso una directory di tua scelta

3 - Cambia il file .INI Imposta nuova cartella.

4 - Apri Android Studio

FUNZIONA - Windows 2010

ALTRE ISTRUZIONI: https://developer.android.com/studio/command-line/variables

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.