ビルド プロセスBuild Process

概要Overview

Xamarin.Android ビルド プロセスは、Resource.designer.cs の生成AndroidAssetAndroidResource、およびその他のビルド アクションのサポート、Android 呼び出し可能なラッパーの生成、Android デバイスで実行するための .apk の生成のすべてを結び付ける役割を担っています。The Xamarin.Android build process is responsible for gluing everything together: generating Resource.designer.cs, supporting the AndroidAsset, AndroidResource, and other build actions, generating Android-callable wrappers, and generating a .apk for execution on Android devices.

アプリケーション パッケージApplication Packages

Xamarin.Android ビルド システムが生成できる Android アプリケーション パッケージ (.apk ファイル) には、大まかに次の 2 種類があります。In broad terms, there are two types of Android application packages (.apk files) which the Xamarin.Android build system can generate:

  • リリース ビルドは、実行に追加のパッケージを必要としない、完全な自己完結型です。Release builds, which are fully self-contained and don't require additional packages to execute. App Store に提供されるのはこのパッケージです。These are the packages which would be provided to an App store.

  • デバッグ ビルドではありません。Debug builds, which are not.

偶然ではなく、これらはパッケージを生成する MSBuild Configuration が一致しています。Not coincidentally, these match the MSBuild Configuration which produces the package.

共有ランタイムShared Runtime

共有ランタイムは、基本クラス ライブラリ (mscorlib.dll など) と Android バインド ライブラリ (Mono.Android.dll など) を提供する追加の Android パッケージのペアです。The shared runtime is a pair of additional Android packages which provide the Base Class Library (mscorlib.dll, etc.) and the Android binding library (Mono.Android.dll, etc.). デバッグ ビルドは共有ランタイムに依存して、基本クラス ライブラリとバインド アセンブリを Android アプリケーション パッケージ内に含める代わりに、デバッグ パッケージをより小さくできるようにします。Debug builds rely upon the shared runtime in lieu of including the Base Class Library and Binding assemblies within the Android application package, allowing the Debug package to be smaller.

共有ランタイムは、$(AndroidUseSharedRuntime) プロパティを False に設定することで、デバッグ ビルドで無効にすることができます。The shared runtime may be disabled in Debug builds by setting the $(AndroidUseSharedRuntime) property to False.

高速展開Fast Deployment

高速展開は、共有ランタイムと連携して、Android アプリケーション パッケージのサイズをさらに縮小します。Fast deployment works in concert with the shared runtime to further shrink the Android application package size. これはアプリのアセンブリをパッケージ内にバンドルせずに、This is done by not bundling the app's assemblies within the package. adb push を介してターゲットにコピーすることで行います。Instead, they are copied onto the target via adb push. このプロセスにより、ビルド/展開/デバッグのサイクルが高速化されます。アセンブリのみが変更された場合、パッケージは再インストールされず、This process speeds up the build/deploy/debug cycle because if only assemblies are changed, the package is not reinstalled. 代わりに、更新されたアセンブリだけがターゲット デバイスに再同期されるからです。Instead, only the updated assemblies are re-synchronized to the target device.

高速展開は、adb のディレクトリ /data/data/@PACKAGE_NAME@/files/.__override__ への同期をブロックするデバイスでは失敗することがわかっています。Fast deployment is known to fail on devices which block adb from synchronizing to the directory /data/data/@PACKAGE_NAME@/files/.__override__.

高速展開は、既定で有効になっており、$(EmbedAssembliesIntoApk) プロパティを True に設定することで、デバッグ ビルドで無効にすることができます。Fast deployment is enabled by default, and may be disabled in Debug builds by setting the $(EmbedAssembliesIntoApk) property to True.

MSBuild プロジェクトMSBuild Projects

Xamarin.Android ビルド プロセスは、Visual Studio for Mac と Visual Studio で使用されるプロジェクト ファイル形式でもある MSBuild に基づいています。The Xamarin.Android build process is based on MSBuild, which is also the project file format used by Visual Studio for Mac and Visual Studio. 通常、ユーザーは、MSBuild ファイルを手動で編集する必要はありません – IDE によって完全に機能するプロジェクトが作成され、変更があれば更新され、必要に応じて自動的にビルド ターゲットが呼び出されます。Ordinarily, users will not need to edit the MSBuild files by hand – the IDE creates fully functional projects and updates them with any changes made, and automatically invoke build targets as needed.

上級ユーザーが IDE の GUI でサポートされていないことを行えるように、ビルド プロセスは、プロジェクト ファイルを直接編集することでカスタマイズできるようになっています。Advanced users may wish to do things not supported by the IDE's GUI, so the build process is customizable by editing the project file directly. このページでは、Xamarin.Android 固有の機能とカスタマイズのみを文書化しています – 通常の MSBuild 項目、プロパティおよびターゲットを使用して、さらに多くのことができます。This page documents only the Xamarin.Android-specific features and customizations – many more things are possible with the normal MSBuild items, properties and targets.

ビルド ターゲットBuild Targets

Xamarin.Android プロジェクトに対して、次のビルド ターゲットが定義されています。The following build targets are defined for Xamarin.Android projects:

  • Build – パッケージをビルドします。Build – Builds the package.

  • BuildAndStartAotProfiling – 埋め込みの AOT プロファイラーを使用してアプリをビルドし、プロファイラーの TCP ポートを $(AndroidAotProfilerPort)に設定して、既定のアクティビティを開始します。BuildAndStartAotProfiling – Builds the app with an embedded AOT profiler, sets the profiler TCP port to $(AndroidAotProfilerPort), and starts the default activity.

    既定の TCP ポートは 9999 です。The default TCP port is 9999.

    Xamarin.Android 10.2 で追加されました。Added in Xamarin.Android 10.2.

  • Clean – ビルド プロセスによって生成されたすべてのファイルを削除します。Clean – Removes all files generated by the build process.

  • FinishAotProfiling – デバイスまたはエミュレーターからの AOT プロファイラー データを TCP ポート $(AndroidAotProfilerPort) 経由で収集し、$(AndroidAotCustomProfilePath) に書き込みます。FinishAotProfiling – Collects the AOT profiler data from the device or emulator through the TCP port $(AndroidAotProfilerPort) and writes them to $(AndroidAotCustomProfilePath).

    ポートおよびカスタム プロファイルの既定値は 9999custom.aprof です。The default values for port and custom profile are 9999 and custom.aprof.

    追加のオプションを aprofutil に渡すには、$(AProfUtilExtraOptions) プロパティで設定します。To pass additional options to aprofutil, set them in the $(AProfUtilExtraOptions) property.

    このようにすると、次の記述と同じ結果が得られます。This is equivalent to:

    aprofutil $(AProfUtilExtraOptions) -s -v -f -p $(AndroidAotProfilerPort) -o "$(AndroidAotCustomProfilePath)"
    

    Xamarin.Android 10.2 で追加されました。Added in Xamarin.Android 10.2.

  • Install – 既定のデバイスまたは仮想デバイスにパッケージをインストールします。Install – Installs the package onto the default device or virtual device.

  • SignAndroidPackage – パッケージ (.apk) を作成して署名します。SignAndroidPackage – Creates and signs the package (.apk). /p:Configuration=Release とともに使用して、自己完結型の "リリース" パッケージを生成します。Use with /p:Configuration=Release to generate self-contained "Release" packages.

  • StartAndroidActivity – デバイスまたは実行中のエミュレーターで既定のアクティビティを開始します。StartAndroidActivity – Starts the default activity on the device or the running emulator. 別のアクティビティを開始するには、$(AndroidLaunchActivity) プロパティをアクティビティ名に設定します。To start a different activity, set the $(AndroidLaunchActivity) property to the activity name.

    これは、adb shell am start @PACKAGE_NAME@/$(AndroidLaunchActivity) と同じです。This is equivalent to adb shell am start @PACKAGE_NAME@/$(AndroidLaunchActivity).

    Xamarin.Android 10.2 で追加されました。Added in Xamarin.Android 10.2.

  • StopAndroidPackage – デバイスまたは実行中のエミュレーター上のアプリケーション パッケージを完全に停止します。StopAndroidPackage – Completely stops the application package on the device or the running emulator.

    これは、adb shell am force-stop @PACKAGE_NAME@ と同じです。This is equivalent to adb shell am force-stop @PACKAGE_NAME@.

    Xamarin.Android 10.2 で追加されました。Added in Xamarin.Android 10.2.

  • Uninstall – 既定のデバイスまたは仮想デバイスからパッケージをアンインストールします。Uninstall – Uninstalls the package from the default device or virtual device.

  • UpdateAndroidResourcesResource.designer.cs ファイルを更新します。UpdateAndroidResources – Updates the Resource.designer.cs file. このターゲットは通常、新しいリソースがプロジェクトに追加されたときに、IDE によって呼び出されます。This target is usually called by the IDE when new resources are added to the project.

拡張ポイントをビルドするBuild Extension Points

Xamarin Android のビルド システムでは、ビルド プロセスに接続するユーザー向けに、いくつかのパブリック拡張ポイントが公開されています。The Xamarin.Android build system exposes a few public extension points for users wanting to hook into our build process. これらの拡張ポイントのいずれかを使用するには、PropertyGroup の適切な MSBuild プロパティにカスタム ターゲットを追加する必要があります。To use one of these extension points you will need to add your custom target to the appropriate MSBuild property in a PropertyGroup. 次に例を示します。For example:

<PropertyGroup>
   <AfterGenerateAndroidManifest>
      $(AfterGenerateAndroidManifest);
      YourTarget;
   </AfterGenerateAndroidManifest>
</PropertyGroup>

ビルド プロセスの拡張に関する注意事項を次に示します。正しく記述されていないと、ビルドの拡張機能がビルドのパフォーマンスに影響を与える可能性があります (特に、拡張機能がすべてのビルドで実行される場合)。A word of caution about extending the build process: If not written correctly, build extensions can affect your build performance, especially if they run on every build. このような拡張機能を実装する前に、MSBuild のドキュメントを読むことを強くお勧めします。It is highly recommended that you read the MSBuild documentation before implementing such extensions.

  • AfterGenerateAndroidManifest – このプロパティに示されているターゲットは、内部の _GenerateJavaStubs ターゲットの後に直接実行されます。AfterGenerateAndroidManifest – Targets listed in this property will run directly after the internal _GenerateJavaStubs target. ここで、$(IntermediateOutputPath)AndroidManifest.xml ファイルが生成されます。This is where the AndroidManifest.xml file is generated in the $(IntermediateOutputPath). したがって、生成された AndroidManifest.xml ファイルに変更を加える場合、この拡張ポイントを使用して行うことができます。So if you want to make any modifications to the generated AndroidManifest.xml file, you can do that using this extension point.

    Xamarin.Android 9.4 で追加されました。Added in Xamarin.Android 9.4.

  • BeforeGenerateAndroidManifest – このプロパティに示されているターゲットは、_GenerateJavaStubs の前に直接実行されます。BeforeGenerateAndroidManifest – Targets listed in this property will run directly before _GenerateJavaStubs.

    Xamarin.Android 9.4 で追加されました。Added in Xamarin.Android 9.4.

ビルド プロパティBuild Properties

