Share via


Yapı Öğeleri

Derleme öğeleri, Xamarin.Android uygulamasının veya kitaplık projesinin nasıl derlenmesini denetler.

AndroidAsset

Bir Java Android projesindeki assets klasöre dahil edilecek dosyalar olan Android Varlıklarını destekler.

AndroidAarLibrary

Derleme eylemi AndroidAarLibrary doğrudan dosyalara başvurmak .aar için kullanılmalıdır. Bu derleme eylemi en yaygın olarak Xamarin Bileşenleri tarafından kullanılır. Diğer bir deyişle, Google Play ve diğer hizmetlerin çalışmasını sağlamak için gereken dosyalara başvurular .aar eklemektir.

Bu Derleme eylemine sahip dosyalar, Kitaplık projelerinde bulunan ekli kaynaklara benzer şekilde ele alınacaktır. .aar ara dizine ayıklanır. Ardından tüm varlıklar, kaynaklar ve .jar dosyalar uygun öğe gruplarına dahil edilecek.

AndroidAotProfile

Profil destekli AOT ile kullanmak üzere bir AOT profili sağlamak için kullanılır.

Derleme eylemini AOT profili içeren bir dosyaya AndroidAotProfile ayarlayarak Visual Studio'dan da kullanılabilir.

AndroidAppBundleMetaDataFile

Android Uygulama Paketi'ne meta veri olarak eklenecek bir dosya belirtir. Bayrak değerinin biçimi, <bundle-path>:<physical-file> Uygulama Paketi'nin meta veri dizini içindeki dosya konumunu gösterdiği yerdir bundle-path ve physical-file depolanacak ham verileri içeren mevcut bir dosyadır.

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

Daha fazla ayrıntı için bundletool belgelerine bakın.

Xamarin.Android 12.3'te eklendi.

AndroidBoundLayout

Özellik olarak ayarlandığında, düzen dosyasının bunun için arka plan kod oluşturulmasını AndroidGenerateLayoutBindingsfalsesağlar. Diğer tüm açılardan yukarıda açıklananlarla AndroidResource aynıdır. Bu eylem yalnızca düzen dosyalarıyla kullanılabilir:

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

AndroidEnvironment

Derleme eylemine AndroidEnvironment sahip dosyalar, işlem başlatma sırasında ortam değişkenlerini ve sistem özelliklerini başlatmak için kullanılır. AndroidEnvironment Derleme eylemi birden çok dosyaya uygulanabilir ve bunlar belirli bir sırada değerlendirilmez (bu nedenle birden çok dosyada aynı ortam değişkenini veya sistem özelliğini belirtmeyin).

AndroidJavaLibrary

Derleme eylemi olan AndroidJavaLibrary dosyalar, son Android paketine dahil edilecek Java Arşivleri 'dir ( .jar dosyalar).

AndroidJavaSource

Derleme eylemine AndroidJavaSource sahip dosyalar, son Android paketine dahil edilecek Java kaynak kodulardır.

.NET 7'den başlayarak, proje dizinindeki tüm **\*.java dosyalar otomatik olarak derleme eylemine AndroidJavaSourcesahip olur ve Derleme derlemesi öncesinde bağlanır. C# kodunun dosyaların içinde bulunan türleri ve üyeleri kolayca kullanmasına **\*.java olanak tanır.

Bu davranışı devre dışı bırakmak için False olarak ayarlayın %(AndroidJavaSource.Bind) .

AndroidLibrary

AndroidLibrary , ve dosyalarının projelere nasıl .jar dahil .aar olduğunu basitleştirmeye yönelik yeni bir derleme eylemidir.

Herhangi bir proje şunları belirtebilir:

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

Yukarıdaki kod parçacığının sonucu her Xamarin.Android proje türü için farklı bir etkiye sahiptir:

Bu basitleştirme, AndroidLibrary'i her yerde kullanabileceğiniz anlamına gelir.

Bu derleme eylemi Xamarin.Android 11.2'ye eklendi.

AndroidLintConfig

'AndroidLintConfig' Derleme eylemi, $(AndroidLintEnabled) Özellik. Bu derleme eylemine sahip dosyalar birleştirilir ve android lint araçlarına geçirilir. Etkinleştirilecek ve devre dışı bırakılacak testler hakkında bilgi içeren XML dosyaları olmalıdır.

Diğer ayrıntılar için lint belgelerine bakın.

AndroidManifestOverlay

