Можно ли изменить место хранения виртуальных устройств Android?

185

Я установил Android SDK и Eclipse на моем компьютере под управлением Windows XP, и AVD (виртуальные устройства Android) по умолчанию сохраняются в «Documents and Settings \ user \ .android». Есть ли способ изменить это поведение? У меня есть все остальные компоненты, сохраненные в каталоге на отдельном разделе, и я хотел бы, чтобы все было консолидировано. Очевидно, что это не так уж важно, но кто-нибудь здесь знает, как это обойти?

primehunter326
источник
Я сделал виртуальный RAM-диск, который в 100 раз быстрее SSD, и перемещение файлов эмулятора на этот диск значительно ускоряет загрузку эмулятора.
Vinigas
@Vinigas Можете ли вы уточнить, пожалуйста, "RAM диск, который в 100 раз больше", я тоже хочу ускорить мой эмулятор
Утсав Гупта
Я использую программное обеспечение «SoftPerfect RAM disk» для создания виртуального диска. Затем я поместил файлы эмулятора Android на этот RAM-диск и установил расположение эмулятора. Если у вас есть жесткий диск, то вы увидите большую разницу между эмулятором в жестком диске и в оперативной памяти.
Vinigas
Сохранить вопрос: stackoverflow.com/questions/3109473/…
Саидолим

Ответы:

246

Добавьте новую переменную среды пользователя (Windows 7):

  1. Пуск> Панель управления> Система> Расширенные настройки системы (слева)> Переменные среды

  2. Добавьте новую переменную пользователя (вверху), которая указывает ваш домашний каталог пользователя:

    Имя переменной: ANDROID_SDK_HOME
    Значение переменной: путь к каталогу по вашему выбору

AVD Manager будет использовать этот каталог для сохранения своего .androidкаталога в нем.

Для тех, кто может быть заинтересован, я написал в блоге о своем первом набеге в разработку Android ...
Android "Hello World": Повесть о горе

Кроме того, вы можете использовать Rapid Environment Editor для установки переменных среды.

wloescher
источник
1
Спасибо. Чтение вашей записи в блоге было похоже на переживание первых нескольких часов сегодняшнего дня. Вот это боль!
Мэтт Берланд
6
+1 для вашей информации. но я использую XP. для меня это будет работать после перезагрузки. Спасибо.
Gunaseelan
1
Этот подход работает для меня, пока я не перезагружу свой компьютер. Win7.
Ванг
2
Или просто введите cmdsetx ANDROID_SDK_HOME D:\your\path\here
Петър Петров
13
Переменная среды ANDROID_AVD_HOME может быть предпочтительнее, чем ANDROID_SDK_HOME, поскольку она позволяет избежать перемещения любой пользовательской конфигурации, хранящейся в ~ / .android, чтобы другие пользователи / дистрибутивы могли использовать те же AVD. Хорошо работал на Linux Debian.
Джон
24

Измените файл «virtual_android2.2.ini» в «C: \ Documents and Settings {ваша учетная запись Windows} .android \ avd \»:

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

И переместите папку «virtual_android2.2.avd» из «C: \ Documents and Settings {ваш вход в Windows} .android \ avd \» в «E: \ android_workspace \ avd \».

diyism
источник
Это сработало для меня! Немного неуклюже делать это для каждого эмулятора, который я создаю
Чаки
Спасибо, что спасли меня!
Шахана Карин
17

Перейдите в каталог инструментов Android. Отредактируйте командный файл android.bat. Примерно в конце командного файла найдите строку, аналогичную

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

и заменить

call %java_exe%

с участием

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

где {your_prefer_dire} - ваш предпочтительный каталог без фигурных скобок, но добавьте двойные кавычки,

например

call %java_exe% -Duser.home="E:\Program Files (x86)\android-sdk-windows"
loftysnake
источник
2
Это сработало для меня, а принятый ответ - нет. Кроме того, это фактически отвечает на то, что спросил OP, а именно, как перейти из домашнего каталога пользователя в другой каталог AVD, а не наоборот.
Адам Берли
ЭТО НЕ ДОЛЖНО БЫТЬ СДЕЛАНО! SDK Manager жалуется на это и не находит новое местоположение папки ... Используйте ANDROID_SDK_HOME в пользовательских средах и перезагрузите компьютер, это может помочь - [.android папка будет создана в% android_sdk_home%]
Davideas
16