MSBuild プロパティは、ターゲットの動作を制御します。MSBuild properties control the behavior of the targets. これらは、MSBuild PropertyGroup 要素内のプロジェクト ファイル (MyApp.csproj など) 内で指定されます。They are specified within the project file, e.g. MyApp.csproj, within an MSBuild PropertyGroup element.

  • Configuration – 使用するビルド構成 ("Debug" または "Release" など) を指定します。Configuration – Specifies the build configuration to use, such as "Debug" or "Release". Configuration プロパティは、ターゲットの動作を決定するその他のプロパティの既定値を決定するために使用されます。The Configuration property is used to determine default values for other properties which determine target behavior. 追加の構成は、IDE 内で作成できます。Additional configurations may be created within your IDE.

    既定ではDebug 構成により、操作する他のファイルとパッケージの存在を必要とするより小さい Android パッケージを作成する、Install ターゲットと SignAndroidPackage ターゲットがもたらされます。By default, the Debug configuration will result in the Install and SignAndroidPackage targets creating a smaller Android package which requires the presence of other files and packages to operate.

    既定の Release 構成により、スタンドアロンで、他のパッケージやファイルをインストールしなくても使用できる Android パッケージを作成する Install ターゲットと SignAndroidPackage ターゲットがもたらされます。The default Release configuration will result in the Install and SignAndroidPackage targets creating an Android package which is stand-alone, and may be used without installing any other packages or files.

  • DebugSymbols$(DebugType) プロパティと組み合わせて、Android パッケージがデバッグ可能かどうかを決定するブール値。DebugSymbols – A boolean value which determines whether the Android package is debuggable, in combination with the $(DebugType) property. デバッグ可能パッケージには、デバッグ シンボルが含まれており、//application/@android:debuggable 属性を true に設定し、INTERNET アクセス許可を自動的に追加して、デバッガーがプロセスにアタッチできるようにします。A debuggable package contains debug symbols, sets the //application/@android:debuggable attribute to true, and automatically adds the INTERNET permission so that a debugger can attach to the process. DebugSymbolsTrue "かつ" DebugType が空の文字列または Full の場合、アプリケーションはデバッグ可能です。An application is debuggable if DebugSymbols is True and DebugType is either the empty string or Full.

  • DebugType – ビルドの一部として生成するためのデバッグ シンボルの型を指定します。これはアプリケーションがデバッグ可能かどうかにも影響します。DebugType – Specifies the type of debug symbols to generate as part of the build, which also impacts whether the Application is debuggable. 次のような値となる場合があります。Possible values include:

    • Full: 完全なシンボルが生成されます。Full: Full symbols are generated. DebugSymbols MSBuild プロパティも True の場合、アプリケーション パッケージはデバッグ可能です。If the DebugSymbols MSBuild property is also True, then the Application package is debuggable.

    • PdbOnly: "PDB" シンボルが生成されます。PdbOnly: "PDB" symbols are generated. アプリケーション パッケージはデバッグ可能にはなりませんThe Application package will not be debuggable.

    DebugType が設定されていないか、空の文字列の場合、DebugSymbols プロパティが、アプリケーションがデバッグ可能かどうかを制御します。If DebugType is not set or is the empty string, then the DebugSymbols property controls whether or not the Application is debuggable.

    • AndroidGenerateLayoutBindingstrue に設定されている場合はレイアウトのコードビハインドの生成を有効にし、false に設定されている場合は完全に無効にします。AndroidGenerateLayoutBindings – Enables generation of layout code-behind if set to true or disables it completely if set to false. 既定値は false です。The default value is false.

インストール プロパティInstall Properties

インストール プロパティは、Install ターゲットと Uninstall ターゲットの動作を制御します。Install properties control the behavior of the Install and Uninstall targets.

  • AdbTarget – Android パッケージのインストール先または削除元となる Android ターゲット デバイスを指定します。AdbTarget – Specifies the Android target device the Android package may be installed to or removed from. このプロパティの値は、adb ターゲット デバイス オプションと同じです。The value of this property is the same as the adb Target Device option:

    # Install package onto emulator via -e
    # Use `/Library/Frameworks/Mono.framework/Commands/msbuild` on OS X
    MSBuild /t:Install ProjectName.csproj /p:AdbTarget=-e
    

パッケージング プロパティPackaging Properties

