É possível alterar onde os dispositivos virtuais Android são salvos?

185

Configurei o Android SDK e o Eclipse na minha máquina executando o Windows XP e os AVDs (dispositivos virtuais Android) são salvos em "Documents and Settings \ user \ .android" por padrão. Existe alguma maneira de mudar esse comportamento? Eu tenho todos os outros componentes salvos em um diretório em uma partição separada e gostaria que tudo fosse consolidado. Obviamente, não é um grande negócio, mas alguém aqui conhece uma solução alternativa para isso?

primehunter326
fonte
Criei um disco RAM virtual 100x mais rápido que o SSD e movi os arquivos do emulador para esse emulador de aceleração de disco carregando muito.
Vinigas
@Vinigas você pode "disco RAM que é 100x" elaborar por favor eu quero acelerar o meu emulador também
Utsav Gupta
Eu uso o software "SoftPerfect RAM disk" para criar um disco virtual. Então eu coloquei os arquivos do emulador Android neste disco RAM e defini o local do emulador. Se você tiver HDD, verá uma grande diferença entre o emulador no HDD e na RAM.
Vinigas
Salvar pergunta: stackoverflow.com/questions/3109473/…
Saidolim 6/06

Respostas:

246

Adicione uma nova variável de ambiente do usuário (Windows 7):

  1. Menu Iniciar> Painel de controle> Sistema> Configurações avançadas do sistema (à esquerda)> Variáveis ​​de ambiente

  2. Adicione uma nova variável de usuário (na parte superior) que aponte seu diretório de usuário doméstico:

    Nome da variável: ANDROID_SDK_HOME
    Valor da variável: um caminho para um diretório de sua escolha

O AVD Manager usará esse diretório para salvar seu .androiddiretório nele.

Para aqueles que podem estar interessados, publiquei um blog sobre minha primeira incursão no desenvolvimento do Android ...
Android "Hello World": a Tale of Woe

Como alternativa, você pode usar o Rapid Environment Editor para definir as variáveis ​​de ambiente.

wloescher
fonte
1
Obrigado. Ler a entrada do seu blog foi como reviver as primeiras horas de hoje brincando com isso. Que dor!
Matt Burland
6
+1 para suas informações. mas estou usando o xp. para mim isso funcionará após o reinício. Obrigado.
Gunaseelan
1
Essa abordagem funciona para mim até eu reiniciar meu computador. Win7.
Wangf 5/11
2
Ou basta digitar cmdsetx ANDROID_SDK_HOME D:\your\path\here
Петър Петров
13
A variável de ambiente ANDROID_AVD_HOME pode ser preferida a ANDROID_SDK_HOME, pois evita mover qualquer configuração específica do usuário armazenada em ~ / .android para que outros usuários / distribuições possam usar os mesmos AVDs. Funcionou bem no Linux Debian.
John
24

Modifique o arquivo "virtual_android2.2.ini" em "C: \ Documents and Settings {seu login no Windows} .android \ avd \":

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

E mova a pasta "virtual_android2.2.avd" de "C: \ Documents and Settings {login no Windows} .android \ avd" para "E: \ android_workspace \ avd \".

diyism
fonte
Isso funcionou para mim! A desajeitado pouco ter que fazer isso para cada emulador eu crio
Chucky
Obrigado me salvou !!
shahana kareen 17/04
17

Vá para o diretório de ferramentas do Android. Edite o arquivo de comando android.bat. No final do arquivo de comandos, encontre uma linha semelhante 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 substitua

call %java_exe%

com

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

onde {your_prefer_dire} é seu diretório preferido sem chaves, mas adicione aspas duplas,

por exemplo

call %java_exe% -Duser.home="E:\Program Files (x86)\android-sdk-windows"
loftysnake
fonte
2
Isso funcionou para mim, enquanto a resposta aceita não. Além disso, isso realmente responde ao que o OP pediu, que era como mudar do diretório inicial do usuário para outro diretório AVD, e não o contrário.
Adam Burley
ISSO NÃO DEVE SER FEITO! SDK Gestor reclama e não encontrar o novo local da pasta ... Use ANDROID_SDK_HOME sob ambientes de usuário e reinicie o computador poderia ajudar - [pasta .android será criado em% android_sdk_home%]
Davideas
16