Derleme eylemi, AndroidManifestOverlay Bildirim Birleştirme aracına dosya sağlamak AndroidManifest.xml için kullanılabilir. Bu derleme eylemine sahip dosyalar, başvurulardan ana AndroidManifest.xml dosya ve bildirim dosyalarıyla birlikte Bildirim Birleştirme'ye geçirilir. Bunlar daha sonra son bildirimde birleştirilir.

Derleme yapılandırmanıza bağlı olarak uygulamanızda değişiklikler ve ayarlar sağlamak için bu derleme eylemini kullanabilirsiniz. Örneğin, yalnızca hata ayıklarken belirli bir izne sahip olmanız gerekiyorsa, hata ayıklarken bu izni eklemek için katman kullanabilirsiniz. Örneğin, aşağıdaki katman dosyası içeriği göz önünde bulundurulduğunda:

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

Hata ayıklama derlemesi için bildirim katmanı eklemek için aşağıdakileri kullanabilirsiniz:

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

Bu derleme eylemi Xamarin.Android 11.2 sürümünde kullanıma sunulmuştur.

AndroidInstallModules

Uygulama paketlerini yüklerken bundletool komutuyla yüklenen modülleri belirtir.

Bu derleme eylemi Xamarin.Android 11.3'te kullanıma sunulmuştur.

AndroidNativeLibrary

Yerel kitaplıklar Derleme eylemi olarak ayarlanarak derlemeye AndroidNativeLibraryeklenir.

Android birden çok Uygulama İkili Arabirimini (ABI) desteklediğinden, derleme sisteminin yerel kitaplığın oluşturulduğu ABI'yi bilmesi gerektiğini unutmayın. ABI'nin belirtilebileceği iki yol vardır:

  1. Yol "koklama".
  2. %(Abi) Öğe meta verilerini kullanma.

Yol algılama ile, yerel kitaplığın üst dizin adı kitaplığın hedeflediğini ABI belirtmek için kullanılır. Bu nedenle, derlemeye eklerseniz lib/armeabi-v7a/libfoo.so , ABI olarak armeabi-v7a"koklanır".

Öğe Öznitelik Adı

Abi – Yerel kitaplığın ABI'sini belirtir.

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

AndroidResource

AndroidResource derleme eylemine sahip tüm dosyalar derleme işlemi sırasında Android kaynaklarına derlenir ve aracılığıyla $(AndroidResgenFile)erişilebilir hale gelir.

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

Daha ileri düzey kullanıcılar farklı yapılandırmalarda farklı kaynaklar kullanmak isteyebilir ancak aynı etkili yol ile kullanılabilir. Bu, birden çok kaynak dizinine sahip olmak ve bu farklı dizinlerde aynı göreli yollara sahip dosyalara sahip olmak ve farklı yapılandırmalara koşullu olarak farklı dosyalar eklemek için MSBuild koşulları kullanılarak gerçekleştirilebilir. Örneğin:

<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 – Kaynak yolunu açıkça belirtir. "Diğer ad" dosyalarının birden çok farklı kaynak adı olarak kullanılabilir olmasını sağlar.

<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

Derleme eylemiAndroidResourceAnalysisConfig, Xamarin Android Tasarım Aracı düzen tanılama aracı için bir dosyayı önem düzeyi yapılandırma dosyası olarak işaretler. Bu, şu anda yalnızca düzen düzenleyicisinde kullanılır ve derleme iletileri için kullanılmaz.

Daha fazla ayrıntı için Android Kaynak Analizi belgelerine bakın.

Xamarin.Android 10.2'de eklendi.

Content

Normal Content Derleme eylemi desteklenmez (büyük olasılıkla maliyetli bir ilk çalıştırma adımı olmadan bunu nasıl destekleyebileceğimizi çözemedik).

Xamarin.Android 5.1'den başlayarak Derleme eylemini @(Content) kullanmaya çalışmak bir XA0101 uyarıyla sonuçlanır.

EmbeddedJar

Xamarin.Android bağlama projesinde EmbeddedJar derleme eylemi Java/Kotlin kitaplığını bağlar ve dosyayı kitaplığa ekler .jar . Xamarin.Android uygulama projesi kitaplığını tükettiğinde, C# dilinden Java/Kotlin API'lerine erişimi olur ve son Android uygulamasına Java/Kotlin kodunu ekler.

Xamarin.Android 11.2 sürümünden bu yana AndroidLibrary derleme eylemini aşağıdaki gibi bir alternatif olarak kullanabilirsiniz:

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

EmbeddedNativeLibrary