パッケージング プロパティは、Android パッケージの作成を制御し、Install ターゲットと SignAndroidPackage ターゲッによって使用されます。Packaging properties control the creation of the Android package, and are used by the Install and SignAndroidPackage targets. リリース アプリケーションをパッケージングする場合には、署名プロパティも関係します。The Signing Properties are also relevant when packaging Release applications.

  • AndroidAotProfiles – 開発者がコマンド ラインから AOT プロファイルを追加できるようにする文字列プロパティ。AndroidAotProfiles – A string property that allows the developer to add AOT profiles from the command line. セミコロンまたはコンマで区切られた絶対パスの一覧です。It is a semicolon or comma separated list of absolute paths.

    Xamarin.Android 10.1 で追加されました。Added in Xamarin.Android 10.1.

  • AndroidApkDigestAlgorithmjarsigner -digestalg で使用するダイジェスト アルゴリズムを指定する文字列値。AndroidApkDigestAlgorithm – A string value which specifies the digest algorithm to use with jarsigner -digestalg.

    既定値は SHA-256 です。The default value is SHA-256. Xamarin.Android 10.0 以前では、既定値は SHA1 でした。In Xamarin.Android 10.0 and earlier, the default value was SHA1.

    Xamarin.Android 9.4 で追加されました。Added in Xamarin.Android 9.4.

  • AndroidApkSignerAdditionalArguments – 開発者が apksigner ツールに追加の引数を指定することを許可する文字列プロパティ。AndroidApkSignerAdditionalArguments – A string property which allows the developer to provide additional arguments to the apksigner tool.

    Xamarin.Android 8.2 で追加されました。Added in Xamarin.Android 8.2.

  • AndroidApkSigningAlgorithmjarsigner -sigalg で使用する署名アルゴリズムを指定する文字列値。AndroidApkSigningAlgorithm – A string value which specifies the signing algorithm to use with jarsigner -sigalg.

    既定値は SHA256withRSA です。The default value is SHA256withRSA. Xamarin.Android 10.0 以前では、既定値は md5withRSA でした。In Xamarin.Android 10.0 and earlier, the default value was md5withRSA.

    Xamarin.Android 8.2 で追加されました。Added in Xamarin.Android 8.2.

  • AndroidApplication – プロジェクトが Android アプリケーション用 (True) か、または Android ライブラリ プロジェクト用 (False または存在しない) かを示すブール値。AndroidApplication – A boolean value that indicates whether the project is for an Android Application (True) or for an Android Library Project (False or not present).

    <AndroidApplication>True</AndroidApplication> を持つプロジェクトは、Android パッケージ内に 1 つしか存在できない場合がありますOnly one project with <AndroidApplication>True</AndroidApplication> may be present within an Android package. (残念ながら、これについてはまだ検証されていません。Android リソースに関するわかりにくいおかしなエラーになることがあります)。(Unfortunately this is not yet verified, which can result in subtle and bizarre errors regarding Android resources.)

  • AndroidApplicationJavaClassAndroid.App.Application からクラスを継承するときに、android.app.Application の代わりに使用する完全な Java クラス名。AndroidApplicationJavaClass – The full Java class name to use in place of android.app.Application when a class inherits from Android.App.Application.

    このプロパティは、通常、$(AndroidEnableMultiDex) MSBuild プロパティなどの他のプロパティで設定されます。This property is generally set by other properties, such as the $(AndroidEnableMultiDex) MSBuild property.

    Xamarin.Android 6.1 で追加されました。Added in Xamarin.Android 6.1.

  • AndroidBinUtilsPathld、ネイティブ リンカー、as、ネイティブ アセンブラーなどの Android binutils が格納されているディレクトリへのパス。AndroidBinUtilsPath – A path to a directory containing the Android binutils such as ld, the native linker, and as, the native assembler. これらのツールは Android NDK に含まれており、Xamarin.Android のインストールにも含まれています。These tools are part of the Android NDK and are also included in the Xamarin.Android installation.

    既定値は $(MonoAndroidBinDirectory)\ndk\ です。The default value is $(MonoAndroidBinDirectory)\ndk\.

    Xamarin.Android 10.0 で追加されました。Added in Xamarin.Android 10.0.

  • AndroidBoundExceptionType – Xamarin.Android で提供されている型で、Android.Runtime.InputStreamInvokerSystem.IO.StreamAndroid.Runtime.JavaDictionarySystem.Collections.IDictionary など、Java 型の観点から .NET の型またはインターフェイスを実装している場合に、例外を伝播する方法を指定する文字列値。AndroidBoundExceptionType – A string value that specifies how exceptions should be propagated when a Xamarin.Android-provided type implements a .NET type or interface in terms of Java types, for example Android.Runtime.InputStreamInvoker and System.IO.Stream, or Android.Runtime.JavaDictionary and System.Collections.IDictionary.

    • Java:元の Java 例外の型はそのまま伝播されます。Java: The original Java exception type is propagated as-is.

      これは、たとえば、InputStreamInvokerSystem.IO.Stream API を適切に実装していないことを意味します。これは、Stream.Read() からSystem.IO.IOException ではなく Java.IO.IOException がスローされる可能性があるためです。This means that, for example, InputStreamInvoker does not properly implement the System.IO.Stream API because Java.IO.IOException may be thrown from Stream.Read() instead of System.IO.IOException.

      これは、10.2 より前の Xamarin.Android のすべてのリリースでの例外伝播の動作です。This is the exception propagation behavior in all releases of Xamarin.Android prior to 10.2.

      これは、Xamarin.Android 10.2 の既定値です。This is the default value in Xamarin.Android 10.2.

    • System:元の Java 例外の型がキャッチされ、適切な .NET 例外の型でラップされます。System: The original Java exception type is caught and wrapped in an appropriate .NET exception type.

      これは、たとえば、InputStreamInvokerSystem.IO.Stream を正しく実装し、Stream.Read()Java.IO.IOException インスタンスをスロー "しない" ことを意味します。This means that, for example, InputStreamInvoker properly implements System.IO.Stream, and Stream.Read() will not throw Java.IO.IOException instances. (代わりに、Exception.InnerException の値として Java.IO.IOException を持つ System.IO.IOException をスローする場合があります)。(It may instead throw a System.IO.IOException which has a Java.IO.IOException as the Exception.InnerException value.)

      これは、Xamarin.Android 11.0 で既定値になります。This will become the default value in Xamarin.Android 11.0.

    Xamarin.Android 10.2 で追加されました。Added in Xamarin.Android 10.2.

  • AndroidBuildApplicationPackage – パッケージ (.apk) を作成して署名するかどうかを示すブール値。AndroidBuildApplicationPackage – A boolean value that indicates whether to create and sign the package (.apk). この値を True に設定することは、SignAndroidPackage ビルド ターゲットを使用することと同じです。Setting this value to True is equivalent to using the SignAndroidPackage build target.

    このプロパティのサポートは、Xamarin.Android 7.1 以降で追加されました。Support for this property was added after Xamarin.Android 7.1.

    このプロパティは既定で False です。This property is False by default.

  • AndroidBundleConfigurationFile – Android アプリ バンドルをビルドするときに bundletool構成ファイルとして使用するファイル名を指定します。AndroidBundleConfigurationFile – Specifies a filename to use as a configuration file for bundletool when building an Android App Bundle. このファイルは、APK を生成するためのどのディメンションでバンドルを分割するかなど、バンドルから APK を生成する方法のいくつかの側面を制御します。This file controls some aspects of how APKs are generated from the bundle, such as on what dimensions the bundle is split to produce APKs. Xamarin.Android では、圧縮しないままにするファイル拡張子の一覧など、これらの設定の一部が自動的に構成されることに注意してください。Note that Xamarin.Android configures some of these settings automatically, including the list of file extensions to leave uncompressed.

    このプロパティが意味をなすのは、$(AndroidPackageFormat)aab に設定されている場合のみです。This property is only relevant if $(AndroidPackageFormat) is set to aab.

    Xamarin.Android 10.3 で追加されました。Added in Xamarin.Android 10.3.

  • AndroidDexTooldx または d8 の有効な値の列挙方式のプロパティ。AndroidDexTool – An enum-style property with valid values of dx or d8. Xamarin.Android のビルド プロセス中に使用される Android の dex コンパイラを示します。Indicates which Android dex compiler is used during the Xamarin.Android build process. 現在の既定値は dx です。Currently defaults to dx. 詳細については、D8 と R8 に関するドキュメントをご覧ください。For further information see our documentation on D8 and R8.

  • AndroidEnableDesugardesugar が有効かどうかを決定するブール型プロパティ。AndroidEnableDesugar – A boolean property that determines if desugar is enabled. 現在、Android ではすべての Java 8 機能がサポートされておらず、javac コンパイラの出力に desugar と呼ばれるバイトコード変換を実行して、既定のツールチェーンにより新しい言語機能が実装されています。Android does not currently support all Java 8 features, and the default toolchain implements the new language features by performing bytecode transformations, called desugar, on the output of the javac compiler. AndroidDexTool=dx を使用している場合の既定値は FalseAndroidDexTool=d8 を使用している場合の既定値は True です。Defaults to False if using AndroidDexTool=dx and defaults to True if using AndroidDexTool=d8.

  • AndroidEnableGooglePlayStoreChecks – 開発者が次の Google Play ストア チェックを無効にできるようにするブール プロパティ:XA1004、XA1005、XA1006。AndroidEnableGooglePlayStoreChecks – A bool property which allows developers to disable the following Google Play Store checks: XA1004, XA1005 and XA1006. これは、Google Play ストアを対象としておらず、このチェックを実行したくない開発者にとって役立ちます。This is useful for developers who are not targeting the Google Play Store and do not wish to run those checks.

    Xamarin.Android 9.4 で追加されました。Added in Xamarin.Android 9.4.

  • AndroidEnableMultiDex – 最終的な .apk で Multi-Dex サポートを使用するかどうかを決定するブール型プロパティ。AndroidEnableMultiDex – A boolean property that determines whether or not multi-dex support will be used in the final .apk.

    このプロパティのサポートは、Xamarin.Android 5.1 で追加されました。Support for this property was added in Xamarin.Android 5.1.

    このプロパティは既定で False です。This property is False by default.

  • AndroidEnablePreloadAssemblies – アプリケーション パッケージ内でバンドルされているすべてのマネージド アセンブリを、プロセスの起動中に読み込むかどうかを制御するブール型プロパティ。AndroidEnablePreloadAssemblies – A boolean property which controls whether or not all managed assemblies bundled within the application package are loaded during process startup or not.

    True に設定すると、アプリケーション コードが呼び出される前に、アプリケーション パッケージ内でバンドルされているすべてのアセンブリがプロセスの起動中に読み込まれます。When set to True, all assemblies bundled within the application package will be loaded during process startup, before any application code is invoked. これは、Xamarin.Android 9.2 より前のリリースの Xamarin.Android の動作と一致します。This is consistent with what Xamarin.Android did in releases prior to Xamarin.Android 9.2.

    False に設定すると、アセンブリは必要な場合にのみ読み込まれます。When set to False, assemblies will only be loaded on an as-needed basis. これにより、アプリケーションの起動がより高速になり、デスクトップの .NET セマンティクスとの整合性も高まります。This allows applications to startup faster, and is also more consistent with desktop .NET semantics. 時間の短縮を確認したい場合は、timing を含めるよう debug.mono.log システム プロパティを設定して、adb logcat 内で Finished loading assemblies: preloaded メッセージを探します。To see the time savings, set the debug.mono.log System Property to include timing, and look for the Finished loading assemblies: preloaded message within adb logcat.

    依存関係の挿入を使うアプリケーションまたはライブラリでは、それらが同じように AppDomain.CurrentDomain.GetAssemblies() でアプリケーション バンドル内のすべてのアセンブリを返すことが必要な場合、それ以外ではアセンブリが必要なかった場合でも、このプロパティが True になることを "必要とする" 場合があります。Applications or libraries which use dependency injection may require that this property be True if they in turn require that AppDomain.CurrentDomain.GetAssemblies() return all assemblies within the application bundle, even if the assembly wouldn't otherwise have been needed.

    既定では、この値は True に設定されます。By default this value will be set to True.

    Xamarin.Android 9.2 で追加されました。Added in Xamarin.Android 9.2.

  • AndroidEnableProfiledAot – Ahead-of-Time コンパイル中に AOT プロファイルを使用するかどうかを決定するブール型プロパティ。AndroidEnableProfiledAot – A boolean property that determines whether or not the AOT profiles are used during Ahead-of-Time compilation.

    プロファイルは AndroidAotProfile 項目グループに一覧表示されます。The profiles are listed in AndroidAotProfile item group. この項目グループには、既定のプロファイルが含まれています。This ItemGroup contains default profile(s). 既存のものを削除し、独自の AOT プロファイルを追加することで上書きできます。It can be overriden by removing the existing one(s) and adding your own AOT profiles.

    このプロパティのサポートは、Xamarin.Android 9.4 で追加されました。Support for this property was added in Xamarin.Android 9.4.

    このプロパティは既定で False です。This property is False by default.

  • AndroidEnableSGenConcurrent – Mono の同時 GC コレクターが使用されるかどうかを決定するブール型プロパティ。AndroidEnableSGenConcurrent – A boolean property that determines whether or not Mono's concurrent GC collector will be used.

    このプロパティのサポートは、Xamarin.Android 7.2 で追加されました。Support for this property was added in Xamarin.Android 7.2.

    このプロパティは既定で False です。This property is False by default.

  • AndroidErrorOnCustomJavaObjectJava.Lang.Object または Java.Lang.Throwable を継承 "することなく"、型が Android.Runtime.IJavaObject を実装するかどうかを決定するブール型プロパティ。AndroidErrorOnCustomJavaObject – A boolean property that determines whether types may implement Android.Runtime.IJavaObject without also inheriting from Java.Lang.Object or Java.Lang.Throwable:

    class BadType : IJavaObject {
        public IntPtr Handle {
            get {return IntPtr.Zero;}
        }
    
        public void Dispose()
        {
        }
    }
    

    True の場合、このような型は XA4212 エラーを生成し、それ以外の場合は XA4212 警告を生成します。When True, such types will generate an XA4212 error, otherwise a XA4212 warning will be generated.

    このプロパティのサポートは、Xamarin.Android 8.1 で追加されました。Support for this property was added in Xamarin.Android 8.1.

    このプロパティは既定で True です。This property is True by default.

  • AndroidExtraAotOptions$(AndroidEnableProfiledAot) または $(AotAssemblies)true に設定されているプロジェクトの Aot タスク中に、Mono コンパイラに追加のオプションを渡すことができるようにする文字列プロパティ。AndroidExtraAotOptions – A string property that allows passing additional options to the Mono compiler during the Aot task for projects that have either $(AndroidEnableProfiledAot) or $(AotAssemblies) set to true. Mono クロスコンパイラを呼び出すときに、プロパティの文字列値が応答ファイルに追加されます。The string value of the property is added to the response file when calling the Mono cross-compiler.

    一般に、このプロパティは空白のままにしておく必要がありますが、特殊なシナリオでは、柔軟性が向上する場合があります。In general, this property should be left blank, but in certain special scenarios it might provide useful flexibility.

    このプロパティは、関連する $(AndroidAotAdditionalArguments) プロパティとは異なることに注意してください。Note that this property is different from the related $(AndroidAotAdditionalArguments) property. このプロパティは、コンマ区切りの引数を Mono コンパイラの --aot オプションに配置します。That property places comma-separated arguments into the --aot option of the Mono compiler. $(AndroidExtraAotOptions) では代わりに、--verbose--debug など、完全なスタンドアロンのスペース区切りオプションがコンパイラに渡されます。$(AndroidExtraAotOptions) instead passes full standalone space-separated options like --verbose or --debug to the compiler.

    Xamarin.Android 10.2 で追加されました。Added in Xamarin.Android 10.2.

  • AndroidFastDeploymentType$(EmbedAssembliesIntoApk) MSBuild プロパティが False の場合に、ターゲット デバイスの高速展開ディレクトリに展開できる型を制御する値の : (コロン) 区切りのリスト。AndroidFastDeploymentType – A : (colon)-separated list of values to control what types can be deployed to the Fast Deployment directory on the target device when the $(EmbedAssembliesIntoApk) MSBuild property is False. リソースが高速展開される場合、そのリソースが生成された .apk に埋め込まれないため、展開時間を短縮することができますIf a resource is fast deployed, it is not embedded into the generated .apk, which can speed up deployment times. (高速展開が増えるほど、.apk を再ビルドする頻度が減り、インストール プロセスを高速化できます)。有効な値を次に示します。(The more that is fast deployed, then the less frequently the .apk needs to be rebuilt, and the install process can be faster.) Valid values include:

    • Assemblies:アプリケーション アセンブリを展開します。Assemblies: Deploy application assemblies.

    • Dexes:.dex ファイル、Android リソース、および Android アセットを展開します。Dexes: Deploy .dex files, Android Resources, and Android Assets. この値は、Android 4.4 以降 (API-19) を実行しているデバイスでのみ使用できます。This value can only be used on devices running Android 4.4 or later (API-19).

    既定値は Assemblies です。The default value is Assemblies.

    試験的です。Experimental. Xamarin.Android 6.1 で追加されました。Added in Xamarin.Android 6.1.

  • AndroidGenerateJniMarshalMethods – ビルド プロセスの一環として、JNI マーシャリング メソッドの生成を有効にするブール型プロパティ。AndroidGenerateJniMarshalMethods – A bool property which enables generating of JNI marshal methods as part of the build process. これにより、バインディング ヘルパー コードでの System.Reflection の使用量が大幅に削減されます。This greatly reduces the System.Reflection usage in the binding helper code.

    既定では、これは False に設定されます。By default this will be set to False. 開発者が新しい JNI マーシャリング メソッド機能を使用する場合、If the developers wish to use the new JNI marshal methods feature, they can set

    <AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>
    

    自分の .csproj で設定できます。in their .csproj. または、コマンド ラインでプロパティを指定します。Alternatively provide the property on the command line via

    /p:AndroidGenerateJniMarshalMethods=True
    

    試験的です。Experimental. Xamarin.Android 9.2 で追加されました。Added in Xamarin.Android 9.2. 既定値は False です。The default value is False.

  • AndroidGenerateJniMarshalMethodsAdditionalArgumentsjnimarshalmethod-gen.exe 呼び出しにさらにパラメーターを追加するために使用できる文字列プロパティ。AndroidGenerateJniMarshalMethodsAdditionalArguments – A string property which can be used to add additional parameters to the jnimarshalmethod-gen.exe invocation. これはデバッグに役立つため、オプション (-v-d--keeptemp など) を使用できます。This is useful for debugging, so that options such as -v, -d, or --keeptemp can be used.

    既定値は、空の文字列です。Default value is empty string. これは、.csproj ファイルまたはコマンド ラインで設定できます。It can be set in the .csproj file or on the command line. 次に例を示します。For example:

    <AndroidGenerateJniMarshalMethodsAdditionalArguments>-v -d --keeptemp</AndroidGenerateJniMarshalMethodsAdditionalArguments>
    

    またはor:

    /p:AndroidGenerateJniMarshalMethodsAdditionalArguments="-v -d --keeptemp"
    

    Xamarin.Android 9.2 で追加されました。Added in Xamarin.Android 9.2.

  • AndroidHttpClientHandlerType – 既定の System.Net.Http.HttpClient コンストラクターによって使用される、既定の System.Net.Http.HttpMessageHandler の実装を制御します。AndroidHttpClientHandlerType – Controls the default System.Net.Http.HttpMessageHandler implementation which will be used by the System.Net.Http.HttpClient default constructor. 値は HttpMessageHandler サブクラスのアセンブリ修飾型名であり、System.Type.GetType(string) での使用に適しています。The value is an assembly-qualified type name of an HttpMessageHandler subclass, suitable for use with System.Type.GetType(string). このプロパティでは次の値が最も一般的です。The most common values for this property are:

    • Xamarin.Android.Net.AndroidClientHandler:Android Java API を使用して、ネットワーク要求を実行します。Xamarin.Android.Net.AndroidClientHandler: Use the Android Java APIs to perform network requests. これにより、基になる Android バージョンが TLS 1.2 をサポートする場合、TLS 1.2 の URL にアクセスできます。This allows accessing TLS 1.2 URLs when the underlying Android version supports TLS 1.2. TLS 1.2 のサポートが Java を通じて確実に提供されるのは、Android 5.0 以降のみです。Only Android 5.0 and later reliably provide TLS 1.2 support through Java.

      これは、Visual Studio のプロパティページの Android オプションと、Visual Studio for Mac プロパティ ページの AndroidClientHandler オプションに対応しています。This corresponds to the Android option in the Visual Studio property pages and the AndroidClientHandler option in the Visual Studio for Mac property pages.

      Visual Studio で [最低限の Android バージョン][Android 5.0 (Lollipop)] 以上に構成されている、または Visual Studio for Mac で [ターゲット プラットフォーム][最新および最高] に設定されている場合、新しいプロジェクトのウィザードで、新しいプロジェクトに対してこのオプションが選択されます。The new project wizard selects this option for new projects when the Minimum Android Version is configured to Android 5.0 (Lollipop) or higher in Visual Studio or when Target Platforms is set to Latest and Greatest in Visual Studio for Mac.

    • 空の文字列を設定解除します。これは、System.Net.Http.HttpClientHandler, System.Net.Http と同じですUnset/the empty string: This is equivalent to System.Net.Http.HttpClientHandler, System.Net.Http

      これは、Visual Studio のプロパティ ページの既定オプションに対応しています。This corresponds to the Default option in the Visual Studio property pages.

      Visual Studio で [最低限の Android バージョン][Android 4.4.87] 以下に構成されている、または Visual Studio for Mac で [ターゲット プラットフォーム][最新の開発] または [最大の互換性] に設定されている場合、新しいプロジェクトのウィザードで、新しいプロジェクトに対してこのオプションが選択されます。The new project wizard selects this option for new projects when the Minimum Android Version is configured to Android 4.4.87 or lower in Visual Studio or when Target Platforms is set to Modern Development or Maximum Compatibility in Visual Studio for Mac.

    • System.Net.Http.HttpClientHandler, System.Net.Http:マネージド HttpMessageHandler を使用します。System.Net.Http.HttpClientHandler, System.Net.Http: Use the managed HttpMessageHandler.

      これは、Visual Studio のプロパティ ページのマネージドオプションに対応しています。This corresponds to the Managed option in the Visual Studio property pages.

    注意

    TLS 1.2 のサポートがバージョン 5.0 より前の Android で必要な場合、"または" TLS 1.2 のサポートが System.Net.WebClient および関連する API で必要な場合、$(AndroidTlsProvider) を使用する必要があります。If TLS 1.2 support is required on Android versions prior to 5.0, or if TLS 1.2 support is required with the System.Net.WebClient and related APIs, then $(AndroidTlsProvider) should be used.

    注意

    このプロパティのサポートは、XA_HTTP_CLIENT_HANDLER_TYPE 環境変数を設定することにより機能します。Support for this property works by setting the XA_HTTP_CLIENT_HANDLER_TYPE environment variable. @(AndroidEnvironment) のビルド アクションを含むファイル内に見つかる $XA_HTTP_CLIENT_HANDLER_TYPE 値が優先されます。A $XA_HTTP_CLIENT_HANDLER_TYPE value found in a file with a Build action of @(AndroidEnvironment) will take precedence.

    Xamarin.Android 6.1 で追加されました。Added in Xamarin.Android 6.1.

  • AndroidLinkMode – Android パッケージ内に含まれるアセンブリで実行する必要があるリンクの種類を指定します。AndroidLinkMode – Specifies which type of linking should be performed on assemblies contained within the Android package. Android アプリケーション プロジェクトでのみ使用されます。Only used in Android Application projects. 既定値は SdkOnly です。The default value is SdkOnly. 次の値を指定できます。Valid values are:

    • None: リンクは試行されません。None: No linking will be attempted.

    • SdkOnly: リンクは基本クラス ライブラリでのみ実行され、ユーザーのアセンブリでは実行されません。SdkOnly: Linking will be performed on the base class libraries only, not user's assemblies.

    • Full: リンクは基本クラス ライブラリとユーザーのアセンブリで実行されます。Full: Linking will be performed on base class libraries and user assemblies.

      注意

      FullAndroidLinkMode 値を使用すると、多くの場合、特にリフレクションを使用している場合には、アプリが破損します。Using an AndroidLinkMode value of Full often results in broken apps, particularly when Reflection is used. 何をしているかを十分に理解している場合を除き、使用しないでください。Avoid unless you really know what you're doing.

    <AndroidLinkMode>SdkOnly</AndroidLinkMode>
    
  • AndroidLinkSkip – リンクしないアセンブリ名のセミコロン (;) で区切られたリストを、ファイル拡張子を使わずに指定します。AndroidLinkSkip – Specifies a semicolon-delimited (;) list of assembly names, without file extensions, of assemblies that should not be linked. Android アプリケーション プロジェクト内でのみ使用されます。Only used within Android Application projects.

    <AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>
    
  • AndroidLinkToolproguard または r8 の有効な値の列挙方式のプロパティ。AndroidLinkTool – An enum-style property with valid values of proguard or r8. Java コードに使用されるコード シュリンカーを示します。Indicates which code shrinker is used for Java code. 現在、既定値は空の文字列です。または、$(AndroidEnableProguard)True の場合は proguard です。Currently defaults to an empty string, or proguard if $(AndroidEnableProguard) is True. 詳細については、D8 と R8 に関するドキュメントをご覧ください。For further information see our documentation on D8 and R8.

  • AndroidLintEnabled – 開発者がパッケージ化プロセスの一部として、Android の lint ツールを実行できるようにするブール型プロパティ。AndroidLintEnabled – A bool property which allows the developer to run the android lint tool as part of the packaging process.

    • AndroidLintEnabledIssues – 有効にする lint の問題のコンマ区切りリスト。AndroidLintEnabledIssues – A comma separated list of lint issues to enable.

    • AndroidLintDisabledIssues – 無効にする lint の問題のコンマ区切りリスト。AndroidLintDisabledIssues – A comma separated list of lint issues to disable.

    • AndroidLintCheckIssues – チェックする lint の問題のコンマ区切りリスト。AndroidLintCheckIssues – A comma separated list of lint issues to check. 注: これらの問題のみがチェックされます。Note: only these issues will be checked.

    • AndroidLintConfig – これは Lint のスタイル構成ファイルのビルド アクションです。AndroidLintConfig – This is a Build action for a lint style config file. 有効または無効にされた問題の確認に使用できます。This can be used to enabled/disable issues to check. 複数のファイルで、コンテンツがマージされるように、このビルド アクションを使用できます。Multiple files can use this build action as their contents will be merged.

    Android の lint ツールの詳細については、Lint のヘルプに関するページを参照してください。See Lint Help for more details on the android lint tooling.

  • AndroidManagedSymbols – ファイル名と行番号の情報を Release スタック トレースから抽出できるように、シーケンス ポイントを生成するかどうかを制御するブール型プロパティ。AndroidManagedSymbols – A boolean property that controls whether sequence points are generated so that file name and line number information can be extracted from Release stack traces.

    Xamarin.Android 6.1 で追加されました。Added in Xamarin.Android 6.1.

  • AndroidManifest – アプリの AndroidManifest.xml のテンプレートとして使用するファイル名を指定します。AndroidManifest – Specifies a filename to use as the template for the app's AndroidManifest.xml. ビルド時に、実際の AndroidManifest.xml を生成するためにその他の必要な値がマージされます。During the build, any other necessary values will be merged into to produce the actual AndroidManifest.xml. $(AndroidManifest) は、/manifest/@package 属性にパッケージ名を含める必要があります。The $(AndroidManifest) must contain the package name in the /manifest/@package attribute.

  • AndroidManifestMergerAndroidManifest.xml ファイルをマージするための実装を指定します。AndroidManifestMerger – Specifies the implementation for merging AndroidManifest.xml files. これは、legacy が元の C# の実装を選択し、manifestmerger.jar が Google の Java 実装を選択する列挙型のプロパティです。This is an enum-style property where legacy selects the original C# implementation and manifestmerger.jar selects Google's Java implementation.

    現在の既定値は legacy です。The default value is currently legacy. これは、Android Studio の動作に合わせるために、将来のリリースで manifestmerger.jar に変更されます。This will change to manifestmerger.jar in a future release to align behavior with Android Studio.

    Google のマージャーでは、Android ドキュメントに記載されている xmlns:tools="http://schemas.android.com/tools" のサポートが有効になります。Google's merger enables support for xmlns:tools="http://schemas.android.com/tools" as described in the Android documentation.

    Xamarin.Android 10.2 で導入されました。Introduced in Xamarin.Android 10.2

  • AndroidMultiDexClassListExtraArgsmultidex.keep ファイルを生成するときに、開発者が追加の引数を com.android.multidex.MainDexListBuilder に渡すことを許可する文字列プロパティ。AndroidMultiDexClassListExtraArgs – A string property which allows developers to pass additional arguments to the com.android.multidex.MainDexListBuilder when generating the multidex.keep file.

    1 つの具体的なケースは、dx のコンパイル中に次のエラーが発生する場合です。One specific case is if you are getting the following error during the dx compilation.

    com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded
    

    このエラーが発生している場合は、以下を .csproj に追加できます。If you are getting this error you can add the following to the .csproj.

    <DxExtraArguments>--force-jumbo </DxExtraArguments>
    <AndroidMultiDexClassListExtraArgs>--disable-annotation-resolution-workaround</AndroidMultiDexClassListExtraArgs>
    

    これにより、dx の手順を成功させることができます。this should allow the dx step to succeed.

    Xamarin.Android 8.3 で追加されました。Added in Xamarin.Android 8.3.

  • AndroidPackageFormatapk または aab の有効な値の列挙方式のプロパティ。AndroidPackageFormat – An enum-style property with valid values of apk or aab. これは、Android アプリケーションを APK ファイルまたは Android アプリ バンドルとしてパッケージ化するかどうかを示します。This indicates if you want to package the Android application as an APK file or Android App Bundle. アプリ バンドルは、Google Play での送信を目的とした Release ビルドの新しい形式です。App Bundles are a new format for Release builds that are intended for submission on Google Play. この値は現在、apk が既定で使用されます。This value currently defaults to apk.

    $(AndroidPackageFormat)aab に設定すると、Android アプリ バンドルに必要な他の MSBuild プロパティが設定されます。When $(AndroidPackageFormat) is set to aab, other MSBuild properties are set, which are required for Android App Bundles:

    • $(AndroidUseAapt2)Trueです。$(AndroidUseAapt2) is True.
    • $(AndroidUseApkSigner)Falseです。$(AndroidUseApkSigner) is False.
    • $(AndroidCreatePackagePerAbi)Falseです。$(AndroidCreatePackagePerAbi) is False.
  • AndroidPackageNamingPolicy – 生成された Java ソース コードの Java パッケージ名を指定するための列挙型スタイルのプロパティ。AndroidPackageNamingPolicy – An enum-style property for specifying the Java package names of generated Java source code.

    Xamarin.Android 10.2 以降では、サポートされている値は LowercaseCrc64 のみです。In Xamarin.Android 10.2 and later, the only supported value is LowercaseCrc64.

    Xamarin.Android 10.1 では、暫定の LowercaseMD5 値も使用できました。これにより、Xamarin.Android 10.0 以前で使用されてた元の Java パッケージ名スタイルに戻すことができました。In Xamarin.Android 10.1, a transitional LowercaseMD5 value was also available that allowed switching back to the original Java package name style as used in Xamarin.Android 10.0 and earlier. このオプションは、FIPS 準拠が適用されたビルド環境との互換性を向上させるために、Xamarin.Android 10.2 で削除されました。That option was removed in Xamarin.Android 10.2 to improve compatibility with build environments that have FIPS compliance enforced.

    Xamarin.Android 10.1 で追加されました。Added in Xamarin.Android 10.1.

  • AndroidR8JarPath – r8 dex コンパイラおよびシュリンカーで使用する r8.jar へのパス。AndroidR8JarPath – The path to r8.jar for use with the r8 dex-compiler and shrinker. 既定値は、Xamarin.Android のインストール パスになります。Defaults to a path in the Xamarin.Android installation. 詳細については、D8 と R8 に関するドキュメントをご覧ください。For further information see our documentation on D8 and R8.

  • AndroidSdkBuildToolsVersion – Android SDK ビルド ツール パッケージは、特に、aapt ツールと zipalign ツールを提供します。AndroidSdkBuildToolsVersion – The Android SDK build-tools package provides the aapt and zipalign tools, among others. 複数の異なるバージョンのビルド ツール パッケージを同時にインストールすることができます。Multiple different versions of the build-tools package may be installed simultaneously. パッケージ化するビルド ツール パッケージの選択は、"優先" ビルド ツールのバージョンをチェックして、ある場合はそれを使用して行われます。"優先" バージョンが "ない" 場合は、インストールされている最も高いバージョンのビルド ツール パッケージが使用されます。The build-tools package chosen for packaging is done by checking for and using a "preferred" build-tools version if it is present; if the "preferred" version is not present, then the highest versioned installed build-tools package is used.

    $(AndroidSdkBuildToolsVersion) MSBuild プロパティには、優先ビルド ツールのバージョンが含まれています。The $(AndroidSdkBuildToolsVersion) MSBuild property contains the preferred build-tools version. Xamarin.Android ビルド システムは Xamarin.Android.Common.targets に既定値を提供します。たとえば、最新の aapt がクラッシュして、前のバージョンの aapt が機能することがわかっている場合には、その既定値をプロジェクト ファイル内でオーバーライドして、別のビルド ツール バージョンを選択できます。The Xamarin.Android build system provides a default value in Xamarin.Android.Common.targets, and the default value may be overridden within your project file to choose an alternate build-tools version, if (for example) the latest aapt is crashing out while a previous aapt version is known to work.

  • AndroidSupportedAbis.apk に含める必要がある ABI のセミコロン (;) で区切られたリストを含む文字列プロパティ。AndroidSupportedAbis – A string property that contains a semicolon (;)-delimited list of ABIs which should be included into the .apk.

    サポートされている値は次のとおりです。Supported values include:

    • armeabi-v7a
    • x86
    • arm64-v8a:Xamarin.Android 5.1 以降が必要です。arm64-v8a: Requires Xamarin.Android 5.1 and later.
    • x86_64:Xamarin.Android 5.1 以降が必要です。x86_64: Requires Xamarin.Android 5.1 and later.
  • AndroidTlsProvider – アプリケーションで使用する必要がある TLS プロバイダーを指定する文字列値。AndroidTlsProvider – A string value which specifies which TLS provider should be used in an application. 指定できる値は次のとおりです。Possible values are:

    • 空の文字列を設定解除します。Xamarin.Android 7.3 以上では、これは btls と同等です。Unset/the empty string: In Xamarin.Android 7.3 and higher, this is equivalent to btls.

      Xamarin.Android 7.1 では、これは legacy と同等です。In Xamarin.Android 7.1, this is equivalent to legacy.

      これは、Visual Studio のプロパティ ページの既定の設定に対応しています。This corresponds to the Default setting in the Visual Studio property pages.

    • btls:HttpWebRequest との TLS 通信に BoringSSL を使用します。btls: Use Boring SSL for TLS communication with HttpWebRequest.

      これにより、Android のすべてのバージョンで TLS 1.2 を使用できます。This allows use of TLS 1.2 on all Android versions.

      これは、Visual Studio のプロパティ ページのネイティブ TLS 1.2+ の設定に対応しています。This corresponds to the Native TLS 1.2+ setting in the Visual Studio property pages.

    • legacy:Xamarin.Android 10.1 以前では、ネットワークの対話に過去に管理されていた SSL の実装を使用します。legacy: In Xamarin.Android 10.1 and earlier, use the historical managed SSL implementation for network interaction. これは、TLS 1.2 をサポートしていませんThis does not support TLS 1.2.

      これは、Visual Studio のプロパティ ページのマネージド TLS 1.0 の設定に対応しています。This corresponds to the Managed TLS 1.0 setting in the Visual Studio property pages.

      Xamarin.Android 10.2 以降では、この値は無視され、btls 設定が使用されます。In Xamarin.Android 10.2 and later, this value is ignored and the btls setting is used.

    • default:この値は、Xamarin.Android プロジェクトで使用される可能性はほとんどありません。default: This value is unlikely to be used in Xamarin.Android projects. 代わりに空の文字列を使用することをお勧めします。これは、Visual Studio のプロパティ ページの既定の設定に対応しています。The recommended value to use instead is the empty string, which corresponds to the Default setting in the Visual Studio property pages.

      default 値は、Visual Studio のプロパティ ページでは提供されません。The default value is not offered in the Visual Studio property pages.

      これは現在、legacy と同じです。This is currently equivalent to legacy.

    Xamarin.Android 7.1 で追加されました。Added in Xamarin.Android 7.1.

  • AndroidUseApkSignerjarsigner ではなく apksigner ツールを使用することを開発者に許可するブール型プロパティ。AndroidUseApkSigner – A bool property which allows the developer to use the to the apksigner tool rather than the jarsigner.

    Xamarin.Android 8.2 で追加されました。Added in Xamarin.Android 8.2.

  • AndroidUseDefaultAotProfile – 開発者が既定の AOT プロファイルの使用を抑制できるようにするブール型プロパティです。AndroidUseDefaultAotProfile – A bool property that allows the developer to suppress usage of the default AOT profiles.

    既定の AOT プロファイルを抑制するには、このプロパティを false に設定します。To suppress the default AOT profiles, set the property to false.

    Xamarin.Android 10.1 で追加されました。Added in Xamarin.Android 10.1.

  • AndroidUseLegacyVersionCode – 開発者が versionCode の計算を Xamarin.Android 8.2 前の動作に戻すことを許可するブール型プロパティ。AndroidUseLegacyVersionCode – A boolean property will allows the developer to revert the versionCode calculation back to its old pre Xamarin.Android 8.2 behavior. これは、Google Play ストアに既存のアプリケーションがある開発者に向けてのみ使用する必要があります。This should ONLY be used for developers with existing applications in the Google Play Store. 新しい $(AndroidVersionCodePattern) プロパティを使用することを強くお勧めします。It is highly recommended that the new $(AndroidVersionCodePattern) property is used.

    Xamarin.Android 8.2 で追加されました。Added in Xamarin.Android 8.2.

  • AndroidUseManagedDesignTimeResourceGenerator – デザイン時のビルドを、aapt ではなく管理対象リソース パーサーの使用に切り替えるブール型プロパティ。AndroidUseManagedDesignTimeResourceGenerator – A boolean property which will switch over the design time builds to use the managed resource parser rather than aapt.

    Xamarin.Android 8.1 で追加されました。Added in Xamarin.Android 8.1.

  • AndroidUseSharedRuntime – ターゲット デバイスでアプリケーションを実行するために共有ランタイム パッケージが必要かどうかを決定するブール型プロパティ。AndroidUseSharedRuntime – A boolean property that is determines whether the shared runtime packages are required in order to run the Application on the target device. 共有ランタイム パッケージに依存することで、アプリケーション パッケージをより小型化し、パッケージの作成と展開プロセスを高速化できるため、ビルド/配置/デバッグのターンアラウンド サイクルの高速化が結果として得られます。Relying on the shared runtime packages allows the Application package to be smaller, speeding up the package creation and deployment process, resulting in a faster build/deploy/debug turnaround cycle.

    このプロパティは、デバッグ ビルドには True、リリース プロジェクトには False にする必要があります。This property should be True for Debug builds, and False for Release projects.

  • AndroidVersionCodePattern – 開発者がマニフェスト内の versionCode をカスタマイズできるようにする文字列プロパティ。AndroidVersionCodePattern – A string property which allows the developer to customize the versionCode in the manifest. versionCode の決定に関する情報は、「Creating the Version Code for the APK」 (APK のバージョン コードの作成) を参照してください。See Creating the Version Code for the APK for information on deciding a versionCode.

    いくつかの例では、abiarmeabi でマニフェスト内の versionCode123 の場合、$(AndroidCreatePackagePerAbi) が True のときには {abi}{versionCode} により 1123 の versionCode が生成され、それ以外のときは 123 の値が生成されます。Some examples, if abi is armeabi and versionCode in the manifest is 123, {abi}{versionCode} will produce a versionCode of 1123 when $(AndroidCreatePackagePerAbi) is True, otherwise will produce a value of 123. abix86_64 でマニフェスト内の versionCode44 です。If abi is x86_64 and versionCode in the manifest is 44. これにより、$(AndroidCreatePackagePerAbi) が True の場合には 544 が生成され、それ以外の場合は 44 の値が生成されます。This will produce 544 when $(AndroidCreatePackagePerAbi) is True, otherwise will produce a value of 44.

    versionCode0 でレフト パディングしているため、レフト パディングの書式文字列 {abi}{versionCode:0000} を含めると、50044 が生成されます。If we include a left padding format string {abi}{versionCode:0000}, it would produce 50044 because we are left padding the versionCode with 0. または、{abi}{versionCode:D4} などの 10 進パディングを使用することもできます。Alternatively, you can use the decimal padding such as {abi}{versionCode:D4} これは前の例と同じ動作になります。which does the same as the previous example.

    値は整数である必要があるため、'0' と 'Dx' のパディングの書式文字列のみがサポートされます。Only '0' and 'Dx' padding format strings are supported since the value MUST be an integer.

    事前定義済みのキー項目Pre-defined key items

    • abi – アプリのターゲットとなる abi を挿入します。abi – Inserts the targeted abi for the app

      • 2 – armeabi-v7a2 – armeabi-v7a
      • 3 – x863 – x86
      • 4 – arm64-v8a4 – arm64-v8a
      • 5 – x86_645 – x86_64
    • minSDKAndroidManifest.xml または 11 (定義されていない場合) からサポートされる Sdk の最小値を挿入します。minSDK – Inserts the minimum supported Sdk value from the AndroidManifest.xml or 11 if none is defined.

    • versionCodeProperties\AndroidManifest.xml から直接バージョン コードを使用します。versionCode – Uses the version code directly from Properties\AndroidManifest.xml.

    $(AndroidVersionCodeProperties) プロパティ (次で定義) を使用してカスタム項目を定義することができます。You can define custom items using the $(AndroidVersionCodeProperties) property (defined next).

    既定では、値は {abi}{versionCode:D6} に設定されます。By default the value will be set to {abi}{versionCode:D6}. 開発者が古い動作を保持する必要がある場合は、$(AndroidUseLegacyVersionCode) プロパティを true に設定することで既定値をオーバーライドできます。If a developer wants to keep the old behavior you can override the default by setting the $(AndroidUseLegacyVersionCode) property to true

    Xamarin.Android 7.2 で追加されました。Added in Xamarin.Android 7.2.

  • AndroidVersionCodePropertiesAndroidVersionCodePattern で使用するために、開発者がカスタム項目を定義できるようにする文字列プロパティ。AndroidVersionCodeProperties – A string property which allows the developer to define custom items to use with the AndroidVersionCodePattern. これらは key=value ペアの形式です。They are in the form of a key=value pair. value 内のすべての項目は整数値である必要があります。All items in the value should be integer values. たとえば、screen=23;target=$(_AndroidApiLevel) のように指定します。For example: screen=23;target=$(_AndroidApiLevel). ご覧のとおり、既存またはカスタムの MSBuild プロパティを文字列で利用することができます。As you can see you can make use of existing or custom MSBuild properties in the string.

    Xamarin.Android 7.2 で追加されました。Added in Xamarin.Android 7.2.

  • AotAssemblies – アセンブリをネイティブ コードに Ahead-of-Time コンパイルして、.apk に含めるかどうかを決定するブール型プロパティ。AotAssemblies – A boolean property that determines whether or not assemblies will be Ahead-of-Time compiled into native code and included in the .apk.

    このプロパティのサポートは、Xamarin.Android 5.1 で追加されました。Support for this property was added in Xamarin.Android 5.1.

    このプロパティは既定で False です。This property is False by default.

  • EmbedAssembliesIntoApk – アプリのアセンブリをアプリケーション パッケージに埋め込むかどうかを決定するブール型プロパティ。EmbedAssembliesIntoApk – A boolean property that determines whether or not the app's assemblies should be embedded into the Application package.

    このプロパティは、リリース ビルドには True、デバッグ ビルドには False にする必要があります。This property should be True for Release builds and False for Debug builds. 高速展開でターゲット デバイスがサポートされない場合は、デバッグ ビルドでこのプロパティを True にする必要がある場合がありますIt may need to be True in Debug builds if Fast Deployment doesn't support the target device.

    このプロパティが False の場合、$(AndroidFastDeploymentType) MSBuild プロパティが .apk に埋め込まれるものも制御するため、展開および再ビルド時間に影響を及ぼす場合があります。When this property is False, then the $(AndroidFastDeploymentType) MSBuild property also controls what will be embedded into the .apk, which can impact deployment and rebuild times.

  • EnableLLVM – アセンブリをネイティブ コードに Ahead-of-Time コンパイルするときに、LLVM を使用するかどうかを決定するブール型プロパティ。EnableLLVM – A boolean property that determines whether or not LLVM will be used when Ahead-of-Time compiling assemblies into native code.

    このプロパティが有効になっているプロジェクトをビルドするには、Android NDK がインストールされている必要があります。The Android NDK must be installed to build a project that has this property enabled.

    このプロパティのサポートは、Xamarin.Android 5.1 で追加されました。Support for this property was added in Xamarin.Android 5.1.

    このプロパティは既定で False です。This property is False by default.

    $(AotAssemblies) MSBuild プロパティが True でない限り、このプロパティは無視されます。This property is ignored unless the $(AotAssemblies) MSBuild property is True.

  • EnableProguardproguard を Java コードをリンクするパッケージ化プロセスの一部として実行するかどうかを決定するブール型プロパティ。EnableProguard – A boolean property that determines whether or not proguard is run as part of the packaging process to link Java code.

    このプロパティのサポートは、Xamarin.Android 5.1 で追加されました。Support for this property was added in Xamarin.Android 5.1.

    このプロパティは既定で False です。This property is False by default.

    True の場合、ProguardConfiguration ファイルは proguard の実行を制御するために使用されます。When True, ProguardConfiguration files will be used to control proguard execution.

  • JavaMaximumHeapSize.dex ファイルをパッケージ化プロセスの一部としてビルドする際に使用する java -Xmx パラメーター値を指定します。JavaMaximumHeapSize – Specifies the value of the java -Xmx parameter value to use when building the .dex file as part of the packaging process. 指定されていない場合、-Xmx オプションでは java1G の値が指定されます。If not specified, then the -Xmx option supplies java with a value of 1G. その他のプラットフォームに比べて、Windows では一般的にこの値が必要なことがわかりました。This was found to be commonly required on Windows in comparison to other platforms.

    _CompileDex ターゲットが java.lang.OutOfMemoryError をスローする場合には、このプロパティを指定する必要があります。Specifying this property is necessary if the _CompileDex target throws a java.lang.OutOfMemoryError.

    以下を変更することで値をカスタマイズします。Customize the value by changing:

    <JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
    
  • JavaOptions.dex ファイルのビルド時に、java に渡す追加のコマンド ライン オプションを指定します。JavaOptions – Specifies additional command-line options to pass to java when building the .dex file.

  • LinkerDumpDependencies – リンカーの依存関係ファイルの生成を有効にするブール型プロパティ。LinkerDumpDependencies – A bool property which enables generating of linker dependencies file. このファイルは、illinkanalyzer ツールに対する入力として使用できます。This file can be used as input for illinkanalyzer tool.

    既定値は False です。The default value is False.

  • MandroidI18n – 照合順序や並べ替えテーブルなど、アプリケーションに含まれる国際化サポートを指定します。MandroidI18n – Specifies the internationalization support included with the Application, such as collation and sorting tables. 値は、次の大文字と小文字を区別しない値の 1 つ以上のコンマ区切りまたはセミコロン区切りのリストです。The value is a comma- or semicolon-separated list of one or more of the following case-insensitive values:

    • None: 追加のエンコードは含まれません。None: Include no additional encodings.

    • All: 利用可能なすべてのエンコードが含まれます。All: Include all available encodings.

    • CJK: "日本語 (EUC) " [enc-jp, CP51932]、"日本語 (Shift-JIS) " [iso-2022-jp, shift_jis, CP932]、"日本語 (JIS) " [CP50220]、"簡体中国語 (GB2312) " [gb2312, CP936]、"韓国語 (UHC) " [ks_c_5601-1987, CP949]、"韓国語 (EUC) " [euc-kr, CP51949]、"繁体中国語 (Big5) " [big5, CP950]、および "簡体中国語 (GB18030) " [GB18030, CP54936] などの中国語、日本語、および韓国語のエンコードが含まれます。CJK: Include Chinese, Japanese, and Korean encodings such as Japanese (EUC) [enc-jp, CP51932], Japanese (Shift-JIS) [iso-2022-jp, shift_jis, CP932], Japanese (JIS) [CP50220], Chinese Simplified (GB2312) [gb2312, CP936], Korean (UHC) [ks_c_5601-1987, CP949], Korean (EUC) [euc-kr, CP51949], Chinese Traditional (Big5) [big5, CP950], and Chinese Simplified (GB18030) [GB18030, CP54936].

    • MidEast: "トルコ語 (Windows) " [iso-8859-9, CP1254]、"ヘブライ語 (Windows) " [windows-1255, CP1255]、"アラビア語 (Windows) " [windows-1256, CP1256]、"アラビア語 (ISO) " [iso-8859-6, CP28596]、"ヘブライ語 (ISO) " [iso-8859-8, CP28598]、"ラテン 5 (ISO) " [iso-8859-9, CP28599]、および "ヘブライ語 (Iso 代替) " [iso-8859-8, CP38598] などの中東のエンコードが含まれます。MidEast: Include Middle-Eastern encodings such as Turkish (Windows) [iso-8859-9, CP1254], Hebrew (Windows) [windows-1255, CP1255], Arabic (Windows) [windows-1256, CP1256], Arabic (ISO) [iso-8859-6, CP28596], Hebrew (ISO) [iso-8859-8, CP28598], Latin 5 (ISO) [iso-8859-9, CP28599], and Hebrew (Iso Alternative) [iso-8859-8, CP38598].

    • Other: "キリル語 (Windows) " [CP1251]、"バルト語 (Windows) " [iso-8859-4, CP1257]、"ベトナム語 (Windows) " [CP1258]、"キリル語 (KOI8-R) " [koi8-r, CP1251]、"ウクライナ語 (KOI8 U) " [koi8-u, CP1251]、"バルト語 (ISO) " [iso-8859-4, CP1257]、"キリル語 (ISO) " [iso-8859-5, CP1251]、"ISCII デーヴァナーガリー語" [x-iscii-de, CP57002]、"ISCII ベンガル語" [x-iscii-be, CP57003]、"ISCII タミール語" [x-iscii-ta, CP57004]、"ISCII テルグ語" [x-iscii-te, CP57005]、"ISCII アッサム語" [x-iscii-as, CP57006]、"ISCII オリヤー語" [x-iscii-or, CP57007]、"ISCII カンナダ語" [x-iscii-ka, CP57008]、"ISCII マラヤーラム語" [x-iscii-ma, CP57009]、"ISCII グジャラート語" [x-iscii-gu, CP57010]、"ISCII パンジャーブ語" [x-iscii-pa, CP57011]、および "タイ語 (Windows) " [CP874] などのその他のエンコードが含まれます。Other: Include Other encodings such as Cyrillic (Windows) [CP1251], Baltic (Windows) [iso-8859-4, CP1257], Vietnamese (Windows) [CP1258], Cyrillic (KOI8-R) [koi8-r, CP1251], Ukrainian (KOI8-U) [koi8-u, CP1251], Baltic (ISO) [iso-8859-4, CP1257], Cyrillic (ISO) [iso-8859-5, CP1251], ISCII Davenagari [x-iscii-de, CP57002], ISCII Bengali [x-iscii-be, CP57003], ISCII Tamil [x-iscii-ta, CP57004], ISCII Telugu [x-iscii-te, CP57005], ISCII Assamese [x-iscii-as, CP57006], ISCII Oriya [x-iscii-or, CP57007], ISCII Kannada [x-iscii-ka, CP57008], ISCII Malayalam [x-iscii-ma, CP57009], ISCII Gujarati [x-iscii-gu, CP57010], ISCII Punjabi [x-iscii-pa, CP57011], and Thai (Windows) [CP874].

    • Rare: "IBM EBCDIC (トルコ語) " [CP1026]、"IBM EBCDIC (オープン システム ラテン 1) " [CP1047]、"IBM EBCDIC (米国-カナダとユーロ) " [CP1140]、"IBM EBCDIC (ドイツとユーロ) " [CP1141]、"IBM EBCDIC (デンマーク/ノルウェーとユーロ) " [CP1142]、"IBM EBCDIC (フィンランド/スウェーデンとユーロ) " [CP1143]、"IBM EBCDIC (イタリアとユーロ) " [CP1144]、"IBM EBCDIC (ラテン アメリカ/スペインとユーロ) " [CP1145]、"IBM EBCDIC (イギリスとユーロ) " [CP1146]、"IBM EBCDIC (フランスとユーロ) " [CP1147]、"IBM EBCDIC (インターナショナルとユーロ) " [CP1148]、"IBM EBCDIC (アイスランド語とユーロ) " [CP1149]、"IBM EBCDIC (ドイツ) " [CP20273]、"IBM EBCDIC (デンマーク/ノルウェー) " [CP20277]、"IBM EBCDIC (フィンランド/スウェーデン) " [CP20278]、"IBM EBCDIC (イタリア) " [CP20280]、"IBM EBCDIC (ラテン アメリカ/スペイン) " [CP20284]、"IBM EBCDIC (イギリス) " [CP20285]、"IBM EBCDIC (日本語カタカナ拡張) " [CP20290]、"IBM EBCDIC (フランス) " [CP20297]、"IBM EBCDIC (アラビア語) " [CP20420]、"IBM EBCDIC (ヘブライ語) " [CP20424]、"IBM EBCDIC (アイスランド語) " [CP20871]、"IBM EBCDIC (キリル、セルビア語、ブルガリア語) " [CP21025]、"IBM EBCDIC (米国-カナダ) " [CP37]、"IBM EBCDIC (インターナショナル) " [CP500]、"アラビア語 (ASMO 708) " [CP708]、"中央ヨーロッパ言語 (DOS) " [CP852]、"キリル言語 (DOS) " [CP855]、"トルコ語 (DOS) " [CP857]、"西ヨーロッパ言語 (DOS とユーロ) " [CP858]、"ヘブライ語 (DOS) " [CP862]、"アラビア語 (DOS) " [CP864]、"ロシア語 (DOS) " [CP866]、"ギリシャ語 (DOS) " [CP869]、"IBM EBCDIC (ラテン 2) " [CP870]、"IBM EBCDIC (ギリシャ語) " [CP875] などのまれなエンコードが含まれます。Rare: Include Rare encodings such as IBM EBCDIC (Turkish) [CP1026], IBM EBCDIC (Open Systems Latin 1) [CP1047], IBM EBCDIC (US-Canada with Euro) [CP1140], IBM EBCDIC (Germany with Euro) [CP1141], IBM EBCDIC (Denmark/Norway with Euro) [CP1142], IBM EBCDIC (Finland/Sweden with Euro) [CP1143], IBM EBCDIC (Italy with Euro) [CP1144], IBM EBCDIC (Latin America/Spain with Euro) [CP1145], IBM EBCDIC (United Kingdom with Euro) [CP1146], IBM EBCDIC (France with Euro) [CP1147], IBM EBCDIC (International with Euro) [CP1148], IBM EBCDIC (Icelandic with Euro) [CP1149], IBM EBCDIC (Germany) [CP20273], IBM EBCDIC (Denmark/Norway) [CP20277], IBM EBCDIC (Finland/Sweden) [CP20278], IBM EBCDIC (Italy) [CP20280], IBM EBCDIC (Latin America/Spain) [CP20284], IBM EBCDIC (United Kingdom) [CP20285], IBM EBCDIC (Japanese Katakana Extended) [CP20290], IBM EBCDIC (France) [CP20297], IBM EBCDIC (Arabic) [CP20420], IBM EBCDIC (Hebrew) [CP20424], IBM EBCDIC (Icelandic) [CP20871], IBM EBCDIC (Cyrillic - Serbian, Bulgarian) [CP21025], IBM EBCDIC (US-Canada) [CP37], IBM EBCDIC (International) [CP500], Arabic (ASMO 708) [CP708], Central European (DOS) [CP852], Cyrillic (DOS) [CP855], Turkish (DOS) [CP857], Western European (DOS with Euro) [CP858], Hebrew (DOS) [CP862], Arabic (DOS) [CP864], Russian (DOS) [CP866], Greek (DOS) [CP869], IBM EBCDIC (Latin 2) [CP870], and IBM EBCDIC (Greek) [CP875].

    • West: "西ヨーロッパ言語 (Mac) " [macintosh, CP10000]、"アイスランド語 (Mac) " [x-mac-icelandic, CP10079]、"中央ヨーロッパ言語 (Windows) " [iso-8859-2, CP1250]、"西ヨーロッパ言語 (Windows) " [iso-8859-1, CP1252]、"ギリシャ語 (Windows) " [iso-8859-7, CP1253]、"中央ヨーロッパ言語 (ISO) " [iso-8859-2, CP28592]、"ラテン 3 (ISO) " [iso-8859-3, CP28593]、"ギリシャ語 (ISO) " [iso-8859-7, CP28597]、"ラテン 9 (ISO) " [iso-8859-15, CP28605]、"OEM 米国" [CP437]、"西ヨーロッパ言語 (DOS) " [CP850]、"ポルトガル語 (DOS) " [CP860]、"アイスランド語 (DOS) " [CP861]、"フランス語 (カナダ) (DOS) " [CP863]、および "北欧語 (DOS) " [CP865] などの欧文のエンコードが含まれます。West: Include Western encodings such as Western European (Mac) [macintosh, CP10000], Icelandic (Mac) [x-mac-icelandic, CP10079], Central European (Windows) [iso-8859-2, CP1250], Western European (Windows) [iso-8859-1, CP1252], Greek (Windows) [iso-8859-7, CP1253], Central European (ISO) [iso-8859-2, CP28592], Latin 3 (ISO) [iso-8859-3, CP28593], Greek (ISO) [iso-8859-7, CP28597], Latin 9 (ISO) [iso-8859-15, CP28605], OEM United States [CP437], Western European (DOS) [CP850], Portuguese (DOS) [CP860], Icelandic (DOS) [CP861], French Canadian (DOS) [CP863], and Nordic (DOS) [CP865].

    <MandroidI18n>West</MandroidI18n>
    
  • MonoSymbolArchive – “実際”のファイル名と行番号の情報をリリース スタック トレースから抽出するため、後で mono-symbolicate で使用するために .mSYM 成果物を作成するかどうかを制御するブール型プロパティ。MonoSymbolArchive – A boolean property which controls whether .mSYM artifacts are created for later use with mono-symbolicate, to extract “real” filename and line number information from Release stack traces.

    これは、デバッグ シンボルが有効 ($(EmbedAssembliesIntoApk) が True、$(DebugSymbols) が True、および $(Optimize) が True) になっている“リリース” アプリに対しては、既定で True になっています。This is True by default for “Release” apps which have debugging symbols enabled: $(EmbedAssembliesIntoApk) is True, $(DebugSymbols) is True, and $(Optimize) is True.

    Xamarin.Android 7.1 で追加されました。Added in Xamarin.Android 7.1.

