web-dev-qa-db-ja.com

アプリのビルドが遅い-Xamarin for Visual Studio

私のXamarin.Androidアプリのビルド/デプロイは最近非常に遅くなっています。以前はこんなに遅いのを思い出せません。

私は有効にしました:

  • 共有ランタイムを使用する
  • 迅速な導入

これらの設定を有効または無効にしても、違いはありません。どちらのシナリオでも、アプリのビルド/デプロイには約2分20秒(最大3分以上!)かかります。 Androidに実際のデバイスまたはVisual Studioエミュレーターを使用しても、違いはありません。

なぜこれが非常に遅いのでしょうか?正しい設定を使用していませんか?

更新2

昨日(11月14日)、Xamarin.VSを4.2.1.58に更新しました。ビルド期間の改善はありません。

私たちはアプリのリリースバージョンをビルドするためにTeamCityを使用しています。TeamCity統計は私が話していることを完全に示しています。

下のグラフでは、期間として前四半期を選択しています。ビルド期間の大幅な増加を確認してください。さて、リリースビルドを3分待ってもかまいませんが、デバッグ時には許容されません。

Nov. 7, before installing latest Xamarin updateNov. 8, after installing update and targetting Android 7

更新3

ジョン、助けてくれてありがとう.

その間、私はビルドログで自分でいくつかの調査を行い、ビルドタスクごとの期間も確認しました。どういうわけかGetAdditionalResourcesFromAssembliesには長い時間がかかることがわかりました。

アプリ内にあるリソースの量は劇的に変化しなかったので、これが私に考えさせられました。それは、私が使用している別のアセンブリである可能性があるということです。

次に、リビジョン1029(ビルドに約1分かかった最後のリビジョン)のチェックアウトを行い、更新された環境でデバッグしようとしました。それはまだ1m30s以内に建てられました...

そう:

  • おそらくVS Xamarinの更新ではありません(そうでない場合、リビジョン1029のビルドも遅くなります)
  • おそらく、迅速な展開ではなく、ビルドプロセスの期間が長くなります

それで、私のアプリのリビジョン1029と1030の間で何が変更されましたか?

  1. Xamarin for Visual Studioを4.2.0.719に更新
  2. インストール済みAndroid 7.0 SDKプラットフォームAndroid SDK Manager
  3. かわった Compile using Android version to Android 7.0プロジェクトのプロパティで
  4. Xamarin.Androidサポートライブラリを23.4.0.1から24.2.1に更新

変更4は、私が最初に更新した理由でした。バージョン24で改善されたBottomsheetを使用したかったのです。しかし、サポートライブラリナゲットはAndroid 7.0を対象としていたため、サポートライブラリを更新できるようにするために1〜3を実行する必要がありました。

これを引き起こす原因となったサポートライブラリのバインディングに何か変更があったのでしょうか?この問題が発生している他の開発者がいないかインターネットをチェックしたところ、Xamarinフォーラムで this が見つかりました。 AndroidExplicitCrunchビルドプロパティをtrueに設定すると修正されるようですが、それを試したところ、別のビルドエラーが発生しました。

とにかく、それは私がその間試みたものです。これで、要求に応じて、ここに私の診断ビルドログがあります。

