慢速上传到运行Android模拟器
我已经search,但没有发现任何疑问或对我的具体情况的答案。 我有一台运行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。
正如其他人所发布的,在上传时只需在模拟器中点击即可大大提高上传速度。 我有同样的问题,谷歌search答案,试试这个窍门帮助了我。 我正在运行一个2.3.3 AVD。
我的新发现是一个小的“黑客”, 你可以更快地上传你的文件 。 我意识到上传速度较快的情况是由我的交互引起的。 所以,当我上传新的应用程序没有积极的工作与模拟器,这是缓慢的。 但是,当我使用它(testing我的应用程序,退出,打开应用程序列表等)时,上传速度更快 – 在我的情况下大约。 15秒而不是2分钟。
所以我认为,这个问题在模拟器的性能设置上有点不同。 当我什么都不做的时候,认为没有什么大的performance,模拟器切换到一些经济状态,所以我的上传速度也很慢。
更好的解决scheme:
转到运行 – >运行configuration… – >目标选项卡 – >其他仿真器命令行选项。 在那里添加:
-netspeed full -netdelay none
现在closures模拟器并再次运行。
这样做后,上传时间从2分钟到8秒。
编辑:我也发现,放弃Skype使我的模拟器上传更快。
我有同样的问题,我正在开发一个像4,6MB的Android应用程序,它需要我可能需要50-60秒在仿真程序上运行并运行它。我不认为这是通信的问题。 JVM很慢,这就是为什么你需要一些时间来上传你的apk并运行它。我不认为你可以做任何事情,除非你开始在设备上testing你的应用程序。
在上传您的应用程序时使用模拟器玩。 我完全同意圆锥帐。 它将我的等待时间从4分钟减less到30秒。
最快的模拟器,你可以得到它与Android的VMWare机器。
在开发我的游戏Elastic World的同时,我也遭遇了同样的问题。 在等待模拟器启动的分钟后,游戏运行在最大20FPS。 即使在低端Android设备,我可以很容易地获得60 FPS。 上传速度非常慢。
所以我转移到一个VMWare Android机器,按照这个网站的指示: http : //www.android-x86.org/documents/installhowto/
同样的游戏循环现在运行在250 FPS。 (在这个速度下不能玩,我把游戏限制在最大60 FPS,但是这个限制覆盖了250 FPS)
当Eclipse结束构build过程时,我只需要等待1到5秒钟,游戏就会出现在虚拟机上。 我正在运行一个老的Core2Duo
这不是AVD的问题,它已经超越了这个问题,我不知道是否有办法在我们所说的参数丛林中改变它。
简而言之,您可以使用以下命令在控制台命令中自行启动一个模拟器:
emulator.exe -avd MyAVDName -netspeed full -netdelay none
不错的参数,为什么Eclipse不使用它? 一些Eclipse编码器应该使其成为默认值。 另一个解决scheme是切换到IntelliJ IDEA。 它会光荣地取代你的旧笨重的IDE,一个新的,更好的。
我知道这是一个老话题,但我想我实际上已经解决了这个问题。
首先你需要启动模拟器,而不需要如下的netspeed参数:
emulator -avd <name>
一旦开始使用telnetlogin到模拟器。 您可以从仿真器窗口的顶部获取端口,或者通过运行adb设备并查看仿真器端口(在大多数情况下通常是5554)的仿真器的串行,
telnet localhost 5554
使用telnetlogin后,您需要发出以下命令来强制模拟器使用非常高的networking速度
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,则应该会发现性能显着提高。 在我的情况下,从260年代到18年代。
大声思考:
我不知道这个事实,但我想知道这是否是因为Android应用程序每个都有自己的Dalvik虚拟机的实例,并作为一个单独的用户和进程运行。 当你“想”你已经closures了你的应用程序,Android可能会保持这个进程(肯定是VM)活着,以防你重新启动应用程序。 这与Windows中的预取行为类似。
当您重新运行应用程序时,在修改源代码之后,Android可能必须销毁caching的实例。 在同一模拟器实例中重新部署的情况下,您注意到的额外延迟可能是由于正常closures虚拟机和应用程序所产生的成本。
我遇到了同样的问题,但是我确信它与操作系统有关,因为我使用MacBook Pro和戴尔笔记本电脑上传了相同的应用程序,这个笔记本电脑function更强大,但是上传时间是在Mac上显着降低。
然而,在戴尔这款戴尔笔记本电脑上,上传到实际的Android设备的方式更快。
我以为它可能与我之前没有安装的“Google USB Driver package”有关,但是在安装之后,没有什么变化。
尝试将您的模拟器RAM设置为1024。
在前面的文章中,我发现如果我把已经运行的AVD弄糟了,那么它会更快地完成(5秒比60秒),而且我已经安装并运行了一小部分的时间。 这是一个4.0.3 AVD。 还没有尝试过别人。
替代方法:
在您的电脑上设置一个FTP服务器来托pipeapk文件,现在您可以通过android模拟器网页浏览器下载apk文件,并使用adb直接安装应用程序。
要么
在android模拟器上安装一个samba客户端,并在您的电脑上分享apk文件,然后将apk文件复制到模拟器,并使用adb直接安装应用程序。
以上所有方法都比adb安装更快。
愚蠢的问题 – 你试了几个AVD? 有可能你的一个AVD以某种方式搞砸了。
在模拟器上传apk的过程中,尽可能多地使用模拟器进行交互,如果按下模拟器上的随机button,上传时会提前上传,上传5-6分钟,但现在只需要15-20秒。
我也看到了。 假设你使用了相同的AVD,这里有一些帮助。 擦除AVD上的用户数据。 这样做后,它会再次加载应用程序,更快,几秒钟。
在一个terminal/控制台中,我使用adb -e shell
将shell装入到AVD中,然后转到正在上传apk的tmp目录cd /data/local/tmp
然后执行ls -l
以查看当前的文件大小。 我发现,如果我坐在那里,继续按箭头,然后进入快速重复ls -l
的上传速度显着。 随着文件大小的增加,您可以观察进度。
这可能类似于其他人提到的AVD点击效果。
我在Mac上。 不确定在Windows或Linux上是否一样。
这可能在Windows上工作,
启动任务pipe理器 – >进程选项卡 – >寻找emulator.exe,
右键单击并将优先级设置为高
工作完成后不要忘了将其设置为正常。
还可以closures不需要的应用程序,这些应用程序需要像Chrome和Firefox这样的大量内存。