プロジェクトのビルド プロパティをバインドするBinding Project Build Properties

次の MSBuild プロパティは、バインド プロジェクトで使用されます。The following MSBuild properties are used with Binding projects:

  • AndroidClassParser.jar ファイルの解析方法を制御する文字列プロパティ。AndroidClassParser – A string property which controls how .jar files are parsed. 次のような値となる場合があります。Possible values include:

    • class-parse: JVM を利用せずに、class-parse.exe を使用して直接 Java バイトコードを解析します。class-parse: Uses class-parse.exe to parse Java bytecode directly, without assistance of a JVM. この値は試験的です。This value is experimental.

    • jar2xml: Java リフレクションを使用して .jar ファイルから型とメンバーを抽出するには、jar2xml.jar を使用します。jar2xml: Use jar2xml.jar to use Java reflection to extract types and members from a .jar file.

    jar2xml よりも優れている class-parse の利点は次のとおりです。The advantages of class-parse over jar2xml are:

    • class-parse は、デバッグ シンボル (javac -g でコンパイルされたバイトコードなど) を含む Java バイトコードからパラメーター名を抽出できます。class-parse is able to extract parameter names from Java bytecode which contains debug symbols (e.g. bytecode compiled with javac -g).

    • class-parse は、解決できない型のメンバーから継承するクラスやそのようなメンバーが含まれるクラスを "スキップ" しません。class-parse doesn't "skip" classes which inherit from or contain members of unresolvable types.

    試験的です。Experimental. Xamarin.Android 6.0 で追加されました。Added in Xamarin.Android 6.0.

    既定値は jar2xml です。The default value is jar2xml.

    既定値は、将来のリリースで変更されます。The default value will change in a future release.

  • AndroidCodegenTarget – コード生成ターゲット ABI を制御する文字列型プロパティ。AndroidCodegenTarget – A string property which controls the code generation target ABI. 次のような値となる場合があります。Possible values include:

    • XamarinAndroid: Mono for Android 1.0 以降に付属している JNI バインド API を使用します。XamarinAndroid: Uses the JNI binding API present since Mono for Android 1.0. Xamarin.Android 5.0 以降でビルドされたバインドのアセンブリは、Xamarin.Android 5.0 以降 (API/ABI 追加機能) でないと実行できませんが、ソースは前の製品バージョンと互換性があります。Binding assemblies built with Xamarin.Android 5.0 or later can only run on Xamarin.Android 5.0 or later (API/ABI additions), but the source is compatible with prior product versions.

    • XAJavaInterop1: JNI の呼び出しに Java.Interop を使用します。XAJavaInterop1: Use Java.Interop for JNI invocations. XAJavaInterop1 を使用したバインドのアセンブリは、Xamarin.Android 6.1 以降でのみビルドおよび実行できます。Binding assemblies using XAJavaInterop1 can only build and execute with Xamarin.Android 6.1 or later. Xamarin.Android 6.1 以降は、この値で Mono.Android.dll をバインドします。Xamarin.Android 6.1 and later bind Mono.Android.dll with this value.

      XAJavaInterop1 には次の利点があります。The benefits of XAJavaInterop1 include:

      • より小さなアセンブリ。Smaller assemblies.

      • 継承階層の他のバインドの種類がすべて XAJavaInterop1 以降でビルドされる限り、base メソッドの呼び出しに jmethodID キャッシュを使用。jmethodID caching for base method invocations, so long as all other binding types in the inheritance hierarchy are built with XAJavaInterop1 or later.

      • マネージド サブクラスに対して Java 呼び出し可能ラッパー コンストラクターに jmethodID キャッシュを使用。jmethodID caching of Java Callable Wrapper constructors for managed subclasses.

      既定値は XAJavaInterop1 です。The default value is XAJavaInterop1.

