android - Xamarin.Android 构建/部署非常缓慢。如何加快他们的速度?

我们有一个大型 Xamarin.Android 项目,其中包含两个依赖项目和一堆第三方 dll。在 Hax-x86 模拟器或 Nexus 5 设备上进行调试部署(没有任何更改)非常缓慢(> 80 秒)。作为比较,应用程序的 Xamarin.iOS 版本可以在 7 秒内部署到真实设备上。

为了测试部署时间,我还创建了一个全新的 Xamarin.Android 项目,该项目在大约 4 秒内完成部署。当我添加一个依赖项目时,部署时间最多为 7 秒。当我将布局文件添加到依赖项目时,部署时间会增加到大约十秒。

是否可以使用 Xamarin Studio 加速 Android 构建和部署?相比之下,大型 Eclipse Android 项目的部署速度相当快。

更新:

仅运行安装构建步骤大约需要 40 秒:

time xbuild /t:Install BigApp.csproj
...
...
...
Time Elapsed 00:00:42.8526970

上述命令打印到控制台的时间大约有一半:

Target _CompileDex:
      JavaSourceFiles:
      JavaLibraries:
      ExternalJavaLibraries:
Tool /usr//bin/java execution started with arguments: -Xmx512M -jar 
/Users/myname/Library/Developer/Xamarin/android-sdk-mac_x86/build-tools/17.0.0//lib/dx.jar 
--no-strict --dex --output=obj/Debug/android/bin/classes.dex obj/Debug/android/bin/classes
/Library/Frameworks/Xamarin.Android.framework/Versions/Current/lib/mandroid/platforms/android-15/mono.android.jar
/Users/myname/Projects/BigApp/obj/Debug/__library_projects__/TestFlightBindings.Jars.TestFlightLib_1_2.jar
/Users/myname/Projects/BigApp/obj/Debug/__library_projects__/android-support-v4.jar
/Users/myname/Projects/BigApp/obj/Debug/__library_projects__/classes.jar
/Users/myname/Library/Developer/Xamarin/android-sdk-mac_x86/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar

当我从 Xamarin Studio 运行解决方案时,此步骤会发生两次。一次用于依赖项目,一次用于主项目。我尝试使用

在控制台上重现此行为
"/Applications/Xamarin Studio.app/Contents/MacOS/mdtool" -v build "--configuration:Debug -t Install" "BigApp.sln"

但这只会构建主项目。

更新:

我创建了一个部署时间很慢的小型演示项目: https://github.com/perpetual-mobile/SlowAndroidDeploymentWithXamarin

最佳答案

我就这个问题联系了 Xamarin 人员,他们修复了 Xamarin.Android 中的两个问题:

  • https://bugzilla.xamarin.com/show_bug.cgi?id=16622 (从 Xamarin Android 4.12.0 开始提供)
  • https://bugzilla.xamarin.com/show_bug.cgi?id=15162 (从 Xamarin Android 4.10.0 开始提供)

我的大型项目没有任何更改的构建时间现在约为 5 秒。在最深的依赖库中进行代码更改时,部署周期不会超过 16 秒。

https://stackoverflow.com/questions/20125720/

相关文章:

gradle - 为什么我收到 "could not find com.android.tools.

shell - 在 jenkins 中运行命令 shell

optimization - Jekyll 编译似乎太慢了

visual-c++ - 在 Windows 8 上为 Visual Studio 2012 构建

rest - Sonatype Nexus REST Api 获取最新的构建版本

c++ - 在构建我的 C++ 可执行文件 (gcc) 时,我可以获得所有链接库的报告吗? (包括静

recursion - 如何在 NuSpec 文件中递归地包含目录

.net - 构建后的 MsBuild 复制文件

build - apktool 构建 apk 失败

visual-studio - TFS 构建损坏 - 源目录上的目录不为空