1>Project Performance Summary:
1>        3 ms  C:\Development\Apps\FieldService-trunk\OverAllField.XamarinAndroid\OverAll.App.Shared\OverAll.App.Shared.csproj   3 calls
1>                  1 ms  GetTargetPath                              1 calls
1>                  0 ms  GetNativeManifest                          1 calls
1>                  2 ms  GetCopyToOutputDirectoryItems              1 calls
1>        4 ms  C:\Development\Apps\FieldService-trunk\OverAllField.XamarinAndroid\OverAllField.XamarinAndroid.DataLayer\OverAllField.XamarinAndroid.DataLayer.csproj   3 calls
1>                  1 ms  GetTargetPath                              1 calls
1>                  0 ms  GetNativeManifest                          1 calls
1>                  3 ms  GetCopyToOutputDirectoryItems              1 calls
1>    40103 ms  C:\Development\Apps\FieldService-trunk\OverAllField.XamarinAndroid\OverAllField.XamarinAndroid.ServiceClient\OverAllField.XamarinAndroid.ServiceClient.csproj   1 calls
1>
1>Target Performance Summary:
1>        0 ms  Compile                                    1 calls
1>        0 ms  ResolveReferences                          1 calls
1>        0 ms  BclBuildGetTargetPath                      1 calls
1>        0 ms  EnsureNuGetPackageBuildImports             1 calls
1>        0 ms  AfterResGen                                1 calls
1>        0 ms  ResolveCodeAnalysisRuleSet                 1 calls
1>        0 ms  _CreatePropertiesCache                     1 calls
1>        0 ms  _SetTargetFrameworkMonikerAttribute        1 calls
1>        0 ms  BeforeResGen                               1 calls
1>        0 ms  ModifyUnitTestPlatformVersion              1 calls
1>        0 ms  CreateCustomManifestResourceNames          1 calls
1>        0 ms  BclBuildAddProjectReferenceProperties      1 calls
1>        0 ms  _ResolveMonoAndroidFramework               1 calls
1>        0 ms  UpdateAndroidResources                     1 calls
1>        0 ms  CoreBuild                                  1 calls
1>        0 ms  ExpressionBuildExtension                   1 calls
1>        0 ms  _CheckTargetFramework                      1 calls
1>        0 ms  _CopyAppConfigFile                         1 calls
1>        0 ms  Build                                      1 calls
1>        0 ms  DeleteBuildInfoFile                        1 calls
1>        0 ms  CleanXsdCodeGen                            1 calls
1>        0 ms  _SetupInstantRun                           1 calls
1>        0 ms  GetFrameworkPaths                          1 calls
1>        0 ms  DeleteBuildInfoResource                    1 calls
1>        0 ms  _AddAndroidDefines                         1 calls
1>        0 ms  BuildOnlySettings                          1 calls
1>        0 ms  ComputeIntermediateSatelliteAssemblies     1 calls
1>        0 ms  ValidationExtension                        1 calls
1>        0 ms  AfterCompile                               1 calls
1>        0 ms  _CheckInstantRunCondition                  1 calls
1>        0 ms  _GenerateSatelliteAssemblyInputs           1 calls
1>        0 ms  _SetupApplicationJavaClass                 1 calls
1>        0 ms  _SetupDesignTimeBuildForIntellisense       1 calls
1>        0 ms  SetWin32ManifestProperties                 1 calls
1>        0 ms  CreateSatelliteAssemblies                  1 calls
1>        0 ms  _CopySourceItemsToOutputDirectory          1 calls
1>        0 ms  GetInstalledSDKLocations                   1 calls
1>        0 ms  _AddAndroidEnvironmentToCompile            1 calls
1>        0 ms  _CheckForContent                           1 calls
1>        0 ms  _SeparateAppExtensionReferences            1 calls
1>        0 ms  AfterResolveReferences                     1 calls
1>        0 ms  BeforeResolveReferences                    1 calls
1>        0 ms  PrepareResources                           1 calls
1>        0 ms  ResolveSDKReferences                       1 calls
1>        0 ms  _CheckForDeletedResourceFile               1 calls
1>        0 ms  BeforeCompile                              1 calls
1>        0 ms  UpdateAndroidAssets                        1 calls
1>        0 ms  DesignTimeXamlMarkupCompilation            1 calls
1>        0 ms  _AddMultiDexDependencyJars                 1 calls
1>        0 ms  PrepareForRun                              1 calls
1>        0 ms  ResGen                                     1 calls
1>        0 ms  _GenerateAndroidAssetsDir                  1 calls
1>        0 ms  AfterBuild                                 1 calls
1>        0 ms  BclBuildSetRunningFullBuild                1 calls
1>        0 ms  GetNativeManifest                          2 calls
1>        0 ms  ExpandSDKReferences                        1 calls
1>        0 ms  GenerateTargetFrameworkMonikerAttribute    1 calls
1>        0 ms  _GenerateAndroidResourceDir                1 calls
1>        0 ms  CreateManifestResourceNames                1 calls
1>        0 ms  BeforeBuild                                1 calls
1>        0 ms  _GenerateCompileInputs                     1 calls
1>        0 ms  _SetupDesignTimeBuildForBuild              1 calls
1>        0 ms  PrepareResourceNames                       1 calls
1>        0 ms  _AddNativeLibraryArchiveToCompile          1 calls
1>        1 ms  GetCopyToOutputDirectoryXamlAppDefs        3 calls
1>        1 ms  _GenerateJavaDesignerForComponent          1 calls
1>        1 ms  _CollectMonoAndroidOutputs                 1 calls
1>        1 ms  _SetEmbeddedWin32ManifestProperties        1 calls
1>        1 ms  CoreResGen                                 1 calls
1>        1 ms  _ValidateLinkMode                          1 calls
1>        1 ms  _GetLibraryImports                         1 calls
1>        1 ms  _CheckForCompileOutputs                    1 calls
1>        1 ms  _ReadPropertiesCache                       1 calls
1>        1 ms  GetTargetPath                              2 calls
1>        1 ms  _ComputeAndroidResourcePaths               1 calls
1>        1 ms  SetBuildInfoDefaults                       1 calls
1>        1 ms  SplitResourcesByCulture                    1 calls
1>        1 ms  _SplitProjectReferencesByFileExistence     3 calls
1>        1 ms  GenerateCompiledExpressionsTempFile        1 calls
1>        1 ms  BclBuildDetermineReferencesToRedirect      1 calls
1>        1 ms  _GetReferenceAssemblyPaths                 1 calls
1>        1 ms  PreXsdCodeGen                              1 calls
1>        2 ms  _RegisterMdbFilesWithFileWrites            1 calls
1>        2 ms  PrepareForBuild                            1 calls
1>        2 ms  _BuildSdkCache                             1 calls
1>        2 ms  _CalculateAdditionalResourceCacheDirectories   1 calls
1>        2 ms  AssignProjectConfiguration                 1 calls
1>        2 ms  _CreateAdditionalResourceCache             1 calls
1>        2 ms  GetReferenceAssemblyPaths                  1 calls
1>        3 ms  _GetAdditionalResourcesFromAssemblies      1 calls
1>        3 ms  _CheckDuplicateJavaLibraries               1 calls
1>        3 ms  _CollectAdditionalResourceFiles            1 calls
1>        3 ms  _ExtractLibraryProjectImports              1 calls
1>        3 ms  _ComputeAndroidAssetsPaths                 1 calls
1>        3 ms  AssignTargetPaths                          3 calls
1>        3 ms  CopyFilesToOutputDirectory                 1 calls
1>        4 ms  _ValidateResourceCache                     1 calls
1>        4 ms  _ValidateAndroidPackageProperties          1 calls
1>        5 ms  IncrementalClean                           1 calls
1>        7 ms  _ResolveMonoAndroidSdks                    1 calls
1>        9 ms  _CheckForInvalidConfigurationAndPlatform   3 calls
1>       10 ms  GetCopyToOutputDirectoryItems              3 calls
1>       11 ms  _CopyFilesMarkedCopyLocal                  1 calls
1>       11 ms  _CleanGetCurrentAndPriorFileWrites         1 calls
1>       12 ms  _AddLibraryProjectsEmbeddedResourceToProject   1 calls
1>       18 ms  ImplicitlyExpandDesignTimeFacades          1 calls
1>       29 ms  _BuildLibraryImportsCache                  1 calls
1>       41 ms  ResolveProjectReferences                   1 calls
1>       70 ms  _SetLatestTargetFrameworkVersion           1 calls
1>      114 ms  _ResolveLibraryProjectImports              1 calls
1>      138 ms  ResolveAssemblyReferences                  1 calls
1>      207 ms  _UpdateAndroidResgen                       1 calls
1>      356 ms  _GetPrimaryCpuAbi                          1 calls
1>      803 ms  CoreCompile                                1 calls
1>    38202 ms  _BuildAdditionalResourcesCache             1 calls
1>
1>Task Performance Summary:
1>        0 ms  CreateCSharpManifestResourceName           1 calls
1>        0 ms  Delete                                     2 calls
1>        0 ms  FindAppConfigFile                          1 calls
1>        0 ms  ResolveCodeAnalysisRuleSet                 1 calls
1>        0 ms  CallTarget                                 1 calls
1>        0 ms  ResolveNonMSBuildProjectOutput             1 calls
1>        0 ms  AssignCulture                              1 calls
1>        1 ms  GetFrameworkPath                           1 calls
1>        1 ms  GetAndroidPackageName                      1 calls
1>        1 ms  AssignProjectConfiguration                 1 calls
1>        1 ms  ReadImportedLibrariesCache                 1 calls
1>        1 ms  ReadLinesFromFile                          2 calls
1>        1 ms  GetAppSettingsDirectory                    1 calls
1>        1 ms  AssignTargetPath                          18 calls
1>        1 ms  CreateTemporaryDirectory                   1 calls
1>        1 ms  GetReferenceAssemblyPaths                  2 calls
1>        2 ms  Message                                   20 calls
1>        2 ms  CalculateAdditionalResourceCacheDirectories   1 calls
1>        2 ms  GetJavaPlatformJar                         1 calls
1>        2 ms  MakeDir                                    2 calls
1>        2 ms  WriteLinesToFile                           1 calls
1>        2 ms  ConvertToAbsolutePath                      1 calls
1>        3 ms  RemoveDuplicates                           2 calls
1>        3 ms  CopyIfChanged                              1 calls
1>        3 ms  CheckDuplicateJavaLibraries                1 calls
1>        3 ms  AndroidComputeResPaths                     2 calls
1>        3 ms  ReadLibraryProjectImportsCache             1 calls
1>        3 ms  CreateProperty                            41 calls
1>        4 ms  CopyGeneratedJavaResourceClasses           1 calls
1>        4 ms  GetExtraPackages                           1 calls
1>        4 ms  GetAndroidDefineConstants                  1 calls
1>        4 ms  CreateAndroidResourceStamp                 1 calls
1>        5 ms  FindUnderPath                              5 calls
1>        5 ms  ReadAdditionalResourcesFromAssemblyCache   2 calls
1>        5 ms  CreateResgenManifest                       1 calls
1>        6 ms  CreateItem                                23 calls
1>        6 ms  RemoveDirFixed                             1 calls
1>       12 ms  CreateManagedLibraryResourceArchive        1 calls
1>       14 ms  Copy                                       3 calls
1>       16 ms  ConvertResourcesCases                      1 calls
1>       21 ms  GenerateResourceDesigner                   1 calls
1>       28 ms  GetImportedLibraries                       1 calls
1>       49 ms  MSBuild                                    3 calls
1>       49 ms  ReadResolvedSdksCache                      1 calls
1>      114 ms  ResolveLibraryProjectImports               1 calls
1>      137 ms  ResolveAssemblyReference                   1 calls
1>      142 ms  Aapt                                       1 calls
1>      347 ms  GetPrimaryCpuAbi                           1 calls
1>      792 ms  Csc                                        1 calls
1>    38201 ms  GetAdditionalResourcesFromAssemblies       1 calls
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:40.09

