Položky sestavení

Položky sestavení určují, jak se sestaví projekt aplikace nebo knihovny Xamarin.Android.

AndroidAsset

Podporuje prostředky Androidu, soubory, které by byly zahrnuty do assets složky v projektu Java Android.

AndroidAarLibrary

Akce AndroidAarLibrary sestavení by se měla použít k přímému odkazování .aar na soubory. Tato akce sestavení bude nejčastěji používána komponentami Xamarin. Konkrétně zahrnout odkazy na .aar soubory, které jsou nutné k získání Google Play a dalších služeb pracovat.

Soubory s touto akcí sestavení budou zpracovány podobným způsobem jako vložené prostředky nalezené v projektech knihovny. Extrahuje .aar se do zprostředkujícího adresáře. Všechny prostředky, prostředky a .jar soubory se pak zahrnou do příslušných skupin položek.

AndroidAotProfile

Používá se k poskytování profilu AOT pro použití s AOT s asistencí profilu.

Dá se také použít ze sady Visual Studio nastavením AndroidAotProfile akce sestavení na soubor obsahující profil AOT.

AndroidAppBundleMetaDataFile

Určuje soubor, který bude součástí sady aplikací pro Android jako metadata. Formát hodnoty příznaku je <bundle-path>:<physical-file> místo, kde bundle-path označuje umístění souboru v adresáři metadat sady aplikací a physical-file je existující soubor obsahující nezpracovaná data, která se mají uložit.

<ItemGroup>
  <AndroidAppBundleMetaDataFile
    Include="com.android.tools.build.obfuscation/proguard.map:$(OutputPath)mapping.txt"
  />
</ItemGroup>

Další podrobnosti najdete v dokumentaci k nástroji bundletool .

Přidáno v Xamarin.Android 12.3.

AndroidBoundLayout

Označuje, že soubor rozložení má mít kód vygenerovaný pro něj v případě, že AndroidGenerateLayoutBindings je vlastnost nastavena na falsehodnotu . Ve všech ostatních aspektech je stejný jako AndroidResource výše popsaný. Tuto akci lze použít pouze se soubory rozložení:

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

AndroidEnvironment

Soubory s akcí AndroidEnvironment sestavení se používají k inicializaci proměnných prostředí a systémových vlastností během spouštění procesu. AndroidEnvironment Akce Sestavení se může použít u více souborů a vyhodnotí se v žádném konkrétním pořadí (proto nezadávejte stejnou proměnnou prostředí nebo systémovou vlastnost ve více souborech).

AndroidJavaLibrary

Soubory s akcí AndroidJavaLibrary sestavení jsou archivy Java ( .jar soubory), které budou zahrnuty do konečného balíčku Androidu.

AndroidJavaSource

Soubory s akcí sestavení jsou AndroidJavaSource zdrojový kód Java, který bude součástí konečného balíčku androidu.

Počínaje rozhraním .NET 7 mají všechny **\*.java soubory v adresáři projektu automaticky akci AndroidJavaSourceSestavení a budou vázány před sestavením sestavení. Umožňuje kódu jazyka C# snadno používat typy a členy, které jsou přítomné v souborech **\*.java .

Pokud chcete toto chování zakázat, nastavte %(AndroidJavaSource.Bind) na hodnotu False.

AndroidLibrary

AndroidLibrary je nová akce sestavení, která zjednodušuje způsob zahrnutí .jar souborů do .aar projektů.

Libovolný projekt může zadat:

<ItemGroup>
  <AndroidLibrary Include="foo.jar" />
  <AndroidLibrary Include="bar.aar" />
</ItemGroup>

Výsledek výše uvedeného fragmentu kódu má jiný účinek pro každý typ projektu Xamarin.Android:

Toto zjednodušení znamená, že androidLibrary můžete používat všude.

Tato akce sestavení byla přidána v Xamarin.Android 11.2.

AndroidLintConfig

Akce sestavení AndroidLintConfig by měla být použita ve spojení s akcí $(AndroidLintEnabled) Vlastnost. Soubory s touto akcí sestavení se sloučí a předají do nástrojů androidu lint . Měly by se jednat o soubory XML obsahující informace o testech, které se mají povolit a zakázat.

Další podrobnosti najdete v dokumentaci lint.

AndroidManifestOverlay