Com base na documentação oficial https://developer.android.com/studio/command-line/variables.html, você deve alterar o ambiente ANDROID_AVD_HOME var:

Variáveis ​​de ambiente do emulador

Por padrão, o emulador armazena arquivos de configuração em $ HOME / .android / e dados do AVD em $ HOME / .android / avd /. Você pode substituir os padrões configurando as seguintes variáveis ​​de ambiente. O comando emulator -avd pesquisa o diretório avd na ordem dos valores em $ ANDROID_AVD_HOME, $ ANDROID_SDK_HOME / .android / avd / e $ HOME / .android / avd /. Para obter ajuda da variável de ambiente do emulador, digite emulator -help-environment na linha de comandos. Para obter informações sobre as opções de linha de comando do emulador, consulte Controlar o emulador na linha de comando.

  • ANDROID_EMULATOR_HOME : define o caminho para o diretório de configuração do emulador específico do usuário. O local padrão é
    $ ANDROID_SDK_HOME / .android /.
  • ANDROID_AVD_HOME : define o caminho para o diretório que contém todos os arquivos específicos do AVD, que consistem principalmente em imagens de disco muito grandes. O local padrão é $ ANDROID_EMULATOR_HOME / avd /. Você pode especificar um novo local se o local padrão estiver com pouco espaço em disco.

Após alterar ou definir ANDROID_AVD_HOME, você terá que mover todo o conteúdo dentro de ~ user / .android / avd / para seu novo local e alterar o caminho para o arquivo ini de cada emulador, apenas substitua-o pelo seu novo caminho

Leonardo Sapuy
fonte
1
Essa deve ser a resposta. Obrigado.
Ned
13

Mova o seu .android para onde quiser.

Em seguida, crie um link simbólico como este:

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

Isso simplesmente diz ao Linux que sempre que o caminho ~ /.androidfor referenciado por qualquer aplicativo, vincule-o /path/to/.android.

ps95
fonte
Obrigado @ prakharsingh95
TonyMkenu
6

Veja isso . Usando o androidcomando para criar, avdvocê pode especificar onde colocar os arquivos.

-p --path     Location path of the directory where the new AVD will be created
Macarse
fonte
Você conhece alguma maneira de fazer isso através do utilitário de configuração e o define como padrão para um local específico?
primehunter326
Na verdade não. Eu nem uso o Windows :(
Macarse 16/05
Bem, como eu disse, não é grande coisa, apenas pensei que haveria uma maneira de controlá-lo mais, considerando a modularidade de todo o pacote SDK. Obrigado pela ajuda!
primehunter326
O link acima está morto ( developer.android.com/intl/zh-TW/guide/developing/tools/… )
Jeff Mergler 2/19/19
6

Para o Visual Studio 2017 no Windows 10

Copiar C:\Users\YOURUSERNAME\.androidpasta para (por exemplo)E:\avd

Abra a janela de variáveis ​​de ambiente:

  1. Vá para Configurações e clique em Sistema.
  2. À esquerda, clique em Sobre e selecione Informações do sistema na parte inferior.
  3. Na nova janela, clique em Configurações avançadas do sistema à esquerda.
  4. Clique em Variáveis ​​de ambiente na parte inferior da janela resultante.

Adicione uma nova variável:

  • Nome variável: ANDROID_SDK_HOME
  • Valor variável: um caminho para um diretório (por exemplo E:\avd)

Não inclua .android no valor da variável.

Reinicie o Visual Studio.

Para alterar a localização do SDK e NDK, vá para:

Ferramentas -> Opções -> Xamarin -> Configuração do Android

user2511140
fonte
4

Você pode alterar o arquivo .ini para o novo AVD:

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

Não sei como especificar onde o arquivo .ini deve ser armazenado :)

JFrostos
fonte
4

A variável ambiental ANDROID_AVD_HOME pode ser usada para definir o diretório em que o AVD Manager deve procurar arquivos AVD INI e, portanto, pode ser usada para alterar a localização dos dispositivos virtuais;

