可以更改Android虚拟设备的保存位置吗?


185

我已经在运行Windows XP的计算机上设置了Android SDK和Eclipse ,默认情况下将AVD(Android虚拟设备)保存到“文档和设置\ 用户 \ .android”。有什么办法可以改变这种行为?我将所有其他组件保存在单独分区的目录中,希望将所有内容合并。显然这没什么大不了的,但是这里有人知道解决方法吗?


我制作了比SSD快100倍的虚拟RAM磁盘,并将仿真器文件移到该磁盘上可以大大加快仿真器的加载速度。
Vinigas '16

@Vinigas您能详细说明一下“ RAM磁盘为100x”吗?我也想加快模拟器的速度
Utsav Gupta

我使用“ SoftPerfect RAM磁盘”软件创建虚拟磁盘。然后,我将android模拟器文件放入此RAM磁盘并设置模拟器位置。如果您有HDD,那么您会发现HDD和RAM中的模拟器之间存在很大差异。
Vinigas '16

Answers:


246

添加新的用户环境变量(Windows 7):

  1. 开始菜单>控制面板>系统>高级系统设置(在左侧)>环境变量

  2. 添加一个新的用户变量(在顶部),该变量指向您的主用户目录:

    变量名称:ANDROID_SDK_HOME
    变量值: 所选目录的路径

AVD Manager将使用此目录将其.android目录保存到其中。

对于那些可能感兴趣的人,我在博客上写了我对Android开发的首次尝试...
Android“ Hello World”:祸水的故事

另外,您可以使用Rapid Environment Editor设置环境变量。


1
谢谢。阅读您的博客条目就像是在放松今天的头几个小时。真痛苦!
马特·伯兰德

6
为您的信息+1。但我正在使用XP。对我来说,这将在重新启动后工作。谢谢。
Gunaseelan

1
在我重新启动计算机之前,这种方法对我一直有效。Win7的。
wangf

2
或只需键入在cmd中setx ANDROID_SDK_HOME D:\your\path\here
ПетърПетров

13
ANDROID_AVD_HOME环境变量可能比ANDROID_SDK_HOME更可取,因为它避免移动〜/ .android中存储的任何用户特定配置,因此其他用户/发行版也可以使用相同的AVD。在Linux Debian上运行良好。
约翰·约翰·约翰(John约翰)

24

在“ C:\ Documents and Settings {您的Windows登录名} .android \ avd \”中修改文件“ virtual_android2.2.ini”:

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 \”中。


这对我有用!必须为我创建的每个仿真器执行此操作有点笨拙
Chucky

谢谢你救了我!
shahana kareen

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"

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命令按$ ANDROID_AVD_HOME,$ ANDROID_SDK_HOME / .android / avd /和$ HOME / .android / avd /中的值顺序搜索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


谢谢@ prakharsingh95
TonyMkenu

6

检查这个出来。使用android命令创建,avd您可以指定放置文件的位置。

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

您是否知道通过设置实用程序执行此操作并将其默认设置为特定位置的任何方法?
primehunter326 2010年