На основании официальной документации https://developer.android.com/studio/command-line/variables.html вы должны изменить среду ANDROID_AVD_HOME var:

Переменные среды эмулятора

По умолчанию эмулятор хранит файлы конфигурации в $ HOME / .android / и данные AVD в $ HOME / .android / avd /. Вы можете переопределить значения по умолчанию, установив следующие переменные среды. Команда emulator -avd ищет каталог avd в порядке значений в $ ANDROID_AVD_HOME, $ ANDROID_SDK_HOME / .android / avd / и $ HOME / .android / avd /. Чтобы получить справку по переменной среды эмулятора, введите в командной строке emulator -help-environment. Сведения о параметрах командной строки эмулятора см. В разделе Управление эмулятором из командной строки.

  • ANDROID_EMULATOR_HOME : Устанавливает путь к пользовательскому каталогу конфигурации эмулятора. Расположение по умолчанию -
    $ ANDROID_SDK_HOME / .android /.
  • ANDROID_AVD_HOME : устанавливает путь к каталогу, который содержит все специфичные для AVD файлы, которые в основном состоят из очень больших образов дисков. Расположение по умолчанию - $ ANDROID_EMULATOR_HOME / avd /. Возможно, вы захотите указать новое расположение, если в расположении по умолчанию недостаточно места на диске.

После изменения или установки ANDROID_AVD_HOME вам придется переместить весь контент внутри ~ user / .android / avd / в новое место и изменить путь в ini-файл каждого эмулятора, просто замените его новым путем

Леонардо Сапуй
источник
1
Это должно быть ответом. Спасибо.
Нед
13

Переместите .androidтуда, куда хотите.

Затем создайте символическую ссылку следующим образом:

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

Это просто говорит Linux, что всякий раз, когда на путь /.androidссылается какое-либо приложение, связывайте его с /path/to/.android.

PS95
источник
Спасибо @ prakharsingh95
TonyMkenu
6

Проверьте это . используя androidкоманду для создания, avdвы можете указать, где размещать файлы.

-p --path     Location path of the directory where the new AVD will be created
Macarse
источник
Знаете ли вы какой-либо способ сделать это с помощью утилиты установки и установить его по умолчанию в определенном месте?
primehunter326
На самом деле, нет. Я даже не использую Windows :(
Macarse
Ну, как я уже сказал, это не имеет большого значения, просто подумал, что будет какой-то способ контролировать его, учитывая модульность всего пакета SDK. Спасибо за вашу помощь!
primehunter326
Ссылка выше не работает ( developer.android.com/intl/zh-TW/guide/developing/tools/… )
Джефф Мерглер
6

Для Visual Studio 2017 на Windows 10

Скопировать C:\Users\YOURUSERNAME\.androidпапку в (например)E:\avd

Откройте окно переменных среды:

  1. Зайдите в Настройки и нажмите Система.
  2. Слева нажмите «О программе» и выберите «Информация о системе» внизу.
  3. В новом окне нажмите Расширенные настройки системы слева.
  4. Нажмите Переменные среды в нижней части окна.

Добавьте новую переменную:

  • Имя переменной: ANDROID_SDK_HOME
  • Значение переменной: путь к каталогу (например E:\avd)

Не включайте .androidв значение переменной.

Перезапустите Visual Studio.

Для изменения местоположения SDK и NDK перейдите по ссылке:

Сервис -> Параметры -> Xamarin -> Настройки Android

user2511140
источник
4

Вы можете изменить INI-файл для нового AVD:

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

Я не знаю, как указать, где файл .ini должен храниться :)

JFrostos
источник
4

Переменная окружения ANDROID_AVD_HOMEможет использоваться для определения каталога, в котором AVD Manager должен искать INI-файлы AVD, и поэтому может использоваться для изменения местоположения виртуальных устройств;

Значением по умолчанию является %USERPROFILE%\.android\avdWindows (или ~/.android/avdLinux).