O valor padrão é %USERPROFILE%\.android\avdno Windows (ou~/.android/avd no Linux).

Também é possível criar um link para todo o diretório %USERPROFILE%\.androidno Windows (ou um link sym para o diretório~/.android no Linux).

Ao mover AVDs, a pathentrada no arquivo AVD INI precisa ser atualizada de acordo.

Martin Zeitler
fonte
Essa variável de ambiente ANDROID_AVD_HOME pode ser preferida a ANDROID_SDK_HOME, pois evita mover qualquer configuração específica do usuário armazenada em ~ / .android porque outros usuários / distribuições podem usar os mesmos AVDs. No Linux, eu exportei ANDROID_AVD_HOME no meu ~ / .profile e funciona muito bem.
John
3

Outra maneira de especificar ANDROID_SDK_HOME sem mexer com variáveis ​​de ambiente (especialmente ao usar ec2) é simplesmente criar um atalho do eclipse e adicionar o seguinte como destino

C: \ Windows \ System32 \ cmd.exe / C "setx ANDROID_SDK_HOME SEU CAMINHO AVD / M E SEU CAMINHO ECLIPSE.EXE "

Isso definirá ANDROID_SDK_HOME como variável do sistema sempre que você iniciar o eclipse.

HTH Paul

Paulo
fonte
3

Observe o seguinte: modificar android.bat no diretório de ferramentas do Android, conforme sugerido em uma resposta anterior, pode causar problemas.

Se você fizer isso, para ter legitimamente seu diretório .android localizado em um local não padrão, pode haver uma inconsistência entre os AVDs listados pelo Android Studio (usando "Ferramentas> Android> AVD Manager") e os AVDs listados por Ferramenta de linha de comando sdk "android avd".

Suponho que o Android Studio, com seu AVD Manager interno, não use o caminho modificado android.bat; ele depende da variável ANDROID_SDK_HOME para localizar AVDs.

Meus próprios testes mostraram que as ferramentas do Android usam corretamente a variável ANDROID_SDK_HOME.

Portanto, até onde eu sei, não faz sentido modificar o android.bat e usar a variável de ambiente.

SR_
fonte
3

No Windows 10, tive esse problema porque o My C Drive estava ficando cheio e eu precisava de espaço livre, a pasta AVD tinha 14 GB de espaço, então eu precisava mover essa pasta para outro driver, a primeira resposta não funcionou para mim, então testei outra maneira de corrigir esse problema, eu faço uma imagem para você, se você tiver o mesmo problema, não precisará mover todos os arquivos na pasta .android para outra unidade (dessa forma não funcionará) basta mover as pastas avd em .... android \ avd to outra unidade, abra os arquivos .ini e altere o caminho da pasta avd desse arquivo para o novo caminho. Como esta imagem:

imagem ajudá-lo a ver como alterar o caminho antigo para o novo caminho

Espero que isso funcione pra você.

Ali Yousefi
fonte
1

No meu caso, o que me preocupava é o espaço em disco da unidade C:. Então, o que fiz foi copiar a pasta ".avd" (não o arquivo) para outra unidade e deixar o arquivo ".ini" lá, mas alterá-lo para apontar para o movido

user829248
fonte
1

Acho que a maneira mais fácil é mover a pasta avd da pasta C: \ Users [USER] .android para o local desejado e criar um link simbólico para ela em C: \ Users [USER] .android com o mesmo nome.

Se você quer saber como fazer isso, primeiro instale a Link Shell Extension . Após o movimento da pasta, clique com o botão direito do mouse e selecione Selecionar fonte de link , clique com o botão direito do mouse na pasta .android e no submenu Drop As ... selecione Link simbólico .