Akci AndroidManifestOverlay sestavení lze použít k poskytnutí AndroidManifest.xml souborů nástroji Manifest Merger . Soubory s touto akcí sestavení budou předány manifestu Fúze spolu s hlavním AndroidManifest.xml souborem a soubory manifestu z odkazů. Ty se pak sloučí do konečného manifestu.

Pomocí této akce sestavení můžete aplikaci poskytnout změny a nastavení v závislosti na konfiguraci sestavení. Pokud například potřebujete mít konkrétní oprávnění pouze při ladění, můžete toto oprávnění vložit pomocí překrytí při ladění. Například s následujícím obsahem překryvného souboru:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
  <uses-permission android:name="android.permission.CAMERA" />
</manifest>

K přidání překrytí manifestu pro sestavení ladění můžete použít následující:

<ItemGroup>
  <AndroidManifestOverlay Include="DebugPermissions.xml" Condition=" '$(Configuration)' == 'Debug' " />
</ItemGroup>

Tato akce sestavení byla zavedena v Xamarin.Android 11.2.

AndroidInstallModules

Určuje moduly, které se nainstalují příkazem bundletool při instalaci sad aplikací.

Tato akce sestavení byla zavedena v Xamarin.Android 11.3.

AndroidNativeLibrary

Nativní knihovny se přidají do sestavení nastavením akce sestavení na AndroidNativeLibrary.

Všimněte si, že vzhledem k tomu, že Android podporuje více binárních rozhraní aplikací (ABI), musí systém sestavení znát ABI nativní knihovnu, pro kterou je sestavena. Existují dva způsoby, jak lze zadat ABI:

  1. Cesta "šifrování".
  2. %(Abi) Použití metadat položky

Při zašifrování cesty se k určení ABI, který cílí na knihovnu, používá nadřazený název adresáře nativní knihovny. Pokud tedy přidáte lib/armeabi-v7a/libfoo.so do sestavení, ABI se "zašifruje" jako armeabi-v7a.

Název atributu položky

Abi – Určuje ABI nativní knihovny.

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

AndroidResource

Všechny soubory s akcí sestavení AndroidResource jsou zkompilovány do prostředků Androidu během procesu sestavení a zpřístupněny prostřednictvím $(AndroidResgenFile).

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

Pokročilejší uživatelé možná budou chtít mít různé prostředky používané v různých konfiguracích, ale se stejnou efektivní cestou. Toho lze dosáhnout pomocí více adresářů prostředků a souborů se stejnými relativními cestami v rámci těchto různých adresářů a podmíněným zahrnutím různých souborů do různých konfigurací pomocí podmínek nástroje MSBuild. Příklad:

<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 – Určuje cestu k prostředku explicitně. Povolí "aliasing" souborů, aby byly k dispozici jako více různých názvů prostředků.

<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>

AndroidResourceAnalysisConfig

Akce AndroidResourceAnalysisConfig Sestavení označuje soubor jako konfigurační soubor na úrovni závažnosti pro nástroj pro diagnostiku rozložení Xamarin Android Designeru. Aktuálně se používá jenom v editoru rozložení a ne pro zprávy sestavení.

Další podrobnosti najdete v dokumentaci k analýze prostředků Androidu.

Přidáno v Xamarin.Android 10.2.

Content

Normální Content akce sestavení není podporována (protože jsme nezogurovali, jak ji podporovat bez nákladného prvního kroku).

Když začnete v Xamarin.Android 5.1, při pokusu @(Content) o použití akce sestavení se zobrazí XA0101 upozornění.

EmbeddedJar

V projektu vazby Xamarin.Android akce sestavení EmbeddedJar vytvoří vazbu knihovny Java/Kotlin a vloží .jar soubor do knihovny. Když projekt aplikace Xamarin.Android využívá knihovnu, bude mít přístup k rozhraním Java/Kotlin API z jazyka C# a do konečné aplikace pro Android bude obsahovat kód Java/Kotlin.

Vzhledem k tomu, že Xamarin.Android 11.2, můžete jako alternativu použít akci sestavení AndroidLibrary , například:

<Project>
  <ItemGroup>
    <AndroidLibrary Include="Library.jar" />
  </ItemGroup>
</Project>

EmbeddedNativeLibrary