リソースのプロパティResource Properties

リソースのプロパティは、Android ソースへのアクセスを提供する、Resource.designer.cs ファイルの生成を制御します。Resource properties control the generation of the Resource.designer.cs file, which provides access to Android resources.

  • AndroidAapt2CompileExtraArgs – Android アセットとリソースを処理するときに、aapt2 compile コマンドに渡す追加のコマンド ライン オプションを指定します。AndroidAapt2CompileExtraArgs – Specifies additional command-line options to pass to the aapt2 compile command when processing Android assets and resources.

    Xamarin.Android 9.1 で追加されました。Added in Xamarin.Android 9.1.

  • AndroidAapt2LinkExtraArgs – Android アセットとリソースを処理するときに、aapt2 link コマンドに渡す追加のコマンド ライン オプションを指定します。AndroidAapt2LinkExtraArgs – Specifies additional command-line options to pass to the aapt2 link command when processing Android assets and resources.

    Xamarin.Android 9.1 で追加されました。Added in Xamarin.Android 9.1.

  • AndroidExplicitCrunch – ローカル ドローアブルの数が非常に多いアプリをビルドする場合、初期のビルド (または再ビルド) の完了に数分かかる場合があります。AndroidExplicitCrunch – If you are building an app with a very large number of local drawables, an initial build (or rebuild) can take minutes to complete. ビルド プロセスを高速化するため、このプロパティを含めて、True に設定してみます。To speed up the build process, try including this property and setting it to True. このプロパティを設定すると、ビルド プロセスで .png ファイルが事前クランチされます。When this property is set, the build process pre-crunches the .png files.

    メモ:このオプションは $(AndroidUseAapt2) オプションと互換性がありません。Note: This option is not compatible with the $(AndroidUseAapt2) option. $(AndroidUseAapt2) が有効になっている場合は、この機能は無効になります。If $(AndroidUseAapt2) is enabled, this functionality will be disabled. この機能を引き続き使用したい場合は、$(AndroidUseAapt2)False を設定してください。If you wish to continue to use this feature please set $(AndroidUseAapt2) to False.

    試験的です。Experimental. Xamarin.Android 7.0 で追加されました。Added in Xamarin.Android 7.0.

  • AndroidResgenExtraArgs – Android アセットとリソースを処理するときに、aapt コマンドに渡す追加のコマンド ライン オプションを指定します。AndroidResgenExtraArgs – Specifies additional command-line options to pass to the aapt command when processing Android assets and resources.

  • AndroidResgenFile – 生成するリソース ファイルの名前を指定します。AndroidResgenFile – Specifies the name of the Resource file to generate. 既定のテンプレートでは、これは Resource.designer.cs に設定されます。The default template sets this to Resource.designer.cs.

  • AndroidUseAapt2 – 開発者がパッケージ化するために aapt2 ツールの使用を制御することを許可するブール型プロパティ。AndroidUseAapt2 – A bool property which allows the developer to control the use of the aapt2 tool for packaging. 既定では、これは False に設定され、aapt が使用されます。By default this will be set to false and we will use aapt. 開発者が新しい aapt2 機能を使用したい場合は、If the developer wishes to use the new aapt2 functionality they can set

    <AndroidUseAapt2>True</AndroidUseAapt2>
    

    自分の .csproj で設定できます。in their .csproj. または、コマンド ラインでプロパティを指定します。Alternatively provide the property on the command line via

    /p:AndroidUseAapt2=True
    

    Xamarin.Android 8.3 で追加されました。Added in Xamarin.Android 8.3.

  • MonoAndroidResourcePrefixAndroidResource のビルド アクションで、ファイル名の先頭から削除されるパス プレフィックスを指定します。MonoAndroidResourcePrefix – Specifies a path prefix that is removed from the start of filenames with a Build action of AndroidResource. これにより、リソースがある場所を変更することができます。This is to allow changing where resources are located.

    既定値は Resources です。The default value is Resources. Java プロジェクトの構造には、これを res に変更します。Change this to res for the Java project structure.

