性能-上传到正在运行的Android emu的速度较慢

我已经搜索过,但没有找到针对我的具体情况的任何疑问或答案。 我有一台运行速度很快的新机器,它具有运行Windows 7的大量内存。我正在使用最新的Eclipse和Android SDK。

从运行启动到运行我的应用程序,模拟器运行大约需要45秒钟(对于模拟器而言,这真是太快了!)。

如果然后我更改应用程序并在仍在运行的模拟器上重新运行它,则时间将增加到70多秒! 与人们的所有其他投诉相反,就我而言,重新启动模拟器比使用现有实例要快。 我不喜欢

这是时间:

2011-09-29 13:07:13 - hello Uploading hello.apk onto device 'emulator-5554'
2011-09-29 13:07:18 - hello Installing hello.apk...
2011-09-29 13:07:37 - hello Success!

在更改应用程序以使其重新加载后运行:

2011-09-29 13:08:18 - hello Uploading hello.apk onto device 'emulator-5554'
2011-09-29 13:09:16 - hello Installing hello.apk...
2011-09-29 13:09:24 - hello Success!

如您所见,重新启动仿真器后,上传到仿真器仅需5秒钟。 正在运行的模拟器需要将近一分钟! 这是延长重新运行时间的原因。 即使我在重新运行它之前在模拟器上卸载该应用程序,这也不会改变。

关于我可以尝试解决的任何想法? 它似乎是某种通信问题,可能与adb有关。

jfielding asked 2020-08-11T21:46:11Z
18个解决方案
30 votes

正如其他人所发表的那样,在上传时在模拟器中四处单击会大大提高上传速度。 我遇到了同样的问题,谷歌搜索了一个答案,尝试这个技巧对我有帮助。 我正在运行2.3.3 AVD。

TommyN answered 2020-08-11T21:46:17Z
8 votes

我的新发现是一个小的“技巧”,它使您可以更快地上传。 我意识到上传速度更快的情况是由我的互动引起的。 因此,当我在没有积极使用模拟器的情况下上传新应用时,它的速度很慢。 但是,当我使用它(测试我的应用程序,退出,打开应用程序列表等)时,上传速度要快得多-就我而言, 15秒改为将近2分钟。

因此,我认为问题出在模拟器的性能设置上。 当我什么都不做时,它认为不需要大的性能,模拟器被切换到某种经济状态,所以我的上传速度也很慢。

peter.bartos answered 2020-08-11T21:46:42Z
6 votes

更好的解决方案:

转到运行->运行配置...->目标选项卡->其他仿真器命令行选项。 在此添加:

-netspeed full -netdelay none

现在关闭仿真器,然后再次运行。

完成此操作后,上传时间从2分钟缩短到8秒。


编辑:我还发现退出Skype可使我的模拟器上载更快。

Uriel Frankel answered 2020-08-11T21:47:20Z
5 votes

我有同样的问题,我正在开发一个4.6MB的android应用程序,可能需要50-60秒的时间才能将其上传到模拟器并运行它。我认为这不是通信问题 。 JVM速度很慢,这就是为什么您需要一些时间来上载apk并运行它的原因。除了在设备上开始测试应用程序之外,我认为您无法做任何事情。

Android-Droid answered 2020-08-11T21:47:40Z
5 votes

上载应用程序时,请与模拟器一起玩。 我完全同意圆锥形帐蓬。 它使我的等待时间从4分钟减少到30秒。

Kalaji answered 2020-08-11T21:48:00Z
5 votes

您可以获得的最快仿真器是带有Android的VMWare计算机。

在开发我的游戏《 Elastic World》时,我遇到了同样的问题。 等待几分钟启动模拟器后,游戏以最大20 FPS的速度运行。 即使在低端的android设备上,我也可以轻松获得60 FPS。 上传速度非常慢。