V knihovně tříd Xamarin.Android nebo v projektu vazby Jazyka Java vytvoří akce EmbeddedNativeLibrary nativní knihovnu, například lib/armeabi-v7a/libfoo.so do knihovny. Když aplikace Xamarin.Android knihovnu spotřebuje, libfoo.so soubor se zahrne do konečné aplikace pro Android.

Vzhledem k tomu, že Xamarin.Android 11.2, můžete jako alternativu použít akci sestavení AndroidNativeLibrary .

EmbeddedReferenceJar

V projektu vazby Xamarin.Android vloží akce .jar sestavení EmbeddedReferenceJar soubor do knihovny, ale nevytvoří vazbu jazyka C#, jak dělá EmbeddedJar. Když projekt aplikace Xamarin.Android využívá knihovnu, bude obsahovat kód Java/Kotlin do konečné aplikace pro Android.

Vzhledem k tomu, že Xamarin.Android 11.2, můžete jako alternativu použít akci sestavení AndroidLibrary, například<AndroidLibrary Include="..." Bind="false" />:

<Project>
  <ItemGroup>
    <!-- A .jar file to bind & embed -->
    <AndroidLibrary Include="Library.jar" />
    <!-- A .jar file to only embed -->
    <AndroidLibrary Include="Dependency.jar" Bind="false" />
  </ItemGroup>
</Project>

JavaDocJar

V projektu vazby Xamarin.Android se akce sestavení JavaDocJar používá u .jar souborů, které obsahují javadoc HTML. Kód HTML Javadoc se analyzuje za účelem extrakce názvů parametrů.

Podporují se pouze určité dialekty HTML Javadoc, mezi které patří:

  • Výstup JDK 1.7 javadoc
  • Výstup JDK 1.8 javadoc
  • Droiddoc výstup.

Tato akce sestavení je v Xamarin.Androidu 11.3 zastaralá a nebude podporována v .NET 6. Akce @(JavaSourceJar) sestavení je upřednostňovaná.

JavaSourceJar

V projektu vazby Xamarin.Android se akce sestavení JavaSourceJar používá u .jar souborů, které obsahují zdrojový kód Java, které obsahují komentáře dokumentace Javadoc.

Před Xamarin.Android 11.3 se Javadoc převede na HTML prostřednictvím javadoc nástroje během doby sestavení a později převeďte do dokumentace XML.

Od Xamarin.Android 11.3 se Javadoc místo toho převede na komentáře dokumentace jazyka C# XML v rámci generovaného zdrojového kódu vazby.

$(AndroidJavadocVerbosity) určuje, jak je importovaný Javadoc "podrobný" nebo "dokončený".

Počínaje Xamarin.Android 11.3 se podporují následující metadata nástroje MSBuild:

  • %(CopyrightFile): Cesta k souboru, který obsahuje informace o autorských právech pro obsah Javadoc, který se připojí ke všem importovaným dokumentacím.

  • %(UrlPrefix): Předpona adresy URL pro podporu propojení s online dokumentací v rámci importované dokumentace.

  • %(UrlStyle): Styl adres URL, které se mají generovat při propojení s online dokumentací. V současné době je podporován pouze jeden styl: developer.android.com/reference@2020-Nov.

Počínaje Xamarin.Android 12.3 se podporují následující metadata nástroje MSBuild:

  • %(DocRootUrl): Předpona adresy URL, která se použije místo všech instancí {@docroot} v importované dokumentaci.

LibraryProjectZip

V projektu vazby Xamarin.Android akce sestavení LibraryProjectZip vytvoří vazbu knihovny Java/Kotlin a vloží .zip soubor .aar do knihovny. Když projekt aplikace Xamarin.Android využívá knihovnu, bude mít přístup k rozhraním Java/Kotlin API z jazyka C# a do konečné aplikace pro Android bude obsahovat kód Java/Kotlin.

Poznámka:

Do projektu vazby Xamarin.Android lze zahrnout pouze jeden soubor LibraryProjectZip . Toto omezení se odebere v .NET 6.

Popis odkazu

Soubory s akcí sestavení LinkDescription slouží k řízení chování linkeru.

ProguardConfiguration

Soubory s akcí sestavení ProguardConfiguration obsahují možnosti, které slouží k řízení proguard chování. Další informace o této akci sestavení najdete v tématu ProGuard.

Tyto soubory se ignorují, pokud $(EnableProguard) Vlastnost MSBuild je True.