署名プロパティSigning Properties

署名プロパティは、アプリケーション パッケージを Android デバイスにインストールできるように、パッケージに署名する方法を制御します。Signing properties control how the Application package is signed so that it may be installed onto an Android device. ビルド イテレーションを高速化するため、Xamarin.Android タスクではビルド プロセス中のパッケージへの署名は行われません。署名を行うと非常に遅くなるからです。To allow quicker build iteration, the Xamarin.Android tasks do not sign packages during the build process, because signing is quite slow. 代わりに、インストール前またはエクスポート中に、IDE または Install ビルド ターゲットによって署名されます (必要な場合)。Instead, they are signed (if necessary) before installation or during export, by the IDE or the Install build target. SignAndroidPackage ターゲットを呼び出すと、出力ディレクトリに -Signed.apk のサフィックスを持つパッケージが生成されます。Invoking the SignAndroidPackage target will produce a package with the -Signed.apk suffix in the output directory.

既定では、必要に応じて署名ターゲットによって新しいデバッグ署名キーが生成されます。By default, the signing target generates a new debug-signing key if necessary. たとえばビルド サーバーなどで特定のキーを使用する場合は、次の MSBuild プロパティが使用できます。If you wish to use a specific key, for example on a build server, the following MSBuild properties can be used:

  • AndroidDebugKeyAlgorithmdebug.keystore 用に使用する既定のアルゴリズムを指定します。AndroidDebugKeyAlgorithm – Specifies the default algorithm to use for the debug.keystore. 既定値は RSA です。It defaults to RSA.

  • AndroidDebugKeyValiditydebug.keystore 用に使用する既定の有効性を指定します。AndroidDebugKeyValidity – Specifies the default validity to use for the debug.keystore. 既定値は 1095030 * 365、または 30 years です。It defaults to 10950 or 30 * 365 or 30 years.

  • AndroidDebugStoreTypedebug.keystore に使用するキー ストア ファイル形式を指定します。AndroidDebugStoreType – Specifies the key store file format to use for the debug.keystore. 既定値は pkcs12 です。It defaults to pkcs12.

    Xamarin.Android 10.2 で追加されました。Added in Xamarin.Android 10.2.

  • AndroidKeyStore – カスタム署名情報を使用するかどうかを示すブール値。AndroidKeyStore – A boolean value which indicates whether custom signing information should be used. 既定値は False で、既定のデバッグ署名キーがパッケージの署名に使用されることを意味します。The default value is False, meaning that the default debug-signing key will be used to sign packages.

  • AndroidSigningKeyAlias – キーストア内のキーに別名を指定します。AndroidSigningKeyAlias – Specifies the alias for the key in the keystore. これは、キーストアを作成するときに使用される keytool -alias 値です。This is the keytool -alias value used when creating the keystore.

  • AndroidSigningKeyPass –キーストア ファイル内にあるキーのパスワードを指定します。AndroidSigningKeyPass – Specifies the password of the key within the keystore file. これは、keytoolEnter key password for $(AndroidSigningKeyAlias) ($(AndroidSigningKeyAlias) のキーのパスワードを入力) を求めたときに入力される値です。This is the value entered when keytool asks Enter key password for $(AndroidSigningKeyAlias).

    Xamarin.Android 10.0 以前では、このプロパティはプレーンテキストのパスワードのみをサポートしています。In Xamarin.Android 10.0 and earlier, this property only supports plain text passwords.

    Xamarin.Android 10.1 以降では、このプロパティは、パスワードを格納する環境変数またはファイルを指定するために使用できる env: および file: プレフィックスもサポートします。In Xamarin.Android 10.1 and later, this property also supports env: and file: prefixes that can be used to specify an environment variable or file that contains the password. これらのオプションを使用すると、ビルド ログにパスワードが表示されないようにすることができます。These options provide a way to prevent the password from appearing in build logs.

    たとえば、AndroidSigningPassword という名前の環境変数を使用するには、次のようにします。For example, to use an environment variable named AndroidSigningPassword:

    <PropertyGroup>
        <AndroidSigningKeyPass>env:AndroidSigningPassword</AndroidSigningKeyPass>
    </PropertyGroup>
    

    C:\Users\user1\AndroidSigningPassword.txt にあるファイルを使用するには、次のようにします。To use a file located at C:\Users\user1\AndroidSigningPassword.txt:

    <PropertyGroup>
        <AndroidSigningKeyPass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningKeyPass>
    </PropertyGroup>
    

    注意

    env: プレフィックスは、$(AndroidPackageFormat)aab に設定されている場合はサポートされません。The env: prefix is not supported when $(AndroidPackageFormat) is set to aab.

  • AndroidSigningKeyStorekeytool で作成されたキーストア ファイルのファイル名を指定します。AndroidSigningKeyStore – Specifies the filename of the keystore file created by keytool. これは、keytool -keystore オプションで指定された値に対応します。This corresponds to the value provided to the keytool -keystore option.

  • AndroidSigningStorePass$(AndroidSigningKeyStore) へのパスワードを指定します。AndroidSigningStorePass – Specifies the password to $(AndroidSigningKeyStore). これは、キーストア ファイルを作成していて、Enter keystore password: (キーストア パスワードを入力) で求められたときに、keytool に指定する値です。This is the value provided to keytool when creating the keystore file and asked Enter keystore password:.

    Xamarin.Android 10.0 以前では、このプロパティはプレーンテキストのパスワードのみをサポートしています。In Xamarin.Android 10.0 and earlier, this property only supports plain text passwords.

    Xamarin.Android 10.1 以降では、このプロパティは、パスワードを格納する環境変数またはファイルを指定するために使用できる env: および file: プレフィックスもサポートします。In Xamarin.Android 10.1 and later, this property also supports env: and file: prefixes that can be used to specify an environment variable or file that contains the password. これらのオプションを使用すると、ビルド ログにパスワードが表示されないようにすることができます。These options provide a way to prevent the password from appearing in build logs.

    たとえば、AndroidSigningPassword という名前の環境変数を使用するには、次のようにします。For example, to use an environment variable named AndroidSigningPassword:

    <PropertyGroup>
        <AndroidSigningStorePass>env:AndroidSigningPassword</AndroidSigningStorePass>
    </PropertyGroup>
    

    C:\Users\user1\AndroidSigningPassword.txt にあるファイルを使用するには、次のようにします。To use a file located at C:\Users\user1\AndroidSigningPassword.txt:

    <PropertyGroup>
        <AndroidSigningStorePass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningStorePass>
    </PropertyGroup>
    

    注意

    env: プレフィックスは、$(AndroidPackageFormat)aab に設定されている場合はサポートされません。The env: prefix is not supported when $(AndroidPackageFormat) is set to aab.

  • JarsignerTimestampAuthorityCertificateAlias – このプロパティを使用すると、タイムスタンプ機関のキーストアに別名を指定できます。JarsignerTimestampAuthorityCertificateAlias – This property allows you to specify an alias in the keystore for a timestamp authority. 詳細については、Java の署名のタイムスタンプのサポートに関するドキュメントを参照してください。See the Java Signature Timestamp Support documentation for more details.

    <PropertyGroup>
        <JarsignerTimestampAuthorityCertificateAlias>Alias</JarsignerTimestampAuthorityCertificateAlias>
    </PropertyGroup>
    
  • JarsignerTimestampAuthorityUrl – このプロパティでは、タイムスタンプ機関サービスへの URL を指定できます。JarsignerTimestampAuthorityUrl – This property allows you to specify a URL to a timestamp authority service. これを使用して、.apk 署名に確実にタイムスタンプを含めるようにすることができます。This can be used to make sure your .apk signature includes a timestamp. 詳細については、Java の署名のタイムスタンプのサポートに関するドキュメントを参照してください。See the Java Signature Timestamp Support documentation for more details.

    <PropertyGroup>
        <JarsignerTimestampAuthorityUrl>http://example.tsa.url</JarsignerTimestampAuthorityUrl>
    </PropertyGroup>
    