因此,我按照此站点上的说明转移到了VMWare Android计算机上:[http://www.android-x86.org/documents/installhowto/]

现在,同一游戏循环的运行速度为250 FPS。 (无法以这种速度播放,并且我的游戏最大速度限制为60 FPS,但如果超过此限制,则可以提供250 FPS)

当Eclipse结束构建过程时,我只需要等待1到5秒钟,游戏就可以出现在虚拟机上。 我正在运行旧的Core2Duo

Pedro Soares answered 2020-08-11T21:48:39Z
4 votes

这不是AVD的问题,它使问题黯然失色,我不知道是否有一种方法可以在所谓的参数丛林中进行更改。

简而言之,您可以在控制台命令中自行启动所有仿真器使用以下内容:

emulator.exe -avd MyAVDName -netspeed full -netdelay none

参数不错,为什么Eclipse不使用它呢?某些Eclipse编码器应将其设置为默认值。另一个解决方案是切换到IntelliJ IDEA。 它将用新的更好的版本荣耀地替换您旧的笨拙的IDE。

Rubarb answered 2020-08-11T21:49:11Z
4 votes

我知道这是一个古老的话题,但是我认为我确实有解决此问题的方法。

首先,您需要在没有netspeed参数的情况下引导仿真器,如下所示:

emulator -avd <name>

一旦启动,就使用telnet登录到仿真器。 您可以从仿真器窗口的顶部获取端口,也可以通过运行adb设备并查看仿真器的序列号(格式为emulator-port,在大多数情况下通常为5554)来获取端口

telnet localhost 5554

使用telnet登录后,您需要发出以下命令来强制模拟器使用非常高的网络速度

network speed 500000

然后,您可以使用以下命令在telnet中检查此设置

network status

哪个应该返回

Current network status:
  download speed:   500000000 bits/s (61035.2 KB/s)
  upload speed:     500000000 bits/s (61035.2 KB/s)

如果您现在尝试安装APK,则应该会发现其性能得到了显着提高。 以我为例,它从260s上升到18s。

Andy answered 2020-08-11T21:49:57Z
2 votes

只是大声思考:

我不知道这个事实,但是我想知道这种放缓是否是因为Android应用程序每个都有自己的Dalvik VM实例并作为单独的用户和进程运行。 当您“认为”关闭了应用程序时,如果重新启动应用程序,Android可能会保持该进程(肯定是VM)的活动。 这类似于Windows中的预取行为。

当您重新运行应用程序时,在修改源代码之后,Android可能必须销毁缓存的实例。 在同一仿真器实例中进行重新部署时,您会注意到额外的延迟,这可能是由于正常关闭VM和应用程序而产生的费用。

Code Poet answered 2020-08-11T21:50:27Z
1 votes

我遇到了同样的问题,但是我坚信它与操作系统有关,因为我使用MacBook Pro和Dell笔记本电脑上传了相同的应用程序,考虑到硬件规格,该笔记本电脑功能更强大,但是上传时间是 在Mac上明显更低。

但是,在装有Windows的戴尔笔记本电脑上,上传到实际的Android设备的方法要快得多。

我以为它可能与以前没有安装过的“ Google USB驱动程序包”有关,但是在安装之后,并没有真正改变。

David answered 2020-08-11T21:50:57Z
1 votes

尝试将仿真器RAM设置为1024。

Paulo Barros answered 2020-08-11T21:51:17Z
1 votes

详细说明帐篷在先前的帖子中所说的内容,我发现,如果我在上载阶段对已经运行的AVD进行了处理,则完成速度要快得多(5秒对60秒),而我的安装和运行成本却很小 的时间。 这是带有4.0.3 AVD的。 还没有尝试过其他的。

sdfsdf sdfsdf answered 2020-08-11T21:51:37Z
1 votes

替代方式:

在PC上设置FTP服务器以托管apk文件,现在您可以通过android模拟器网络浏览器下载apk文件并直接安装应用程序,而无需使用adb。

要么

在Android模拟器上安装samba客户端并在您的PC上共享apk文件,然后将apk文件复制到模拟器并使用adb直接安装应用。

以上所有方法都比adb安装要快。

Sadegh answered 2020-08-11T21:52:15Z
0 votes

愚蠢的问题-您是否在多个AVD上尝试过? 您的一个AVD可能以某种方式被弄乱了。

zmbq answered 2020-08-11T21:52:35Z
0 votes

在模拟器上上传apk时,请与模拟器进行尽可能多的互动,如果您在上传时按模拟器的随机按钮,它将提早上传,之前需要5-6分钟才能上传,但现在只需要15-20秒。

Muaz Usmani answered 2020-08-11T21:52:55Z
0 votes

我也看到了 假设您一直在使用相同的AVD,这会有所帮助。擦除AVD上的用户数据。 完成此操作后,它将再次更快地加载应用程序,几秒钟。

user1010160 answered 2020-08-11T21:53:15Z
0 votes

在终端机/控制台中,我用adb -e shell装入AVD,然后转到正在上载apk的tmp目录cd /data/local/tmp,然后执行ls -l以查看当前文件大小。 我发现,如果我坐在那里并继续按向上箭头,然后输入以快速重复ls -l,上传速度会大大提高。 随着文件大小的增加,您可以观察进度。

这可能类似于其他人提到的在AVD中单击的效果。

我在Mac上。 不确定Windows或Linux上是否相同。

pinch answered 2020-08-11T21:53:45Z
0 votes

这可能在Windows上有效,

启动任务管理器->进程选项卡->查找emulator.exe,

右键单击并将优先级设置为高

完成工作后,不要忘记将其设置为正常。

还可以关闭不需要的应用程序,这些应用程序需要大量内存,例如chrome和firefox,可以在不需要时关闭它们。

1234567 answered 2020-08-11T21:54:22Z
translate from https://stackoverflow.com:/questions/7597309/slow-uploads-to-running-android-emulator