2番目の要約があります(ログにはこれらの要約の2つが何とか含まれています)が、本文の文字数制限を超えるため、質問に含めることはできません。 2番目の要約の小さいバージョン:

2>Project Performance Summary:
2>        6 ms  C:\Development\Apps\FieldService-trunk\OverAllField.XamarinAndroid\OverAll.App.Shared\OverAll.App.Shared.csproj   5 calls
2>                  0 ms  GetTargetPath                              1 calls
2>                  0 ms  GetNativeManifest                          1 calls
2>                  1 ms  GetCopyToOutputDirectoryItems              1 calls
2>                  5 ms  GetBuiltProjectOutputRecursive             2 calls
2>        9 ms  C:\Development\Apps\FieldService-trunk\OverAllField.XamarinAndroid\OverAllField.XamarinAndroid.BarcodeScanner\OverAllField.XamarinAndroid.BarcodeScanner.csproj   4 calls
2>                  0 ms  GetTargetPath                              1 calls
2>                  2 ms  GetNativeManifest                          1 calls
2>                  3 ms  GetCopyToOutputDirectoryItems              1 calls
2>                  4 ms  GetBuiltProjectOutputRecursive             1 calls
2>       17 ms  C:\Development\Apps\FieldService-trunk\OverAllField.XamarinAndroid\OverAllField.XamarinAndroid.DataLayer\OverAllField.XamarinAndroid.DataLayer.csproj   5 calls
2>                  9 ms  GetTargetPath                              1 calls
2>                  1 ms  GetNativeManifest                          1 calls
2>                  2 ms  GetCopyToOutputDirectoryItems              1 calls
2>                  5 ms  GetBuiltProjectOutputRecursive             2 calls
2>       46 ms  C:\Development\Apps\FieldService-trunk\OverAllField.XamarinAndroid\OverAllField.XamarinAndroid.ServiceClient\OverAllField.XamarinAndroid.ServiceClient.csproj   4 calls
2>                 21 ms  GetTargetPath                              1 calls
2>                  0 ms  GetNativeManifest                          1 calls
2>                  2 ms  GetCopyToOutputDirectoryItems              1 calls
2>                 23 ms  GetBuiltProjectOutputRecursive             1 calls
2>    87736 ms  C:\Development\Apps\FieldService-trunk\OverAllField.XamarinAndroid\OverAllField.Android\OverAllField.XamarinAndroid.csproj   1 calls