たとえば、次の keytool 呼び出しを考えてみます。For example, consider the following keytool invocation:

$ keytool -genkey -v -keystore filename.keystore -alias keystore.alias -keyalg RSA -keysize 2048 -validity 10000
Enter keystore password: keystore.filename password
Re-enter new password: keystore.filename password
...
Is CN=... correct?
  [no]:  yes

Generating 2,048 bit RSA key pair and self-signed certificate (SHA1withRSA) with a validity of 10,000 days
        for: ...
Enter key password for keystore.alias
        (RETURN if same as keystore password): keystore.alias password
[Storing filename.keystore]

上記で生成されたキーストアを使用するには、プロパティ グループを使用します。To use the keystore generated above, use the property group:

<PropertyGroup>
    <AndroidKeyStore>True</AndroidKeyStore>
    <AndroidSigningKeyStore>filename.keystore</AndroidSigningKeyStore>
    <AndroidSigningStorePass>keystore.filename password</AndroidSigningStorePass>
    <AndroidSigningKeyAlias>keystore.alias</AndroidSigningKeyAlias>
    <AndroidSigningKeyPass>keystore.alias password</AndroidSigningKeyPass>
</PropertyGroup>

ビルド アクションBuild Actions

ビルド アクションは、プロジェクト内のファイルに適用され、ファイルの処理方法を制御します。Build actions are applied to files within the project and control how the file is processed.

