我们有一个大型的Xamarin.Android项目,包括两个依赖项目和许多第三方dll文件。在Hax-x86模拟器或Nexus 5设备上进行调试部署(没有任何更改)非常缓慢(>80秒)。相比之下,该应用程序的Xamarin.iOS版本在真实设备上部署仅需不到七秒钟。
为了测试部署时间,我还创建了一个全新的Xamarin.Android项目,它的部署时间约为四秒钟。当我添加一个依赖项目时,部署时间增加到七秒钟。当我向依赖项目添加布局文件时,部署时间增加到大约十秒钟。
是否可能通过Xamarin Studio加速Android构建和部署?与之相比,一个大型的Eclipse Android项目可以快速部署。
更新:仅运行安装构建步骤就需要大约40秒钟:
当我在Xamarin Studio中运行解决方案时,这一步会发生两次。一次是针对依赖项目,另一次是针对主项目。我尝试在控制台上复现这种行为。
为了测试部署时间,我还创建了一个全新的Xamarin.Android项目,它的部署时间约为四秒钟。当我添加一个依赖项目时,部署时间增加到七秒钟。当我向依赖项目添加布局文件时,部署时间增加到大约十秒钟。
是否可能通过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