Можно также создать ссылку для всего каталога %USERPROFILE%\.androidв Windows (или символическую ссылку для каталога ~/.androidв Linux).

При перемещении AVD pathзапись в INI-файле AVD должна быть соответственно обновлена.

Мартин Цайтлер
источник
Эту переменную среды ANDROID_AVD_HOME можно было бы предпочесть ANDROID_SDK_HOME, поскольку она избегает перемещения любой пользовательской конфигурации, хранящейся в ~ / .android, поскольку другие пользователи / дистрибутивы могут использовать те же AVD. В Linux я экспортировал ANDROID_AVD_HOME в свой ~ / .profile, и он прекрасно работает.
Джон
3

Другой способ указать ANDROID_SDK_HOME без возни с переменными среды (особенно при использовании ec2) - просто создать ярлык затмения и добавить следующее в качестве цели

C: \ Windows \ System32 \ cmd.exe / C "setx ANDROID_SDK_HOME ВАША ПУТЬ AVD / M & ВАША ПУТЬ ECLIPSE.EXE "

Это установит ANDROID_SDK_HOME в качестве системной переменной при каждом запуске eclipse.

HTH Пол

Павел
источник
3

Обратите внимание на следующее: изменение файла android.bat в каталоге инструментов Android, как предложено в предыдущем ответе, может привести к проблемам.

Если вы сделаете это, для того, чтобы ваш каталог .android на законных основаниях находился в месте, отличном от местоположения по умолчанию, возможно, имеется несоответствие между AVD, указанными в Android Studio (с помощью «Инструменты> Android> AVD Manager»), и AVD, указанными в инструмент командной строки SDK "Android AVD".

Я полагаю, что Android Studio со своим внутренним AVD Manager не использует модифицированный путь android.bat; он использует переменную ANDROID_SDK_HOME для поиска AVD.

Мои собственные тесты показали, что инструменты Android правильно используют переменную ANDROID_SDK_HOME.

Поэтому, насколько я знаю, нет смысла изменять android.bat, и использование переменной среды должно быть предпочтительным.

SR_
источник
3

В Windows 10 у меня была такая проблема, потому что мой диск C был заполнен, и мне требовалось свободное место, в папке AVD было 14 гигабайт пространства, поэтому мне нужно было переместить эту папку в другой драйвер, первый ответ не работает для меня, поэтому я протестировал другой способ исправить Эта проблема, я делаю снимок для вас, если у вас есть та же проблема, вам не нужно перемещать все файлы в папке .android на другой диск (этот способ не работает), просто переместите папки avd в .... android \ avd в другой диск и откройте INI-файлы и измените путь к папке AVD из этого файла на новый путь. Понравилось это изображение:

изображение поможет вам увидеть, как изменить старый путь на новый путь

Надеюсь, это работает для вас.

Али Юсефи
источник
1

В моем случае меня беспокоит дисковое пространство C :. Поэтому я скопировал папку «.avd» (не файл) на другой диск и оставил там файл «.ini», но изменив его так, чтобы он указывал на перемещенный файл.

user829248
источник
1

Я думаю, что самый простой способ - переместить папку avd из папки C: \ Users [USER] .android в нужное место, а затем создать символическую ссылку на нее в C: \ Users [USER] .android с тем же именем.

Если вам интересно, как это сделать, сначала установите Link Shell Extension . После перемещения папки щелкните ее правой кнопкой мыши и выберите « Pick Link Source», затем щелкните правой кнопкой мыши в папке «.android» и в подменю « Drop As ...» выберите « Symbolic Link» .

Али
источник
это работает, и, честно говоря, это должно быть намного выше. Кроме того, вы можете создать символическую ссылку для C:\Users\user\AppData\Local\Android\Sdk\system-imagesэтого места, которое также занимает много места. вам не нужно использовать какие-либо сторонние инструменты, mklink /D system-images D:\path\to\system-imagesработает просто отлично
белка
1