AndroidAarLibraryAndroidAarLibrary

.aar ファイルを直接参照するには、AndroidAarLibrary のビルド アクションを使用する必要があります。The Build action of AndroidAarLibrary should be used to directly reference .aar files. このビルド アクションは、Xamarin コンポーネントで最もよく使用されます。This build action will be most commonly used by Xamarin Components. つまり、Google Play やその他のサービスを動作させるのに必要な .aar ファイルへの参照を含めるためです。Namely to include references to .aar files which are required to get Google Play and other services working.

このビルド アクションを使用するファイルは、ライブラリ プロジェクトで見つかる埋め込みリソースと同様に扱われます。Files with this Build action will be treated in a similar fashion too the embedded resources found in Library projects. .aar は、中間ディレクトリに抽出されます。The .aar will be extracted into the intermediate directory. 次に、すべてのアセット、リソース、.jar ファイルが、適切な項目グループに含まれます。Then any assets, resource and .jar files will be included in the appropriate item groups.

AndroidBoundLayoutAndroidBoundLayout

AndroidGenerateLayoutBindings プロパティが false に設定された場合に、レイアウト ファイルにコードビハインドが生成されることを示します。Indicates that the layout file is to have code-behind generated for it in case when the AndroidGenerateLayoutBindings property is set to false. その他すべての面において、これは上記で説明された AndroidResource と同じです。In all other aspects it is identical to AndroidResource described above. このアクションは、次のレイアウト ファイルでのみ使用できます。This action can be used only with layout files:

<AndroidBoundLayout Include="Resources\layout\Main.axml" />

AndroidEnvironmentAndroidEnvironment

AndroidEnvironment のビルド アクションを持つファイルは、プロセスの起動時に環境変数とシステム プロパティを初期化するために使用されます。Files with a Build action of AndroidEnvironment are used to initialize environment variables and system properties during process startup. AndroidEnvironment ビルド アクションは、複数のファイルに適用でき、任意の順序で評価されます (そのため、複数のファイルで同じ環境変数またはシステム プロパティを指定しないでください)。The AndroidEnvironment Build action may be applied to multiple files, and they will be evaluated in no particular order (so don't specify the same environment variable or system property in multiple files).

AndroidFragmentTypeAndroidFragmentType

レイアウト バインディング コードを生成するときに、すべての <fragment> レイアウト要素に使用される既定の完全修飾型を指定します。Specifies the default fully qualified type to be used for all <fragment> layout elements when generating the layout bindings code. プロパティの既定値は、標準の Android Android.App.Fragment 型になります。The property defaults to the standard Android Android.App.Fragment type.

AndroidJavaLibraryAndroidJavaLibrary

AndroidJavaLibrary のビルド アクションを持つファイルは、最終的な Android パッケージに含まれる Java アーカイブ (.jar ファイル) です。Files with a Build action of AndroidJavaLibrary are Java Archives ( .jar files) which will be included in the final Android package.

AndroidJavaSourceAndroidJavaSource

AndroidJavaSource のビルド アクションを持つファイルは、最終的な Android パッケージに含まれる Java ソース コードです。Files with a Build action of AndroidJavaSource are Java source code which will be included in the final Android package.

AndroidLintConfigAndroidLintConfig

ビルド アクション 'AndroidLintConfig' は、AndroidLintEnabled ビルド プロパティと組み合わせて使用する必要があります。The Build action 'AndroidLintConfig' should be used in conjunction with the AndroidLintEnabled build property. このビルド アクションを含むファイルはマージされ、Android の lint ツールに渡されます。Files with this build action will be merged together and passed to the android lint tooling. これは、どのテストを有効および無効にするかに関する情報を含んだ XML ファイルになります。They should be XML files which contain information on which tests to enable and disable.

詳細については、Lint に関するドキュメントを参照してください。See the lint documentation for more details.

AndroidNativeLibraryAndroidNativeLibrary

ネイティブ ライブラリは、そのビルド アクションを AndroidNativeLibrary に設定することで、ビルドに追加されます。Native libraries are added to the build by setting their Build action to AndroidNativeLibrary.

Android では、複数のアプリケーション バイナリ インターフェイス (ABI) をサポートしているため、ビルド システムではネイティブ ライブラリがどの ABI に対してビルドされているかを知る必要があります。Note that since Android supports multiple Application Binary Interfaces (ABIs), the build system must know which ABI the native library is built for. これを行うには 2 つの方法があります。There are two ways this can be done:

  1. パス "スニッフィング"。Path "sniffing".
  2. Abi 項目属性の使用。Using the Abi item attribute.

パス スニッフィングを使用すると、ネイティブ ライブラリの親ディレクトリ名が、ライブラリがターゲットとする ABI を指定するために使用されます。With path sniffing, the parent directory name of the native library is used to specify the ABI that the library targets. したがって、ビルドに lib/armeabi-v7a/libfoo.so を追加すると、ABI は armeabi-v7a として "スニッフィング" されます。Thus, if you add lib/armeabi-v7a/libfoo.so to the build, then the ABI will be "sniffed" as armeabi-v7a.

項目属性名Item Attribute Name

Abi – ネイティブ ライブラリの ABI を指定します。Abi – Specifies the ABI of the native library.

<ItemGroup>
  <AndroidNativeLibrary Include="path/to/libfoo.so">
    <Abi>armeabi-v7a</Abi>
  </AndroidNativeLibrary>
</ItemGroup>

AndroidResourceAndroidResource

AndroidResource ビルド アクションを持つすべてのファイルは、ビルド プロセス中に Android リソースにコンパイルされ、$(AndroidResgenFile) を介してアクセスできます。All files with an AndroidResource build action are compiled into Android resources during the build process and made accessible via $(AndroidResgenFile).

<ItemGroup>
  <AndroidResource Include="Resources\values\strings.xml" />
</ItemGroup>

上級ユーザーであれば、同じ効果的なパスを使用して、別の構成で使用されている別のリソースを使用したいと考えるかもしれません。More advanced users might perhaps wish to have different resources used in different configurations but with the same effective path. これは、複数のリソース ディレクトリとファイルにこれらの異なるディレクトリ内で同じ相対パスを持たせ、MSBuild 条件を使用して、異なる構成の異なるファイルを条件付きで含めることで実現できます。This can be achieved by having multiple resource directories and having files with the same relative paths within these different directories, and using MSBuild conditions to conditionally include different files in different configurations. 次に例を示します。For example:

<ItemGroup Condition="'$(Configuration)'!='Debug'">
  <AndroidResource Include="Resources\values\strings.xml" />
</ItemGroup>
<ItemGroup  Condition="'$(Configuration)'=='Debug'">
  <AndroidResource Include="Resources-Debug\values\strings.xml"/>
</ItemGroup>
<PropertyGroup>
  <MonoAndroidResourcePrefix>Resources;Resources-Debug<MonoAndroidResourcePrefix>
</PropertyGroup>

LogicalName – リソース パスを明示的に指定します。LogicalName – Specifies the resource path explicitly. ファイルの“別名定義”を許可して、複数の個別のリソース名として使用できるようにします。Allows “aliasing” files so that they will be available as multiple distinct resource names.

<ItemGroup Condition="'$(Configuration)'!='Debug'">
  <AndroidResource Include="Resources/values/strings.xml"/>
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Debug'">
  <AndroidResource Include="Resources-Debug/values/strings.xml">
    <LogicalName>values/strings.xml</LogicalName>
  </AndroidResource>
</ItemGroup>

AndroidResourceAnalysisConfigAndroidResourceAnalysisConfig

ビルド アクション AndroidResourceAnalysisConfig は、Xamarin Android Designer レイアウト診断ツールの重大度レベルの構成ファイルとしてファイルをマークします。The Build action AndroidResourceAnalysisConfig marks a file as a severity level configuration file for the Xamarin Android Designer layout diagnostics tool. これは現在、レイアウト エディターでのみ使用され、ビルド メッセージでは使用されません。This is currently only used in the layout editor and not for build messages.

詳細については、Android リソース分析のドキュメントを参照してください。See the Android Resource Analysis documentation for more details.

Xamarin.Android 10.2 で追加されました。Added in Xamarin.Android 10.2.

ContentContent

通常の Content ビルド アクションはサポートされていません (コストのかかる可能性がある最初の実行手順を行わずにサポートする方法が見つかっていないからです)。The normal Content Build action is not supported (as we haven't figured out how to support it without a possibly costly first-run step).

Xamarin.Android 5.1 以降では、@(Content) ビルド アクションを使用しようとすると、XA0101 警告が発生します。Starting in Xamarin.Android 5.1, attempting to use the @(Content) Build action will result in a XA0101 warning.

LinkDescriptionLinkDescription

LinkDescription ビルド アクションを持つファイルは、リンカーの動作を制御するために使用されます。Files with a LinkDescription build action are used to control linker behavior.

ProguardConfigurationProguardConfiguration

ProguardConfiguration ビルド アクションを持つファイルは、proguard 動作を制御するために使用されます。Files with a ProguardConfiguration build action contain options which are used to control proguard behavior. このビルド アクションの詳細については、「ProGuard」を参照してください。For more information about this build action, see ProGuard.

$(EnableProguard) MSBuild プロパティが True でない限り、これらのファイルは無視されます。These files are ignored unless the $(EnableProguard) MSBuild property is True.

ターゲットの定義Target Definitions

ビルド プロセスの Xamarin.Android に固有の部分は、$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets で定義されますが、アセンブリをビルドするためには、Microsoft.CSharp.targets などの通常の言語固有ターゲットも必要です。The Xamarin.Android-specific parts of the build process are defined in $(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets, but normal language-specific targets such as Microsoft.CSharp.targets are also required to build the assembly.

次のビルド プロパティは、ターゲットの言語をインポートする前に設定する必要があります。The following build properties must be set before importing any language targets:

<PropertyGroup>
  <TargetFrameworkIdentifier>MonoDroid</TargetFrameworkIdentifier>
  <MonoDroidVersion>v1.0</MonoDroidVersion>
  <TargetFrameworkVersion>v2.2</TargetFrameworkVersion>
</PropertyGroup>

Xamarin.Android.CSharp.targets をインポートすることで、C# 用にこれらすべてのターゲットとプロパティを含めることができます。All of these targets and properties can be included for C# by importing Xamarin.Android.CSharp.targets:

<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />

このファイルは、他の言語に簡単に適合させることができます。This file can easily be adapted for other languages.