2番目のターゲットパフォーマンスの概要:(文字を減らすために1000ミリ秒未満を削除)

2>     1955 ms  _GenerateJavaStubs                         1 calls
2>     3083 ms  _CreateBaseApk                             1 calls
2>     3467 ms  _UpdateAndroidResgen                       1 calls
2>     8944 ms  _CompileToDalvikWithDx                     1 calls
2>    66321 ms  _BuildAdditionalResourcesCache             1 calls

2番目のタスクのパフォーマンスの概要:(ここでも、文字数を減らすために1000ミリ秒未満を削除しました)

2>     1245 ms  GenerateJavaStubs                          1 calls
2>     2334 ms  ConvertResourcesCases                      3 calls
2>     4637 ms  Aapt                                       2 calls
2>     8941 ms  CompileToDalvik                            1 calls
2>    66320 ms  GetAdditionalResourcesFromAssemblies       1 calls
2>
2>Build succeeded.
2>
2>Time Elapsed 00:01:27.73

完全な診断ビルドログ ここ

UPDATE 4

Androidサポートバージョン23の完全な診断ビルドログ こちら

ビルド時間には大きな違いがあります。サポートバージョン24:

1>Project Performance Summary:
1>    40103 ms  C:\Development\Apps\trunk\App.Droid\App.Droid.ServiceClient\App.Droid.ServiceClient.csproj   1 calls
...
2>Project Performance Summary:
2>    87736 ms  C:\Development\Apps\trunk\App.Droid\App.Droid\App.Droid.csproj   1 calls