Xamarin.Android sınıf kitaplığında veya Java bağlama projesinde EmbeddedNativeLibrary derleme eylemi gibi lib/armeabi-v7a/libfoo.so yerel bir kitaplığı kitaplığa paketler. Xamarin.Android uygulaması kitaplığını tükettiğinde, libfoo.so dosya son Android uygulamasına eklenir.

Xamarin.Android 11.2 sürümünden bu yana AndroidNativeLibrary derleme eylemini alternatif olarak kullanabilirsiniz.

EmbeddedReferenceJar

Xamarin.Android bağlama projesinde EmbeddedReferenceJar derleme eylemi dosyayı kitaplığa ekler .jar ancak EmbeddedJar'ın yaptığı gibi C# bağlaması oluşturmaz. Xamarin.Android uygulama projesi kitaplığını tükettiğinde, son Android uygulamasında Java/Kotlin kodunu içerir.

Xamarin.Android 11.2 sürümünden bu yana AndroidLibrary derleme eylemini aşağıdaki gibi <AndroidLibrary Include="..." Bind="false" />bir alternatif olarak kullanabilirsiniz:

<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

Xamarin.Android bağlama projesinde JavaDocJar derleme eylemi Javadoc HTML içeren dosyalarda .jar kullanılır. Parametre adlarını ayıklamak için Javadoc HTML ayrıştırılır.

Yalnızca belirli "Javadoc HTML diyalektleri" desteklenir, örneğin:

  • JDK 1.7 javadoc çıkışı.
  • JDK 1.8 javadoc çıkışı.
  • Droiddoc çıkışı.

Bu derleme eylemi Xamarin.Android 11.3 sürümünde kullanım dışıdır ve .NET 6'da desteklenmez. Derleme @(JavaSourceJar) eylemi tercih edilir.

JavaSourceJar

Xamarin.Android bağlama projesinde JavaSourceJar derleme eylemi, Javadoc belge açıklamaları içeren Java kaynak kodu içeren dosyalarda .jarkullanılır.

Xamarin.Android 11.3'den önce, Javadoc derleme zamanında yardımcı program aracılığıyla javadoc HTML'ye dönüştürülüyordu ve daha sonra XML belgelerine dönüştürülüyordu.

Xamarin.Android 11.3'den başlayarak, Javadoc bunun yerine oluşturulan bağlama kaynak kodu içinde C# XML Belge Açıklamalarına dönüştürülür.

$(AndroidJavadocVerbosity) içeri aktarılan Javadoc'un nasıl "ayrıntılı" veya "tamam" olduğunu denetler.

Xamarin.Android 11.3'den başlayarak aşağıdaki MSBuild meta verileri desteklenir:

  • %(CopyrightFile): Javadoc içeriği için telif hakkı bilgilerini içeren ve içeri aktarılan tüm belgelerin sonuna eklenecek bir dosyanın yolu.

  • %(UrlPrefix): İçeri aktarılan belgelerde çevrimiçi belgelere bağlanmayı destekleyen bir URL ön eki.

  • %(UrlStyle): Çevrimiçi belgelere bağlanırken oluşturulacak URL'lerin "stili". Şu anda yalnızca bir stil desteklenmektedir: developer.android.com/reference@2020-Nov.

Xamarin.Android 12.3'den itibaren aşağıdaki MSBuild meta verileri desteklenir:

  • %(DocRootUrl): İçeri aktarılan belgelerde tüm {@docroot} örnekleri yerine kullanılacak url ön eki.

LibraryProjectZip

Xamarin.Android bağlama projesinde LibraryProjectZip derleme eylemi Java/Kotlin kitaplığını bağlar ve veya .aar dosyasını kitaplığa ekler.zip. Xamarin.Android uygulama projesi kitaplığını tükettiğinde, C# dilinden Java/Kotlin API'lerine erişimi olur ve son Android uygulamasına Java/Kotlin kodunu ekler.

Not

Xamarin.Android bağlama projesine yalnızca tek bir LibraryProjectZip eklenebilir. Bu sınırlama .NET 6'da kaldırılacaktır.

LinkDescription

LinkDescription derleme eylemine sahip dosyalar bağlayıcı davranışını denetlemek için kullanılır.

ProguardConfiguration

ProguardConfiguration derleme eylemine sahip dosyalar, davranışı denetlemek proguard için kullanılan seçenekleri içerir. Bu derleme eylemi hakkında daha fazla bilgi için bkz . ProGuard.

Bu dosyalar, $(EnableProguard) MSBuild özelliğidir True.