并不是的。我什至不使用Windows :(
Macarse,2010年

就像我说的没什么大不了的,只是考虑到整个SDK包的模块化程度,将有某种方法可以对其进行更多控制。谢谢你的帮助!
primehunter326


6

对于Windows 10上的Visual Studio 2017

C:\Users\YOURUSERNAME\.android文件夹复制到(例如)E:\avd

打开环境变量窗口:

  1. 进入设置,然后单击系统。
  2. 在左侧,单击关于,然后在底部选择系统信息。
  3. 在新窗口中,单击左侧的高级系统设置。
  4. 单击结果窗口底部的环境变量。

添加一个新变量:

  • 变量名: ANDROID_SDK_HOME
  • 变量值:目录的路径(例如E:\avd

不要包含.android在变量值中。

重新启动Visual Studio。

要更改SDK和NDK的位置,请转到:

工具->选项-> Xamarin-> Android设置


4

您可以为新的AVD更改.ini文件:

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

我不知道如何指定.ini文件的存储位置:)


4

环境变量ANDROID_AVD_HOME可用于定义AVD Manager在其中查找AVD INI文件的目录,因此可用于更改虚拟设备的位置。

默认值为%USERPROFILE%\.android\avdWindows(或~/.android/avdLinux)上。

也可以%USERPROFILE%\.android在Windows上为整个目录创建一个链接(~/.android在Linux上为目录创建一个符号链接)。

移动pathAVD时,需要相应地更新AVD INI文件中的条目。


该ANDROID_AVD_HOME环境变量可能比ANDROID_SDK_HOME更可取,因为它避免移动〜/ .android中存储的任何用户特定配置,因为其他用户/发行版可能会使用相同的AVD。在Linux上,我将〜/ .profile中的ANDROID_AVD_HOME导出,并且效果很好。
约翰·约翰(John John)

3

指定ANDROID_SDK_HOME而不弄乱环境变量的另一种方法(特别是在使用ec2时)是简单地创建eclipse的快捷方式并将以下内容添加为目标

C:\ Windows \ System32 \ cmd.exe / C“ setx ANDROID_SDK_HOME 您的AVD路径 / M和您的ECLIPSE.EXE路径

每当您启动eclipse时,这会将ANDROID_SDK_HOME设置为系统变量。

保罗


3

请注意以下几点:如先前答案中所建议,在Android工具目录中修改android.bat可能会导致问题。

如果这样做,则为了合法地将您的.android目录定位到非默认位置,则Android Studio列出的AVD(使用“工具> Android> AVD管理器”)与以下列出的AVD之间可能存在不一致: sdk命令行工具“ android avd”。

我想Android Studio及其内部的AVD Manager不使用android.bat修改的路径;它依靠ANDROID_SDK_HOME变量来定位AVD。

我自己的测试表明,Android工具正确使用了ANDROID_SDK_HOME变量。

因此,据我所知,修改android.bat没有意义,应该首选使用环境变量。


3

在Windows 10中,我遇到了这个问题,因为我的C盘已满,我需要可用空间,AVD文件夹有14个演出空间,所以我需要将该文件夹移动到另一个驱动程序,第一个答案对我不起作用,所以我测试了另一种修复方法这个问题,如果您有同样的问题,我会为您拍一张照片,您不需要将.android文件夹中的所有文件移动到另一个驱动器(这种方式不起作用),只需将.... android \ avd中的avd文件夹移动到另一个驱动器并打开.ini文件,并将该文件的avd文件夹路径更改为新路径。喜欢这张图片:

图片可帮助您了解如何将旧路径更改为新路径

我希望这对您有用。


1

就我而言,我所关心的是C:驱动器磁盘空间。所以我要做的是将“ .avd”文件夹(不是文件)复制到其他驱动器,然后将“ .ini”文件保留在那里,但是将其更改为指向已移动


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

在此处输入图片说明

b。如果这样做没有帮助,请打开仿真器设置,该设置位于文件“ D:\ Android \ .android \ avd \ Pixel_API_27.ini”中。

在此处输入图片说明

将路径更改为新的AVD文件夹。重新启动模拟器。

  1. 从“ C:\ Users \ user \ .android \ avd”删除旧的AVD文件夹。

0

在Windows 8 x64上,ANDROID_SDK_HOME也为我工作,并且找到了所有位置(在我的情况下为d:\。android)并将其删除。您将不再需要它。


0

在AVD管理器中,使用带有的目标设置AVD后Google APIs,运行时出现错误。

详细信息显示:“ AVD未知目标'Google Inc.:Google API:......”

在安装过程中(在Win7系统上),我选择了一个SDK目录位置,而不是选择接受,C:\Users\... 然后将该目录添加到环境变量'path' 命令行:android list target确实显示了几个Google api。

设置ANDROID_SDK_HOME为我的安装路径可修复avd运行错误。


0

变量名称:ANDROID_SDK_HOME
变量值:C:\ Users>用户名

为我工作。


0

MacOs 获取目录副词

./emulator -help-datadir

默认目录为:

/Users/{your_computer_user_name}/.android

然后转到带有自定义模拟器目录示例路径的avd文件夹编辑.ini文件:

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

然后保存。现在您的仿真器有了变化

在此处输入图片说明

结果:

在此处输入图片说明


0

主要有4个步骤1.如我在D:\Android\.android 2中所做的那样,将.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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.