Todos
fonte
isso funciona e honestamente deve ser muito maior. Além disso, você pode criar um link simbólico para C:\Users\user\AppData\Local\Android\Sdk\system-imagesesse local que também ocupa muito espaço. você não precisa usar nenhuma ferramenta de terceiros, mklink /D system-images D:\path\to\system-imagesfunciona muito bem
esquilo
1

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

  1. Comece a copiar uma pasta "C: \ Usuários \ usuário \ .android \ avd" para "D: \ Android \ .android \ avd" (ou qualquer outra coisa).

  2. Feche o Android Studio e executando emuladores.

  3. Pressione Win + Breake abra Advanced System Settings. Então pressione Environment Variables. Adicione uma variável de usuário ANDROID_SDK_HOME. (Não experimentei ANDROID_AVD_HOME.) No Variable valuecampo, escreva D:\Android. Se você também moveu o SDK para outra pasta, altere ANDROID_HOME(esqueci de alterá-lo e alguns emuladores não foram iniciados, consulte https://stackoverflow.com/a/57408085/2914140 ).

  4. Aguarde até a pasta terminar de copiar e inicie o Android Studio.

  5. Abra Android Virtual Device Managere veja uma lista de emuladores. Se você não vir emuladores e eles existirem, provavelmente você inseriu o caminho errado no valor da variável do usuário na etapa 3. Nesse caso, feche o AS, altere a variável e abra o AS novamente.

  6. Inicie qualquer emulador. Ele tentará restaurar seu estado, mas às vezes falha . Uma tela preta pode aparecer em vez do papel de parede do Android.

  7. Nesse caso, você pode:

    uma. Reinicie seu emulador. Para fazer isso, execute o emulador em execução e clique no AVD Manager Cold Boot Now.

insira a descrição da imagem aqui

b. Se isso não ajudou, abra as configurações do emulador, encontradas no arquivo "D: \ Android \ .android \ avd \ Pixel_API_27.ini".

insira a descrição da imagem aqui

Mude o caminho para uma nova pasta AVD. Reinicie o emulador.

  1. Exclua a pasta AVD antiga de "C: \ Users \ user \ .android \ avd".
CoolMind
fonte
0

ANDROID_SDK_HOME também funcionou para mim no Windows 8 x64, também encontra todos os locais (no meu caso, era d: \. Android) e exclui-o. Você não precisará mais disso.

Alkasai
fonte
0

No gerenciador do AVD, depois de configurar o AVD usando um destino com Google APIs, em execução estava recebendo erro.

Detalhe mostrado: "Alvo AVD desconhecido 'Google Inc.: APIs do Google: ......"

Durante a instalação (no sistema Win7), eu escolhi um local de diretório do SDK, em vez de aceitar C:\Users\... , adicionei esse diretório à variável de ambiente 'path' Linha de comando: os destinos da lista do Android mostravam algumas APIs do Google.

A configuração ANDROID_SDK_HOMEdo meu caminho de instalação corrigiu o erro avd run.

user5803030
fonte
0

Nome da variável: ANDROID_SDK_HOME
Valor da variável: C: \ Usuários> Nome do Usuário

trabalhou para mim.

Buminda
fonte
0

MacOs Obter um diretório adv

./emulator -help-datadir

o diretório padrão é:

/Users/{your_computer_user_name}/.android

e, em seguida, vá para a pasta avd, edite o arquivo .ini com o caminho para o exemplo de diretório do emulador personalizado:

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

e depois salve. Agora o seu emulador mudou

insira a descrição da imagem aqui

E resultado:

insira a descrição da imagem aqui

Tung Tran
fonte
0

existem 4 etapas principais: 1. copie a pasta .android para o local desejado, como fiz em D:\Android\.android 2. defina ANDROID_AVD_HOME em variáveis ​​de ambiente como ANDROID_AVD_HOME D:\Android\.android\avd 3. altere o conteúdo do arquivo avd name.ini com o novo local, 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 o android studio

Durgesh Kumar
fonte
0

1 - Mova AVD para a nova pasta

2 - menu Iniciar> Painel de controle> Sistema> Configurações avançadas do sistema (à esquerda)> Variáveis ​​de ambiente Adicione uma nova variável de usuário: Nome da variável: ANDROID_AVD_HOME Valor da variável: um caminho para um diretório de sua escolha

3 - Altere o arquivo .INI Defina uma nova pasta.

4 - Abra o Android Studio

OBRAS - Windows 2010

MAIS INSTRUÇÕES: https://developer.android.com/studio/command-line/variables

user4062512
fonte