サポートバージョン23:

1>Project Performance Summary:
1>      962 ms  C:\Development\Apps\trunk-r1029\App.Droid\App.Droid.ServiceClient\App.Droid.ServiceClient.csproj   1 calls
2>Project Performance Summary:
2>    18214 ms  C:\Development\Apps\trunk-r1029\App.Droid\App.Droid\App.Droid.csproj   1 calls

どちらもtarget Android 7.0と同じXamarinバージョンでビルドされていますが、唯一の違いはAndroidサポートライブラリバージョンです。これは大幅な増加ではありませんか?

前もって感謝します!

21
avb

ビルド時間は多くの異なる要因に依存する可能性があるため、これは答えるのが非常に「難しい」質問ですが、whatを決定する方法について説明しますあなたのビルドが遅延を引き起こしています。ほとんどの場合、これは通常、最適化されていないResourcesが原因です。これは、モバイル向けに最適化する必要があるraw画像/オーディオ/ビデオなどのリソースです。

あなたが言及した実験的な機能に関しては、ここでリリースノートを見ることができます:

https://developer.xamarin.com/releases/Android/xamarin.Android_7/xamarin.Android_7.0/#Improved_Fast_Deployment

注:これは実験的なものであるため、本番環境で使用するのに十分安定していることを保証するものではありません。

ビルドタイムに関しては、ボトルネックがプロジェクト内のどこにあるかを知る必要があります。これを行うには、ビルドエージェントのコマンドでDiagnostic Build Outputを有効にする必要があります。これはMSBuildを使用して非常に簡単です。

/v:diagまたは/verbosity:diagnostic(または任意の組み合わせ)

そして

/clp:PerformanceSummary-各タスクのパフォーマンスタイミングを使用するように指示します

https://msdn.Microsoft.com/en-us/library/ms164311.aspx

EX:ファイルのビルド->新規Androidプロジェクト:

1>Project Performance Summary:
1>     4087 ms  c:\users\dougl\documents\visual studio 2015\Projects\App26\App26\App26.csproj   1 calls
1>               4087 ms  Rebuild                                    1 calls
1>
1>Target Performance Summary:
1>        0 ms  GetCopyToOutputDirectoryXamlAppDefs        1 calls
1>        0 ms  BeforeRebuild                              1 calls
1>        0 ms  PrepareResources                           1 calls
1>        0 ms  _DefineBuildTargetAbis                     1 calls
1>        0 ms  UpdateAndroidAssets                        1 calls
1>        0 ms  AfterBuild                                 1 calls
1>        0 ms  AfterCompile                               1 calls
1>        0 ms  BeforeCompile                              1 calls
1>        0 ms  ExpressionBuildExtension                   1 calls
1>        0 ms  _GenerateCompileInputs                     1 calls
1>        0 ms  ResolveCodeAnalysisRuleSet                 1 calls
1>        0 ms  _LinkAssemblies                            1 calls
1>        0 ms  GetTargetPath                              1 calls
1>        0 ms  Build                                      1 calls
1>        0 ms  GenerateCompiledExpressionsTempFile        1 calls
1>        0 ms  _CopyConfigFiles                           1 calls
1>        0 ms  Compile                                    1 calls
1>        0 ms  Rebuild                                    1 calls
1>        0 ms  ModifyUnitTestPlatformVersion              1 calls
1>        0 ms  _RegisterMdbFilesWithFileWrites            1 calls
1>        0 ms  _CheckForCompileOutputs                    1 calls
1>        0 ms  _SetupDesignTimeBuildForIntellisense       1 calls
1>        0 ms  _SetTargetFrameworkMonikerAttribute        1 calls
1>        0 ms  _GenerateAndroidAssetsDir                  1 calls
1>        0 ms  _AddMultiDexDependencyJars                 1 calls
1>        0 ms  AfterResolveReferences                     1 calls
1>        0 ms  UpdateAndroidResources                     1 calls
1>        0 ms  _CheckInstantRunCondition                  1 calls
1>        0 ms  CleanPublishFolder                         1 calls
1>        0 ms  _CheckTargetFramework                      1 calls
1>        0 ms  _CollectMonoAndroidOutputs                 1 calls
1>        0 ms  _CopySourceItemsToOutputDirectory          1 calls
1>        0 ms  CompileRdlFiles                            1 calls
1>        0 ms  _CreateAdditionalResourceCache             4 calls
1>        0 ms  DesignTimeXamlMarkupCompilation            1 calls
1>        0 ms  AfterRebuild                               1 calls
1>        0 ms  _SeparateAppExtensionReferences            1 calls
1>        0 ms  ExpandSDKReferences                        1 calls
1>        0 ms  _ReadPropertiesCache                       1 calls
1>        0 ms  AfterResGen                                1 calls
1>        0 ms  CleanReferencedProjects                    1 calls
1>        0 ms  _CollectPCLPdbFiles                        1 calls
1>        0 ms  Clean                                      1 calls
1>        0 ms  SetWin32ManifestProperties                 1 calls
1>        0 ms  ResolveSDKReferences                       1 calls
1>        0 ms  CreateSatelliteAssemblies                  1 calls
1>        0 ms  DeleteBuildInfoResource                    1 calls
1>        0 ms  _ResolveMonoAndroidFramework               1 calls
1>        0 ms  PrepareResourceNames                       1 calls
1>        0 ms  _SetupInstantRun                           1 calls
1>        0 ms  _SetupDesignTimeBuildForBuild              1 calls
1>        0 ms  CoreBuild                                  1 calls
1>        0 ms  _CheckForDeletedResourceFile               1 calls
1>        0 ms  GetFrameworkPaths                          1 calls
1>        0 ms  _ValidateLinkMode                          1 calls
1>        0 ms  DeleteBuildInfoFile                        1 calls
1>        0 ms  _CollectPCLMdbFiles                        1 calls
1>        0 ms  _CompileDex                                1 calls
1>        0 ms  GetInstalledSDKLocations                   1 calls
1>        0 ms  BeforeClean                                1 calls
1>        0 ms  BuildOnlySettings                          1 calls
1>        0 ms  _ValidateResourceCache                     1 calls
1>        0 ms  BeforeResolveReferences                    1 calls
1>        0 ms  _CheckForContent                           1 calls
1>        0 ms  BeforeResGen                               1 calls
1>        0 ms  PrepareRdlFiles                            1 calls
1>        0 ms  AfterClean                                 1 calls
1>        0 ms  _SetupApplicationJavaClass                 1 calls
1>        0 ms  ValidationExtension                        1 calls
1>        0 ms  _IncludeInstanceRunReference               1 calls
1>        0 ms  ResolveReferences                          1 calls
1>        0 ms  CreateCustomManifestResourceNames          1 calls
1>        0 ms  ResGen                                     1 calls
1>        0 ms  BeforeBuild                                1 calls
1>        1 ms  _SplitProjectReferencesByFileExistence     1 calls
1>        1 ms  _GenerateSatelliteAssemblyInputs           1 calls
1>        1 ms  PrepareForRun                              1 calls
1>        1 ms  CleanXsdCodeGen                            1 calls
1>        1 ms  GenerateTargetFrameworkMonikerAttribute    1 calls
1>        1 ms  ResolveProjectReferences                   1 calls
1>        1 ms  AssignTargetPaths                          1 calls
1>        1 ms  _CreateIntermediateAssembliesDir           1 calls
1>        1 ms  GetCopyToOutputDirectoryItems              1 calls
1>        1 ms  PreXsdCodeGen                              1 calls
1>        1 ms  _GetReferenceAssemblyPaths                 1 calls
1>        1 ms  CoreResGen                                 1 calls
1>        1 ms  _CleanGeneratedDeploymentFiles             1 calls
1>        1 ms  SetBuildInfoDefaults                       1 calls
1>        1 ms  AssignProjectConfiguration                 1 calls
1>        1 ms  _CreatePackageWorkspace                    1 calls
1>        1 ms  _GetMonoPlatformJarPath                    1 calls
1>        1 ms  PrepareForBuild                            1 calls
1>        1 ms  _CalculateAdditionalResourceCacheDirectories   1 calls
1>        1 ms  _ComputeAndroidResourcePaths               1 calls
1>        1 ms  _SetEmbeddedWin32ManifestProperties        1 calls
1>        1 ms  _GetAddOnPlatformLibraries                 1 calls
1>        1 ms  _GetLibraryImports                         1 calls
1>        1 ms  SplitResourcesByCulture                    1 calls
1>        1 ms  GetReferenceAssemblyPaths                  1 calls
1>        1 ms  _CheckProjectItems                         1 calls
1>        1 ms  _AdjustJavacVersionArguments               1 calls
1>        1 ms  _CleanGeneratedDebuggingFiles              1 calls
1>        2 ms  _PrepareAssemblies                         1 calls
1>        2 ms  _FindJavaStubFiles                         1 calls
1>        2 ms  _ExtractLibraryProjectImports              1 calls
1>        2 ms  _StripEmbeddedLibraries                    1 calls
1>        2 ms  _CleanGetCurrentAndPriorFileWrites         1 calls
1>        2 ms  _GetAdditionalResourcesFromAssemblies      1 calls
1>        2 ms  _FindCompiledJavaFiles                     1 calls
1>        2 ms  _CheckDuplicateJavaLibraries               1 calls
1>        2 ms  _AddLibraryProjectsEmbeddedResourceToProject   1 calls
1>        3 ms  _ComputeAndroidAssetsPaths                 1 calls
1>        3 ms  CopyFilesToOutputDirectory                 1 calls
1>        3 ms  CoreClean                                  1 calls
1>        3 ms  _CollectPdbFiles                           1 calls
1>        3 ms  GetBuiltProjectOutputRecursive             1 calls
1>        3 ms  _CollectConfigFiles                        1 calls
1>        3 ms  _ValidateAndroidPackageProperties          1 calls
1>        3 ms  _WriteResolvedAssemblies                   1 calls
1>        4 ms  _CreatePropertiesCache                     1 calls
1>        4 ms  _ResolveMonoAndroidSdks                    1 calls
1>        4 ms  _AddDebugStaticResources                   1 calls
1>        4 ms  _BuildLibraryImportsCache                  1 calls
1>        4 ms  _CollectMdbFiles                           1 calls
1>        5 ms  _CheckForInvalidConfigurationAndPlatform   1 calls
1>        7 ms  _ResolveSatellitePaths                     1 calls
1>        7 ms  _GeneratePackageManagerJava                1 calls
1>        8 ms  _DetermineJavaLibrariesToCompile           1 calls
1>        9 ms  IncrementalClean                           1 calls
1>       10 ms  _AddStaticResources                        1 calls
1>       11 ms  _CleanMonoAndroidIntermediateDir           1 calls
1>       11 ms  _GenerateAndroidResourceDir                1 calls
1>       12 ms  _CleanMsymArchive                          1 calls
1>       18 ms  _SetLatestTargetFrameworkVersion           1 calls
1>       20 ms  ResolveAssemblyReferences                  1 calls
1>       27 ms  ImplicitlyExpandDesignTimeFacades          1 calls
1>       30 ms  _BuildSdkCache                             1 calls
1>       35 ms  _ConvertPdbFiles                           1 calls
1>       45 ms  _CheckTargetFrameworks                     1 calls
1>       46 ms  _ResolveLibraryProjectImports              1 calls
1>       52 ms  _CreateBaseApk                             1 calls
1>       66 ms  _BuildAdditionalResourcesCache             1 calls
1>       72 ms  _CopyMdbFiles                              1 calls
1>       78 ms  _ResolveAssemblies                         1 calls
1>      115 ms  _UpdateAndroidResgen                       1 calls
1>      167 ms  _GenerateJavaStubs                         1 calls
1>      189 ms  _GetPrimaryCpuAbi                          1 calls
1>      453 ms  _CopyIntermediateAssemblies                1 calls
1>      515 ms  _LinkAssembliesNoShrink                    1 calls
1>      657 ms  _CompileToDalvikWithDx                     1 calls
1>      664 ms  _CompileJava                               1 calls
1>      677 ms  CoreCompile                                1 calls
1>
1>Task Performance Summary:
1>        0 ms  CallTarget                                 1 calls
1>        0 ms  MSBuild                                    1 calls
1>        0 ms  ResolveCodeAnalysisRuleSet                 1 calls
1>        0 ms  ReadLinesFromFile                          2 calls
1>        0 ms  GetFrameworkPath                           1 calls
1>        0 ms  FindAppConfigFile                          1 calls
1>        0 ms  AssignCulture                              1 calls
1>        1 ms  GetAppSettingsDirectory                    1 calls
1>        1 ms  ConvertToAbsolutePath                      1 calls
1>        1 ms  RemoveDuplicates                           3 calls
1>        1 ms  AssignTargetPath                           6 calls
1>        1 ms  CollectLibraryAssets                       1 calls
1>        1 ms  AssignProjectConfiguration                 1 calls
1>        1 ms  GetMonoPlatformJar                         1 calls
1>        1 ms  CalculateAdditionalResourceCacheDirectories   1 calls
1>        1 ms  CreateTemporaryDirectory                   2 calls
1>        1 ms  GetAndroidDefineConstants                  1 calls
1>        1 ms  GetAddOnPlatformLibraries                  1 calls
1>        1 ms  ReadImportedLibrariesCache                 1 calls
1>        1 ms  ReadAdditionalResourcesFromAssemblyCache   1 calls
1>        1 ms  CheckProjectItems                          1 calls
1>        1 ms  GetReferenceAssemblyPaths                  2 calls
1>        1 ms  AdjustJavacVersionArguments                1 calls
1>        2 ms  FindUnderPath                              7 calls
1>        2 ms  Message                                   17 calls
1>        2 ms  ReadLibraryProjectImportsCache             1 calls
1>        2 ms  MakeDir                                    6 calls
1>        2 ms  CreateAndroidResourceStamp                 1 calls
1>        2 ms  CreateProperty                            42 calls
1>        2 ms  CopyIfChanged                              1 calls
1>        2 ms  GetAndroidPackageName                      2 calls
1>        2 ms  GetJavaPlatformJar                         1 calls
1>        2 ms  GetExtraPackages                           2 calls
1>        2 ms  CheckDuplicateJavaLibraries                1 calls
1>        2 ms  CreateManagedLibraryResourceArchive        1 calls
1>        3 ms  RemoveUnknownFiles                         1 calls
1>        3 ms  AndroidComputeResPaths                     2 calls
1>        3 ms  CreateResgenManifest                       1 calls
1>        4 ms  GetImportedLibraries                       1 calls
1>        4 ms  GetFilesThatExist                          3 calls
1>        6 ms  Touch                                      7 calls
1>        6 ms  CopyGeneratedJavaResourceClasses           2 calls
1>        7 ms  CreateItem                                20 calls
1>        7 ms  GeneratePackageManagerJava                 1 calls
1>        7 ms  DetermineJavaLibrariesToCompile            1 calls
1>        8 ms  Delete                                    28 calls
1>       10 ms  CopyResource                               4 calls
1>       11 ms  RemoveDirFixed                             5 calls
1>       12 ms  WriteLinesToFile                           5 calls
1>       17 ms  ReadResolvedSdksCache                      1 calls
1>       27 ms  ResolveAssemblyReference                   2 calls
1>       29 ms  GenerateResourceDesigner                   1 calls
1>       29 ms  ResolveSdks                                1 calls
1>       29 ms  ConvertResourcesCases                      3 calls
1>       35 ms  ConvertDebuggingFiles                      1 calls
1>       45 ms  CheckTargetFrameworks                      1 calls
1>       45 ms  ResolveLibraryProjectImports               1 calls
1>       52 ms  CopyMdbFiles                               1 calls
1>       65 ms  GetAdditionalResourcesFromAssemblies       1 calls
1>       77 ms  ResolveAssemblies                          1 calls
1>       92 ms  Aapt                                       2 calls
1>      161 ms  GenerateJavaStubs                          1 calls
1>      186 ms  GetPrimaryCpuAbi                           1 calls
1>      479 ms  Copy                                       7 calls
1>      513 ms  LinkAssemblies                             1 calls
1>      655 ms  CompileToDalvik                            1 calls
1>      660 ms  Csc                                        1 calls
1>      664 ms  Javac                                      1 calls
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:04.08

