我们有一个大型 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 中的两个问题:
我的大型项目没有任何更改的构建时间现在约为 5 秒。在最深的依赖库中进行代码更改时,部署周期不会超过 16 秒。
https://stackoverflow.com/questions/20125720/