Я следовал за https://www.mysysadmintips.com/windows/clients/761-move-android-studio-avd-folder-to-a-new-location .

  1. Начните копировать папку «C: \ Users \ user \ .android \ avd» в «D: \ Android \ .android \ avd» (или что-то еще).

  2. Закройте Android Studio и запустите эмуляторы.

  3. Нажмите Win + Breakи откройте Advanced System Settings. Затем нажмите Environment Variables. Добавьте переменную пользователя ANDROID_SDK_HOME. (Я не экспериментировал ANDROID_AVD_HOME.) В Variable valueполе пишите D:\Android. Если вы также переместили SDK в другую папку, измените ANDROID_HOME(я забыл изменить его, и некоторые эмуляторы не запускались, см. Https://stackoverflow.com/a/57408085/2914140 ).

  4. Дождитесь окончания копирования папки и запустите Android Studio.

  5. Откройте Android Virtual Device Managerи посмотрите список эмуляторов. Если вы не видите эмуляторов, и они существуют, то, возможно, вы ввели неверный путь в значение пользовательской переменной на шаге 3. В этом случае закройте AS, измените переменную и снова откройте AS.

  6. Запустите любой эмулятор. Он попытается восстановить свое состояние, но иногда это не удается . Вместо обоев Android может появиться черный экран.

  7. В этом случае вы можете:

    а. Перезапустите свой эмулятор. Для этого закройте запущенный эмулятор, затем в AVD Manager нажмите Cold Boot Now.

введите описание изображения здесь

б. Если это не помогло, откройте настройки эмулятора, найденные в файле "D: \ Android \ .android \ avd \ Pixel_API_27.ini".

введите описание изображения здесь

Измените путь к новой папке AVD. Перезапустите эмулятор.

  1. Удалите старую папку AVD из «C: \ Users \ user \ .android \ avd».
CoolMind
источник
0

ANDROID_SDK_HOME также работал для меня на Windows 8 x64, также найти все места (в моем случае это был d: \. Android) и удалить его. Вам это больше не понадобится.

Alkasai
источник
0

В диспетчере AVD после настройки AVD с использованием цели при Google APIsзапуске возникала ошибка.

Деталь показала: "AVD Неизвестная цель" Google Inc.: API Google: ...... "

Во время установки (в системе Win7) я выбрал расположение каталога SDK, вместо того, чтобы принять его C:\Users\... , затем добавил этот каталог в переменную окружения 'path'. Командная строка: в целевых списках андроида отображалась пара API Google.

Установка ANDROID_SDK_HOMEмоего пути установки исправила ошибку запуска AVD.

user5803030
источник
0

Имя переменной: ANDROID_SDK_HOME
Значение переменной: C: \ Users> Имя пользователя

работал на меня.

Buminda
источник
0

MacOs Получить справочник каталогов

./emulator -help-datadir

каталог по умолчанию:

/Users/{your_computer_user_name}/.android

а затем перейдите в папку avd и отредактируйте INI-файл, указав путь к вашему каталогу эмулятора:

путь = / тома / Macintos / _emulatorandroid / avd / Nexus_5X_API_27.avd path.rel = avd / Nexus_5X_API_27.avd target = android-27

а затем сохранить. Теперь ваш эмулятор изменился

введите описание изображения здесь

И результат:

введите описание изображения здесь

Тун Чан
источник
0

Есть четыре основных шага: 1. Скопируйте папку .android в нужное вам место, как я это сделал в D:\Android\.android 2. Установите ANDROID_AVD_HOME в переменных среды, таких как ANDROID_AVD_HOME D:\Android\.android\avd 3. Измените содержимое файла avd name.ini, указав новое расположение, например 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. Перезапустите Android Studio.

Дургеш Кумар
источник
0

1 - Переместить AVD в новую папку

2 - меню Пуск> Панель управления> Система> Расширенные настройки системы (слева)> Переменные среды Добавить новую пользовательскую переменную: Имя переменной: ANDROID_AVD_HOME Значение переменной: путь к каталогу по вашему выбору

3 - Изменить файл .INI Установить новую папку.

4 - Открыть Android Studio

РАБОТАЕТ - Windows 2010

БОЛЬШЕ ИНСТРУКЦИЙ: https://developer.android.com/studio/command-line/variables

user4062512
источник