このビルドにかかった時間がわかります:4秒。しかし、それはあなたのケースに答えませんが、このような適切なログがあれば、そのTargetまたはTaskを調査し、プロジェクトがボトルネックになっているものを特定できます。私の推測はaaptですが、これはAndroidこのツールがAndroid SDK内にあり、パッケージングを担当するため、StudioがここでハングアップするためですAndroid =資産。

編集:

このビルドは2つのプロジェクトをビルドするのに2分ほどかかったようです。 1つはC:\Development\Apps\trunk\App.Droid\App.Droid.ServiceClient\App.Droid.ServiceClient.csprojにあり、もう1つはC:\Development\Apps\trunk\App.Droid\App.Droid\App.Droid.csprojにあります(それぞれ40/87秒)。これは、Android Support/Google Playへのサードパーティの依存関係が多いプロジェクトでは非常に正常です。文字列Task "GetAdditionalResourcesFromAssembliesを検索すると、これが定義されている6か所を表示できます。 2 Androidプロジェクトのため、2つのタスクがここで呼び出されます。

Android Studioプロジェクトとその多くの外部依存関係を比較し、時間を比較する価値があるかもしれません。現在、GetAdditionalResourcesFromAssembliesに関しては、かなりの作業が進行中であることは知っています。タスク。ただし、この作業はサイクル9〜10まで利用できません。現在、この作業はプルリクエストの一部です。

https://github.com/xamarin/xamarin-Android/pull/296

(コミット時間のため、ほとんど新品であることがわかります)。

このタスクからわかるように、次の改善点があります。

現在のタスクは常にGoogleからデータをダウンロードします。これは、ファイルがAndroid sdkディレクトリにすでに存在するかどうかには関係ありません。このコミットにより、GetAdditionalResourcesFromAssembliesタスクがAndroid必要な.aarファイル用のsdkこれは、ユーザーが最新のsdkを持っている場合、インターネットからファイルをダウンロードする必要がほとんどないことを意味します。

PRもあります- https://github.com/xamarin/xamarin-Android/pull/292 (ありがとう@Mikhail)

計算時間を再利用する計算されたハッシュを再利用するアドレス。

TLDR;GetAdditionalResourcesFromAssembliesは、ビルド時間を短くするためにもう少し作業が必要です。これは現在作業中です。

編集2:

これは現在、https://www.nuget.org/packages/Xamarin.Build.Download/への依存関係を含むサポートライブラリで解決されています

8
Jon Douglas