Aracılığıyla paylaş


Yapı Özellikleri

MSBuild özellikleri hedeflerin davranışını denetler. Bunlar proje dosyasında( örneğin MyApp.csproj) bir MSBuild PropertyGroup içinde belirtilir.

AdbTarget

özelliği, $(AdbTarget) Android paketinin yüklenebileceği veya kaldırılabileceği Android hedef cihazını belirtir. Bu özelliğin değeri Hedef Cihaz seçeneğiyle adbaynıdır.

AfterGenerateAndroidManifest

Bu özellikte listelenen MSBuild Hedefleri, AndroidManifest.xml dosyasının içinde $(IntermediateOutputPath)oluşturulduğu iç _GenerateJavaStubs hedef sonrasında doğrudan çalışır. Oluşturulan AndroidManifest.xml dosyada herhangi bir değişiklik yapmak istiyorsanız, bu uzantı noktasını kullanarak bunu yapabilirsiniz.

Xamarin.Android 9.4'te eklendi.

AndroidAapt2CompileExtraArgs

Android varlıklarını ve kaynaklarını işlerken aapt2 derleme komutuna geçirmek için komut satırı seçeneklerini belirtir.

Xamarin.Android 9.1'de eklendi.

AndroidAapt2LinkExtraArgs

Android varlıklarını ve kaynaklarını işlerken aapt2 link komutuna geçirmek için komut satırı seçeneklerini belirtir.

Xamarin.Android 9.1'de eklendi.

AndroidAddKeepAlives

Bağlayıcının erken nesne koleksiyonunu önlemek için bağlama projelerine çağrı ekleyip eklemeyeceğini GC.KeepAlive() denetleyen boole özelliği.

Varsayılan değer True , Yayın yapılandırma derlemeleri içindir.

Bu özellik Xamarin.Android 11.2'de eklendi.

AndroidAotAdditionalArguments

ya da $(AotAssemblies) $(AndroidEnableProfiledAot) olarak ayarlanmış projeler için görev sırasında Aot Mono derleyicisine seçenekler geçirilmesine trueizin veren bir dize özelliği. Özelliğin dize değeri, Mono derleyiciler arası çağrılırken yanıt dosyasına eklenir.

Genel olarak, bu özellik boş bırakılmalıdır, ancak bazı özel senaryolarda yararlı esneklik sağlayabilir.

$(AndroidAotAdditionalArguments) özelliği ilgili $(AndroidExtraAotOptions) özellikten farklıdır; $(AndroidAotAdditionalArguments) veya --debug gibi --verbose tam tek başına boşlukla ayrılmış seçenekleri AOT derleyicisine geçirirken$(AndroidExtraAotOptions), AOT derleyicisinin seçeneğinin --aot bir parçası olan virgülle ayrılmış bağımsız değişkenler içerir.

AndroidAotCustomProfilePath

Profil oluşturucu verilerini tutmak için oluşturulması gereken dosya aprofutil .

AndroidAotProfiles

Geliştiricinin komut satırından AOT profilleri eklemesine olanak tanıyan bir dize özelliği. Mutlak yolların noktalı virgül veya virgülle ayrılmış listesidir. Xamarin.Android 10.1'de eklendi.

AndroidAotProfilerPort

Profil oluşturma verileri alınırken bağlanması gereken bağlantı noktası aprofutil .

AndroidAotEnableLazyLoad

Başlangıçta önceden yüklemek yerine AOT-d derlemelerinin gecikmeli (gecikmeli) yüklenmesini etkinleştirin. Varsayılan değer, True AOT'nin etkinleştirildiği yayın derlemeleri içindir.

.NET 6'da kullanıma sunulmuştur.

AndroidApkDigestAlgorithm

ile jarsigner -digestalgkullanılacak özet algoritmasını belirten dize değeri.

Varsayılan değer şudur: SHA-256. Xamarin.Android 10.0 ve önceki sürümlerde varsayılan değer şeklindeydi SHA1.

Xamarin.Android 9.4'te eklendi.

AndroidApkSignerAdditionalArguments

Geliştiricinin ara çubuğuna bağımsız değişkenler sağlamasına apksigner olanak tanıyan bir dize özelliği.

Xamarin.Android 8.2'ye eklendi.

AndroidApkSigningAlgorithm

ile jarsigner -sigalgkullanılacak imzalama algoritmasını belirten dize değeri.

Varsayılan değer şudur: SHA256withRSA. Xamarin.Android 10.0 ve önceki sürümlerde varsayılan değer şeklindeydi md5withRSA.

Xamarin.Android 8.2'ye eklendi.

AndroidApplication

Projenin bir Android Uygulaması (True) için mi yoksa android kitaplık projesi için mi (False yoksa mevcut mu) olduğunu gösteren boole değeri.

Bir Android paketinde yalnızca bir projesi <AndroidApplication>True</AndroidApplication> olabilir. (Ne yazık ki bu gereksinim doğrulanmadığından Android kaynaklarıyla ilgili küçük ve tuhaf hatalara neden olabilir.)

AndroidApplicationJavaClass

Bir sınıfın Android.App.Application'dan devralındığı zaman yerine android.app.Application kullanılacak tam Java sınıfı adı.

$(AndroidApplicationJavaClass) özelliği genellikle MSBuild özelliği gibi $(AndroidEnableMultiDex) diğer özellikler tarafından ayarlanır.

Xamarin.Android 6.1'de eklendi.

AndroidBinUtilsPath

yerel bağlayıcı ve asgibi ldAndroid binutil'lerini içeren bir dizinin yolu. Bu araçlar Xamarin.Android yüklemesine dahildir.

Varsayılan değer şudur: $(MonoAndroidBinDirectory)\binutils\bin\.

Xamarin.Android 10.0'da eklendi.

AndroidBoundExceptionType

Xamarin.Android tarafından sağlanan bir tür Java türleri açısından bir .NET türü veya arabirimi (örneğin Android.Runtime.InputStreamInvoker ve System.IO.StreamAndroid.Runtime.JavaDictionary System.Collections.IDictionaryveya ) uyguladığında özel durumların nasıl yayılması gerektiğini belirten dize değeri.

  • Java: Özgün Java özel durum türü olduğu gibi yayılır.

    Java, örneğin InputStreamInvoker yerine 'den Stream.Read() oluşturulabileceğinden API'yi Java.IO.IOException System.IO.IOExceptiondüzgün bir şekilde uygulamadığı System.IO.Stream anlamına gelir.

    Java Xamarin.Android 13.0 dahil olmak üzere Xamarin.Android'in tüm sürümlerinde özel durum yayma davranışıdır.

  • System: Özgün Java özel durum türü yakalanıp uygun bir .NET özel durum türünde sarmalanır.

    Systemörneğin, InputStreamInvoker uygulamasını düzgün bir şekilde uyguladığı System.IO.Streamve Stream.Read() örnekleri oluşturmayacağı Java.IO.IOException anlamına gelir. (Bunun yerine değeri içeren bir System.IO.IOException Java.IO.IOException Exception.InnerException atabilir.)

    System , .NET 6.0'daki varsayılan değerdir.

Xamarin.Android 10.2'de eklendi.

AndroidBoundInterfacesContainConstants

Arabirimlerdeki bağlama sabitlerinin desteklenip desteklenmeyeceğini veya sınıf oluşturmanın geçici çözümünün kullanılıp kullanılmayacağını belirleyen boole IMyInterfaceConsts özelliği.

Varsayılan değer .NET 6 ve False eski değerdirTrue.

AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods

Arabirimlerdeki varsayılan ve statik üyelerin desteklenip desteklenmeyeceğini belirten boole özelliği veya gibi abstract class MyInterfacestatik üyeler içeren eşdüzey bir sınıf oluşturmanın eski geçici çözümü.

Varsayılan değer .NET 6 ve False eski değerdirTrue.

AndroidBoundInterfacesContainTypes

Arabirimlerde iç içe yerleştirilmiş türlerin desteklenip desteklenmeyeceğini belirten boole özelliği veya gibi IMyInterfaceMyNestedClassiç içe olmayan bir tür oluşturmanın geçici çözümü.

Varsayılan değer .NET 6 ve False eski değerdirTrue.

AndroidBuildApplicationPackage

Paketin oluşturulup imzalanıp imzalanmayacağını gösteren boole değeri (.apk). Bu değerin olarak True ayarlanması, SignAndroidPackage derleme hedefi.

Xamarin.Android 7.1'in ardından bu özellik için destek eklendi.

Bu özellik varsayılan olarakdır False .

AndroidBundleConfigurationFile

Android Uygulama Paketi oluştururken için yapılandırma dosyası bundletool olarak kullanılacak bir dosya adı belirtir. Bu dosya, APK'lerin paketten nasıl oluşturulduğunu, örneğin paketin APK'leri üretmek için hangi boyutlara bölündüğünü denetler. Xamarin.Android, sıkıştırılmayan dosya uzantılarının listesi de dahil olmak üzere bu ayarların bazılarını otomatik olarak yapılandırır.

Bu özellik yalnızca olarak ayarlandıysa $(AndroidPackageFormat) aabgeçerlidir.

Xamarin.Android 10.3'te eklendi.

AndroidBundleToolExtraArgs

Uygulama paketleri oluştururken bundletool komutuna geçirecek komut satırı seçeneklerini belirtir.

Bu özellik Xamarin.Android 11.3'te eklendi.

AndroidClassParser

Dosyaların nasıl .jar ayrıştırıldığını denetleen bir dize özelliği. Olası değerler arasında şunlar bulunur:

  • class-parse: JVM yardımı olmadan Java bayt kodunu doğrudan ayrıştırmak için kullanılır class-parse.exe .

  • jar2xml: Bir dosyadan .jar türleri ve üyeleri ayıklamak için Java yansımasını kullanmak için kullanınjar2xml.jar.

Over'un class-parse jar2xml avantajları şunlardır:

  • class-parsehata ayıklama sembollerini (ile javac -gderlenmiş bayt kodu) içeren Java bayt kodundan parametre adlarını ayıklayabilir.

  • class-parse , çözümlenemeyen türlerden devralan veya üyelerini içeren sınıfları "atlamıyor".

Xamarin.Android 6.0'a eklendi.

Varsayılan değer "eski" Xamarin.Android ve class-parse .NET 6 ve üzeri sürümlerdedirjar2xml.

desteği jar2xml kullanımdan kaldırıldı ve jar2xml .NET 6'da kaldırıldı.

AndroidCodegenTarget

Kod oluşturma hedef ABI'sini denetleen bir dize özelliği. Olası değerler arasında şunlar bulunur:

  • XamarinAndroid: Android 1.0 için Mono'dan bu yana mevcut JNI bağlama API'sini kullanır. Xamarin.Android 5.0 veya üzeri ile oluşturulan bağlama derlemeleri yalnızca Xamarin.Android 5.0 veya sonraki sürümlerde (API/ABI eklemeleri) çalıştırılabilir, ancak kaynak önceki ürün sürümleriyle uyumludur.

  • XAJavaInterop1: JNI çağrıları için Java.Interop kullanın. kullanarak XAJavaInterop1 bağlama derlemeleri yalnızca Xamarin.Android 6.1 veya sonraki sürümlerle derlenebilir ve yürütülebilir. Xamarin.Android 6.1 ve üzeri bu değerle bağlanır Mono.Android.dll .

Avantajları XAJavaInterop1 şunlardır:

  • Daha küçük derlemeler.

  • jmethodIDdevralma hiyerarşisindeki diğer tüm bağlama türleri veya üzeri ile XAJavaInterop1 derlenmiş olduğu sürece yöntem çağrıları için base önbelleğe alma.

  • jmethodID yönetilen alt sınıflar için Java Çağrılabilen Sarmalayıcı oluşturucularının önbelleğe alınmasını sağlama.

Varsayılan değer şudur: XAJavaInterop1.

desteği XamarinAndroid kullanımdan kaldırılmıştır ve desteği XamarinAndroid .NET 6'nın bir parçası olarak kaldırılacaktır.

AndroidCreatePackagePerAbi

Tek bir içindeki tüm ABI'ler için destek almak yerine içinde belirtilen $(AndroidSupportedAbis)ABI başına bir dosya kümesinin oluşturulup oluşturulmayacağını belirleyen boole .apközelliği.

Ayrıca bkz. ABI'ye Özgü API'ler oluşturma kılavuzu.

AndroidCreateProguardMappingFile

Derleme işleminin bir parçası olarak bir proguard eşleme dosyasının oluşturularak oluşturulmadığını denetleyen boole özelliği.

Csproj'unuza aşağıdakileri eklemek dosyanın oluşturulmasına neden olur ve son eşleme dosyasının konumunu denetlemek için özelliğini kullanır AndroidProguardMappingFile .

<AndroidCreateProguardMappingFile>True</AndroidCreateProguardMappingFile>

Dosyalar oluşturulurken .aab eşleme dosyası otomatik olarak paketinize eklenir. Google Play Store'a el ile yüklemenize gerek yoktur. Dosyaları kullanırken .apk , öğesinin AndroidProguardMappingFile el ile yüklenmesi gerekir.

Varsayılan değer , =r8 kullanılırken $(AndroidLinkTool)kullanılırTrue.

Xamarin.Android 12.3'te eklendi.

AndroidDebugKeyAlgorithm

için kullanılacak varsayılan algoritmayı debug.keystorebelirtir. Varsayılan değer şudur: RSA.

AndroidDebugKeyValidity

için debug.keystorekullanılacak varsayılan geçerliliği belirtir. Varsayılan değer veya 30 * 365 30 yearsşeklindedir10950.

AndroidDebugStoreType

için debug.keystorekullanılacak anahtar deposu dosya biçimini belirtir. Varsayılan olarak olur pkcs12.

Xamarin.Android 10.2'de eklendi.

AndroidDeviceUserId

Konuk veya iş hesapları altında uygulamanın dağıtılmasına ve hata ayıklamasına izin verir. Değer, aşağıdaki adb komutundan elde ettiğiniz değerdir uid :

adb shell pm list users

Yukarıdaki komut aşağıdaki verileri döndürür:

Users:
	UserInfo{0:Owner:c13} running
	UserInfo{10:Guest:404}

uid, ilk tamsayı değeridir. Yukarıdaki çıkışta ve 10şeklindedir0.

$(AndroidDeviceUserId) Özelliği Xamarin.Android 11.2'de eklendi.

AndroidDexTool

veya d8geçerli değerlerine dx sahip bir numaralandırma stili özelliği. Xamarin.Android derleme işlemi sırasında hangi Android dex derleyicisinin kullanıldığını gösterir. Varsayılan değer şudur: dx. D8 ve R8 ile ilgili belgelerimize bakın.

AndroidEnableDesugar

Etkinleştirilip desugar etkinleştirilmediğini belirleyen boole özelliği. Android şu anda tüm Java 8 özelliklerini desteklememektedir ve varsayılan araç zinciri, derleyicinin çıkışında javac adlı desugarbayt kodu dönüştürmeleri gerçekleştirerek yeni dil özelliklerini uygular. Varsayılan değer, kullanılıyorsa ve kullanılıyorsad8$(AndroidDexTool)= değeridirFalse.True $(AndroidDexTool)=dx

AndroidEnableGooglePlayStoreChecks

Geliştiricilerin şu Google Play Store denetimlerini devre dışı bırakmasına olanak tanıyan bool özelliği: XA1004, XA1005 ve XA1006. Bu denetimleri devre dışı bırakmak, Google Play Store'u hedeflemeyen ve bu denetimleri çalıştırmak istemeyen geliştiriciler için kullanışlıdır.

Xamarin.Android 9.4'te eklendi.

AndroidEnableMultiDex

Çoklu dex desteğinin son .apkiçinde kullanılıp kullanılmayacağını belirleyen boole özelliği.

Bu özellik için destek Xamarin.Android 5.1'e eklendi.

Bu özellik varsayılan olarakdır False .

AndroidEnablePreloadAssemblies

Uygulama paketi içinde paketlenmiş tüm yönetilen derlemelerin işlem başlatma sırasında yüklenip yüklenmeyeceğini denetleyen boole özelliği.

olarak Trueayarlandığında, uygulama paketi içinde paketlenmiş tüm derlemeler, herhangi bir uygulama kodu çağrılmadan önce işlem başlatma sırasında yüklenir. Derlemeleri önceden yükleme, Xamarin.Android'in yaptığı işlemdir.

olarak Falseayarlandığında, derlemeler yalnızca gerektiği gibi yüklenir. Derlemelerin gerektiği gibi yüklenmesi, uygulamaların daha hızlı başlatılmasını sağlar ve masaüstü .NET semantiğiyle de daha tutarlıdır. Zaman tasarrufunu görmek için Sistem Özelliği'ni debug.mono.log öğesini içerecek timingşekilde ayarlayın ve içinde adb logcatiletiyi arayınFinished loading assemblies: preloaded.

Bağımlılık ekleme kullanan uygulamalar veya kitaplıklar, derlemeye başka türlü gerek duyulmasa bile uygulama paketi içindeki tüm derlemelerin döndürülmesi gerekiyorsa bu özelliğin True olması gerekebilir. AppDomain.CurrentDomain.GetAssemblies()

Varsayılan olarak bu değer Xamarin.Android için olarak ayarlanır True ve .NET 6+ derlemeleri için olarak ayarlanır False .

Xamarin.Android 9.2'de eklendi.

AndroidEnableProfiledAot

AOT profillerinin Önceden Derleme sırasında kullanılıp kullanılmayacağını belirleyen boole özelliği.

Profiller @(AndroidAotProfile) öğe grubu. Bu ItemGroup varsayılan profilleri içerir. Mevcut profiller kaldırılarak ve kendi AOT profilleriniz eklenerek geçersiz kılınabilir.

Bu özellik için destek Xamarin.Android 9.4'e eklendi.

Bu özellik varsayılan olarakdır False .

AndroidEnableSGenConcurrent

Mono'nun eşzamanlı GC toplayıcının kullanılıp kullanılmayacağını belirleyen boole özelliği.

Bu özellik için destek Xamarin.Android 7.2'ye eklendi.

Bu özellik varsayılan olarakdır False .

AndroidErrorOnCustomJavaObject

Türlerin veya Java.Lang.Throwableöğesinden Java.Lang.Object devralmadan uygulanıp uygulanamayacağını Android.Runtime.IJavaObjectbelirleyen boole özelliği:

class BadType : IJavaObject {
    public IntPtr Handle {
        get {return IntPtr.Zero;}
    }

    public void Dispose()
    {
    }
}

True olduğunda, bu tür türler bir XA4212 hatası oluşturur, aksi takdirde bir XA4212 uyarısı oluşturulur.

Bu özellik için destek Xamarin.Android 8.1'e eklendi.

Bu özellik varsayılan olarakdır True .

AndroidExplicitCrunch

Artık Xamarin.Android 11.0'da desteklenmiyor.

AndroidExtraAotOptions

ya da $(AotAssemblies) $(AndroidEnableProfiledAot) olarak ayarlanmış projeler için görev sırasında Aot Mono derleyicisine seçenekler geçirilmesine trueizin veren bir dize özelliği. Özelliğin dize değeri, Mono derleyiciler arası çağrılırken yanıt dosyasına eklenir.

Genel olarak, bu özellik boş bırakılmalıdır, ancak bazı özel senaryolarda yararlı esneklik sağlayabilir.

$(AndroidExtraAotOptions) özelliği ilgili $(AndroidAotAdditionalArguments) özellikten farklıdır; $(AndroidAotAdditionalArguments) virgülle ayrılmış bağımsız değişkenleri Mono derleyicisinin seçeneğine --aot yerleştirir. $(AndroidExtraAotOptions)bunun yerine, veya --debug gibi --verbose tam tek başına alanla ayrılmış seçenekleri derleyiciye geçirir.

Xamarin.Android 10.2'de eklendi.

AndroidFastDeploymentType

: MSBuild özelliği Falseolduğunda $(EmbedAssembliesIntoApk) hedef cihazdaki Hızlı Dağıtım dizinine dağıtılacak türleri denetlemek için (iki nokta üst üste) ayrılmış bir değer listesi. Bir kaynak hızlı dağıtılırsa, oluşturulan .apkiçine eklenmez ve bu da dağıtım sürelerini hızlandırabilir. (Ne kadar hızlı dağıtılırsa, o kadar az sıklıkta .apk yeniden oluşturulması gerekir ve yükleme işlemi daha hızlı olabilir.) Geçerli değerler şunlardır:

  • Assemblies: Uygulama derlemelerini dağıtın.
  • Dexes: Dosyaları, yerel kitaplıkları ve tür haritalarını dağıtın .dex . Bu Dexes değer yalnızca Android 4.4 veya üzeri (API-19) çalıştıran cihazlarda kullanılabilir.

Varsayılan değer şudur: Assemblies.

Bu sistem aracılığıyla kaynakları ve varlıkları Hızlı Dağıtma desteği, işleme f0d565fe'de kaldırıldı. Bunun nedeni, kullanım dışı api'lerin kullanılmasının çalışmasıydı.

Deneysel. Bu özellik Xamarin.Android 6.1'de eklendi.

AndroidFragmentType

Düzen bağlamaları kodu oluşturulurken tüm <fragment> düzen öğeleri için kullanılacak varsayılan tam türü belirtir. Varsayılan değer standart Android Android.App.Fragment türüdür.

AndroidGenerateJniMarshalMethods

Derleme işleminin bir parçası olarak JNI sıralama yöntemlerinin oluşturulmasını sağlayan bool özelliği. Bu, bağlama yardımcı kodundaki kullanımı büyük ölçüde azaltır System.Reflection .

Varsayılan değer şudur: False. Geliştiriciler yeni JNI hazırlama yöntemleri özelliğini kullanmak isterse,

<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>

içinde ..csproj Alternatif olarak komut satırında özelliğini şu şekilde sağlayın:

/p:AndroidGenerateJniMarshalMethods=True

Deneysel. Xamarin.Android 9.2'de eklendi. Varsayılan değer şudur: False.

AndroidGenerateJniMarshalMethodsAdditionalArguments

Çağrıya parametre jnimarshalmethod-gen.exe eklemek için kullanılabilecek ve hata ayıklama için yararlı olan bir dize özelliğidir; böylece , -dveya --keeptemp gibi -vseçenekler kullanılabilir.

Varsayılan değer boş dizedir. Dosyada .csproj veya komut satırında ayarlanabilir. Örneğin:

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

veya:

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

Xamarin.Android 9.2'de eklendi.

AndroidGenerateLayoutBindings

olarak ayarlanırsa arka planda düzen kodunun oluşturulmasını true etkinleştirir veya olarak ayarlanırsa falsetamamen devre dışı bırakır. Varsayılan değer şudur: false.

AndroidGenerateResourceDesigner

Varsayılan değer şudur: true. olarak falseayarlandığında, oluşturulmasını Resource.designer.csdevre dışı bırakır.

.NET 6 RC 1'de eklendi. Xamarin.Android'de desteklenmez.

AndroidHttpClientHandlerType

Varsayılan System.Net.Http.HttpMessageHandler oluşturucu tarafından System.Net.Http.HttpClient kullanılacak varsayılan uygulamayı denetler. değeri, ile System.Type.GetType(string)kullanıma uygun bir HttpMessageHandler alt sınıfın derleme nitelikli tür adıdır. Bu özelliğin en yaygın değerleri şunlardır:

  • Xamarin.Android.Net.AndroidClientHandler: Ağ istekleri gerçekleştirmek için Android Java API'lerini kullanın. Java API'lerinin kullanılması, temel alınan Android sürümü TLS 1.2'yi desteklediğinde TLS 1.2 URL'lerine erişim sağlar. Java aracılığıyla yalnızca Android 5.0 ve üzeri güvenilir bir şekilde TLS 1.2 desteği sağlar.

    Visual Studio özellik sayfalarında Android seçeneğine ve Mac için Visual Studio özellik sayfalarında AndroidClientHandler seçeneğine karşılık gelir.

    Yeni proje sihirbazı, En Düşük Android Sürümü Visual Studio'da Android 5.0 (Lollipop) veya üzeri bir sürüme yapılandırıldığında ya da Hedef Platformlar Mac için Visual Studio'de En Son ve En Büyük olarak ayarlandığında yeni projeler için bu seçeneği belirler.

  • Unset/boş dize, eşdeğerdir System.Net.Http.HttpClientHandler, System.Net.Http

    Visual Studio özellik sayfalarında Varsayılan seçeneğine karşılık gelir.

    Yeni proje sihirbazı, En Düşük Android Sürümü Visual Studio'da Android 4.4.87 veya daha düşük bir sürüme yapılandırıldığında ya da Hedef Platformlar Mac için Visual Studio'de Modern Geliştirme veya En Yüksek Uyumluluk olarak ayarlandığında yeni projeler için bu seçeneği belirler.

  • System.Net.Http.HttpClientHandler, System.Net.Http: Yönetilen HttpMessageHandlerkullanın.

    Visual Studio özellik sayfalarında Yönetilen seçeneğine karşılık gelir.

Not

5.0 öncesi Android sürümlerinde TLS 1.2 desteği gerekiyorsa veya ve ilgili API'lerde TLS 1.2 desteği gerekiyorsa System.Net.WebClient kullanılmalıdır $(AndroidTlsProvider) .

Not

Özellik desteği$(AndroidHttpClientHandlerType), ortam değişkenini XA_HTTP_CLIENT_HANDLER_TYPEayarlayarak çalışır. $XA_HTTP_CLIENT_HANDLER_TYPE Derleme eyleminin bulunduğu bir dosyada bulunan değer@(AndroidEnvironment) öncelik kazanır.

Xamarin.Android 6.1'de eklendi.

AndroidIncludeWrapSh

Android sarmalayıcı betiğinin (wrap.sh) APK'ye paketlenip paketlenmemesi gerektiğini gösteren boole değeri. Varsayılan değer, false sarmalayıcı betiğinin uygulamanın başlama ve çalışma şeklini önemli ölçüde etkileyebileceğinden ve betiğin yalnızca gerektiğinde (örneğin, hata ayıklama veya uygulama başlatma/çalışma zamanı davranışını değiştirirken) dahil edilmesi gerektiğidir.

Betik, kullanılarak projeye eklenir @(AndroidNativeLibrary) derleme eylemi, mimariye özgü yerel kitaplıklar ile aynı dizine yerleştirildiğinden ve olarak adlandırılmalıdır wrap.sh.

Betiğin yolunu belirtmenin wrap.sh en kolay yolu, bunu hedef mimarinin adını taşıyan bir dizine yerleştirmektir. Mimari başına yalnızca bir wrap.sh yaklaşımınız varsa bu yaklaşım işe yarayacaktır:

<AndroidNativeLibrary Include="path/to/arm64-v8a/wrap.sh" />

Ancak projeniz farklı amaçlarla mimari başına birden wrap.sh fazla mimariye ihtiyaç duyuyorsa bu yaklaşım işe yaramaz. Bunun yerine, bu gibi durumlarda adı öğesinin Link meta verileri AndroidNativeLibrarykullanılarak belirtilebilir:

<AndroidNativeLibrary Include="/path/to/my/arm64-wrap.sh">
  <Link>lib\arm64-v8a\wrap.sh</Link>
</AndroidNativeLibrary>

Link Meta veriler kullanılıyorsa, değerinde belirtilen yol APK kök dizinine göre geçerli bir yerel mimariye özgü kitaplık yolu olmalıdır. Yolun biçimi şu lib\ARCH\wrap.sh ARCH durumlardan biri olabilir:

  • arm64-v8a
  • armeabi-v7a
  • x86_64
  • x86

AndroidJavadocVerbosity

Bağlama projeleri içinde Javadoc belgelerini içeri aktarırken "ayrıntılı" C# XML Belgeleri Açıklamalarının nasıl olması gerektiğini belirtir.

Kullanımı gerektirir @(JavaSourceJar) derleme eylemi.

$(AndroidJavadocVerbosity) özelliği, veya intellisenseolası değerleriyle full numaralandırılır:

Varsayılan değer şudur: intellisense.

Bu özellik için destek Xamarin.Android 11.3'e eklendi.

AndroidKeyStore

Özel imzalama bilgilerinin kullanılıp kullanılmayacağını gösteren boole değeri. Varsayılan değer olan Falsedeğeri, paketleri imzalamak için varsayılan hata ayıklama imzalama anahtarının kullanılacağı anlamına gelir.

AndroidLaunchActivity

Başlatacak Android etkinliği.

AndroidLinkMode

Android paketinde bulunan derlemelerde hangi tür bağlamanın gerçekleştirileceğini belirtir. Yalnızca Android Uygulama projelerinde kullanılır. Varsayılan değer SdkOnly'dir. Geçerli değerler:

  • Hiçbiri: Bağlama denenmeyecek.

  • SdkOnly: Bağlama yalnızca temel sınıf kitaplıklarında gerçekleştirilir, kullanıcının derlemelerinde gerçekleştirilmeyecektir.

  • Tam: Bağlama temel sınıf kitaplıklarında ve kullanıcı derlemelerinde gerçekleştirilir.

    Not

    AndroidLinkMode Tam değerinin kullanılması genellikle özellikle Yansıma kullanıldığında uygulamaların bozulmasına neden olur. Ne yaptığınızı gerçekten bilmiyorsanız kaçının.

<AndroidLinkMode>SdkOnly</AndroidLinkMode>

AndroidLinkResources

olduğunda true, derleme sistemi tüm derlemelerde Resource.Designer.cs Resource sınıfının İç İçe Türlerine bağlanır. Bu türleri kullanan IL kodu, alanlara erişmek yerine değerleri doğrudan kullanacak şekilde güncelleştirilir.

İç içe türlerin bağlanması apk boyutunu küçültme üzerinde küçük bir etkiye sahip olabilir ve başlangıç performansı konusunda da yardımcı olabilir. Yalnızca "Yayın" derlemeleri bağlantılıdır.

Deneysel. Yalnızca gibi kodlarla çalışacak şekilde tasarlanmıştır

var view = FindViewById(Resources.Ids.foo);

Diğer senaryolar (yansıma gibi) desteklenmez.

Xamarin.Android 11.3'te bu özellik için destek eklendi

AndroidLinkSkip

Bağlanmaması gereken derlemelerin dosya uzantıları olmadan, derleme adlarının noktalı virgülle ayrılmış (;) listesini belirtir. Yalnızca Android Uygulama projelerinin içinde kullanılır.

<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>

AndroidLinkTool

veya r8geçerli değerlerine proguard sahip bir numaralandırma stili özelliği. Java kodu için hangi kod daraltıcının kullanıldığını gösterir. Varsayılan değer boş bir dizedir veya proguard ise $(AndroidEnableProguard) olur True. D8 ve R8 ile ilgili belgelerimize bakın.

AndroidLintEnabled

Geliştiricinin paketleme işleminin bir parçası olarak android lint aracını çalıştırmasına olanak tanıyan bool özelliği.

=True olduğunda $(AndroidLintEnabled), aşağıdaki özellikler kullanılır:

Aşağıdaki derleme eylemleri de kullanılabilir:

Android lint araçları hakkında daha fazla bilgi için Lint Yardımı'na bakın.

AndroidLintEnabledIssues

Etkinleştirileceği lint sorunlarının virgülle ayrılmış bir listesi olan dize özelliği.

Yalnızca =Doğru olduğunda $(AndroidLintEnabled)kullanılır.

AndroidLintDisabledIssues

Devre dışı bırakabilecek lint sorunlarının virgülle ayrılmış bir listesi olan dize özelliği.

Yalnızca =Doğru olduğunda $(AndroidLintEnabled)kullanılır.

AndroidLintCheckIssues

Denetlenecek lint sorunlarının virgülle ayrılmış bir listesi olan dize özelliği.

Yalnızca =Doğru olduğunda $(AndroidLintEnabled)kullanılır.

Not: Yalnızca bu sorunlar denetlenecektir.

AndroidManagedSymbols

Dosya adı ve satır numarası bilgilerinin yığın izlemelerinden Release ayıklanması için sıra noktalarının oluşturulup oluşturulmadığını denetleyen boole özelliği.

Xamarin.Android 6.1'de eklendi.

AndroidManifest

Uygulamanın AndroidManifest.xmlşablonu olarak kullanılacak bir dosya adı belirtir. Derleme sırasında, gerçek AndroidManifest.xmldeğerini oluşturmak için diğer gerekli değerler ile birleştirilir. $(AndroidManifest) özniteliğinde /manifest/@package paket adını içermelidir.

AndroidManifestMerger

AndroidManifest.xml dosyalarını birleştirmek için uygulamayı belirtir. Bu, özgün C# uygulamasını seçip Google'ın Java uygulamasını manifestmerger.jar seçen legacy bir numaralandırma stili özelliğidir.

Varsayılan değer şu anda legacyşeklindedir. Bu, Android Studio ile davranışı uyumlu hale getirmek için gelecek bir sürümde olarak değişir manifestmerger.jar .

Google'ın birleşmesi, Android belgelerinde açıklandığı gibi için destek xmlns:tools="http://schemas.android.com/tools" sağlar.

Xamarin.Android 10.2'de kullanıma sunulmuştur

AndroidManifestMergerExtraArgs

Android belge aracına bağımsız değişkenler sağlayan bir dize özelliği.

Araçtan ayrıntılı çıktı almak istiyorsanız, öğesine aşağıdakileri .csprojekleyebilirsiniz.

<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>

Xamarin.Android 11.x ile kullanıma sunulmuştur

AndroidManifestType

veya GoogleV2geçerli değerlerine Xamarin sahip bir numaralandırma stili özelliği. Bu, hangi deponun InstallAndroidDependencies hedefine ulaşarak hangi Android paketlerinin ve paket sürümlerinin kullanılabilir olduğunu ve yüklenebileceğini belirleyin.

Xamarin, Visual Studio SDK Yöneticisi içindeki Onaylı Liste (Önerilen) deposudur.

GoogleV2, Visual Studio SDK Yöneticisi içindeki Tam Liste (Desteklenmeyen) deposudur.

Xamarin.Android 13.0'da eklendi. Xamarin.Android 13.0'da ayarlanmadıysa $(AndroidManifestType) kullanılır Xamarin .

Xamarin.Android 13.0'ın öncesinde ayarın $(AndroidManifestType) hiçbir etkisi yoktur ve GoogleV2 kullanılır.

AndroidManifestPlaceholders

her çiftin biçimine key=valuesahip olduğu AndroidManifest.xml için anahtar-değer değiştirme çiftlerinin noktalı virgülle ayrılmış listesi.

Örneğin, özelliğinin assemblyName=$(AssemblyName) değeri daha sonra AndroidManifest.xml görünebilen bir ${assemblyName} yer tutucu tanımlar:

<application android:label="${assemblyName}"

Bu, derleme işleminden AndroidManifest.xml dosyasına değişken eklemenin bir yolunu sağlar.

AndroidMultiDexClassListExtraArgs

Geliştiricilerin dosyayı oluştururken multidex.keep bağımsız değişkenleri 'com.android.multidex.MainDexListBuildera geçirmesine olanak tanıyan bir dize özelliği.

Belirli bir durum, derleme sırasında dx aşağıdaki hatayı alıyor olmanızdır.

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

Bu hatayı alıyorsanız aşağıdakini öğesine .csprojekleyebilirsiniz.

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

adımın dx başarılı olmasını sağlar.

Xamarin.Android 8.3'te eklendi.

AndroidPackageFormat

veya aabgeçerli değerlerine apk sahip bir numaralandırma stili özelliği. Android uygulamasını APK dosyası veya Android Uygulama Paketi olarak paketlemek isteyip istemediğinizi gösterir. Uygulama Paketleri, Google Play'de göndermeye yönelik derlemeler için Release yeni bir biçimdir. Varsayılan değer şudur: apk.

$(AndroidPackageFormat) olarak ayarlandığındaaab, Android Uygulama Paketleri için gereken diğer MSBuild özellikleri ayarlanır:

Bu özellik .net 6 için kullanım dışı bırakılacak. Kullanıcılar yeni AndroidPackageFormatsöğesine geçmelidir.

AndroidPackageFormats

ve aabgeçerli değerleriyle apk noktalı virgülle ayrılmış bir özellik. Android uygulamasını APK dosyası veya Android Uygulama Paketi olarak paketlemek isteyip istemediğinizi gösterir. Uygulama Paketleri, Google Play'de göndermeye yönelik derlemeler için Release yeni bir biçimdir.

Yayın derlemesi oluştururken, çeşitli mağazalara dağıtım için hem hem aab de apk oluşturmak isteyebilirsiniz.

ayarı AndroidPackageFormats aab;apk her ikisinin de oluşturulmasına neden olur. veya apk olarak aab ayarlanması AndroidPackageFormats yalnızca bir dosya oluşturur.

For .net 6 AndroidPackageFormats yalnızca derlemeler için Release olarak ayarlanıraab;apk. Yalnızca apk hata ayıklama için kullanmaya devam edin.

Eski Xamarin.Android için varsayılan değerdir "". Sonuç olarak Eski Xamarin.Android varsayılan olarak her ikisini de bir yayın derlemesinin parçası olarak ÜRETMEZ. Bir kullanıcı her iki çıkışı da üretmek istiyorsa, yapılandırmalarında aşağıdakileri tanımlaması Release gerekir.

<AndroidPackageFormats>aab;apk</AndroidPackageFormats>

Bu yapılandırmaya sahipseniz mevcut AndroidPackageFormat yapılandırmayı da kaldırmanız gerekir.

Xamarin.Android 11.5'te eklendi.

AndroidPackageNamingPolicy

Oluşturulan Java kaynak kodunun Java paket adlarını belirtmek için bir numaralandırma stili özelliği.

Xamarin.Android 10.2 ve sonraki sürümlerde desteklenen tek değerdir LowercaseCrc64.

Xamarin.Android 10.1'de, Xamarin.Android 10.0 ve önceki sürümlerde kullanılan özgün Java paketi adı stiline geri dönme olanağı sağlayan bir geçiş LowercaseMD5 değeri de sağlandı. Bu seçenek, FIPS uyumluluğu zorunlu olan derleme ortamlarıyla uyumluluğu geliştirmek için Xamarin.Android 10.2'de kaldırıldı.

Xamarin.Android 10.1'de eklendi.

AndroidProguardMappingFile

-printmapping için r8proguard kuralını belirtir. Bu, dosyanın klasörde oluşturulacağı $(OutputPath) anlamına gelirmapping.txt. Bu dosya daha sonra Paketleri Google Play Store'a yüklerken kullanılabilir.

Varsayılan olarak, bu dosya kullanılırken AndroidLinkTool=r8 otomatik olarak oluşturulur ve aşağıdaki dosyayı $(OutputPath)mapping.txtoluşturur.

Bu eşleme dosyasını oluşturmak istemiyorsanız, oluşturmayı durdurmak için özelliğini kullanabilirsiniz AndroidCreateProguardMappingFile . Projenize aşağıdakileri ekleyin

<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>

veya komut satırında kullanın -p:AndroidCreateProguardMappingFile=False .

Bu özellik Xamarin.Android 11.2'de eklendi.

AndroidR8IgnoreWarnings

-ignorewarnings için r8proguard kuralını belirtir. Bu, belirli uyarılarla karşılaşılsa bile dex derlemesine devam edilmesini sağlar r8 . Varsayılan değer şeklindedir True, ancak daha katı bir davranışı zorunlu kılmak için False olarak ayarlanabilir. Ayrıntılar için ProGuard kılavuzuna bakın.

Xamarin.Android 10.3'te eklendi.

AndroidR8JarPath

r8 dex-compiler ve shrinker ile kullanılacak yolu r8.jar . Varsayılan değer, Xamarin.Android yüklemesindeki bir yoldur. Daha fazla bilgi için D8 ve R8 ile ilgili belgelerimize bakın.

AndroidResgenExtraArgs

Android varlıklarını ve kaynaklarını işlerken aapt komutuna geçirmek için komut satırı seçeneklerini belirtir.

AndroidResgenFile

Oluşturulacak Kaynak dosyasının adını belirtir. Varsayılan şablon bunu olarak Resource.designer.csayarlar.

AndroidSdkBuildToolsVersion

Android SDK derleme araçları paketi, diğerlerinin de aralarında bulunduğu aapt ve zipalign araçlarını sağlar. Derleme araçları paketinin birden çok farklı sürümü aynı anda yüklenebilir. Paketleme için seçilen derleme araçları paketi, varsa "tercih edilen" derleme araçları sürümü denetlenerek ve kullanılarak yapılır; "Tercih edilen" sürüm mevcut değilse , yüklü en yüksek sürüme sahip derleme araçları paketi kullanılır.

$(AndroidSdkBuildToolsVersion) MSBuild özelliği tercih edilen derleme araçları sürümünü içerir. Xamarin.Android derleme sistemi içinde Xamarin.Android.Common.targetsvarsayılan bir değer sağlar ve önceki bir aapt sürümünün çalıştığı bilinirken en son aapt kilitleniyorsa ( örneğin) alternatif bir derleme araçları sürümü seçmek için proje dosyanızda varsayılan değer geçersiz kılınabilir.

AndroidSigningKeyAlias

Anahtar deposundaki anahtarın diğer adını belirtir. Bu, keystore oluşturulurken kullanılan keytool -alias değeridir.

AndroidSigningKeyPass

Keystore dosyasındaki anahtarın parolasını belirtir. Bu, $(AndroidSigningKeyAlias) için Anahtar parolasını girin sorulduğunda keytool girilen değerdir.

Xamarin.Android 10.0 ve önceki sürümlerinde bu özellik yalnızca düz metin parolalarını destekler.

Xamarin.Android 10.1 ve sonraki sürümlerde bu özellik, parolayı içeren bir ortam değişkeni veya dosyası belirtmek için kullanılabilecek ve file: ön eklerini de desteklerenv:. Bu seçenekler, parolanın derleme günlüklerinde görünmesini önlemenin bir yolunu sağlar.

Örneğin, AndroidSigningPassword adlı bir ortam değişkeni kullanmak için:

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

konumunda C:\Users\user1\AndroidSigningPassword.txtbulunan bir dosyayı kullanmak için:

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

Not

env: ön ek olarak ayarlandığında aabdesteklenmez$(AndroidPackageFormat).

AndroidSigningKeyStore

tarafından keytoololuşturulan keystore dosyasının dosya adını belirtir. Bu, keytool -keystore seçeneğine sağlanan değere karşılık gelir.

AndroidSigningStorePass

parolasını $(AndroidSigningKeyStore)belirtir. Bu, keystore dosyasını oluştururken sağlanan keytool değerdir ve Anahtar deposu parolasını girin: sorulduğunda.

Xamarin.Android 10.0 ve önceki sürümlerinde bu özellik yalnızca düz metin parolalarını destekler.

Xamarin.Android 10.1 ve sonraki sürümlerde bu özellik, parolayı içeren bir ortam değişkeni veya dosyası belirtmek için kullanılabilecek ve file: ön eklerini de desteklerenv:. Bu seçenekler, parolanın derleme günlüklerinde görünmesini önlemenin bir yolunu sağlar.

Örneğin, AndroidSigningPassword adlı bir ortam değişkeni kullanmak için:

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

konumunda C:\Users\user1\AndroidSigningPassword.txtbulunan bir dosyayı kullanmak için:

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

Not

env: ön ek olarak ayarlandığında aabdesteklenmez$(AndroidPackageFormat).

AndroidSigningPlatformKey

Apk'yi imzalamak için kullanılacak anahtar dosyasını belirtir. Bu yalnızca uygulama oluştururken system kullanılır.

Bu özellik için destek Xamarin.Android 11.3'e eklendi.

AndroidSigningPlatformCert

Apk'yi imzalamak için kullanılacak sertifika dosyasını belirtir. Bu yalnızca uygulama oluştururken system kullanılır.

Bu özellik için destek Xamarin.Android 11.3'e eklendi.

AndroidSupportedAbis

içine eklenmesi .apkgereken, noktalı virgülle (;)sınırlandırılmış BIR ABI listesi içeren dize özelliği.

Desteklenen değerler şunlardır:

  • armeabi-v7a
  • x86
  • arm64-v8a: Xamarin.Android 5.1 ve üzerini gerektirir.
  • x86_64: Xamarin.Android 5.1 ve üzerini gerektirir.

AndroidTlsProvider

Bir uygulamada hangi TLS sağlayıcısının kullanılacağını belirten dize değeri. Olası değerler şunlardır:

  • Boş dizeyi kaldırma: Xamarin.Android 7.3 ve üzeri sürümlerde bu, ile btlseşdeğerdir.

    Xamarin.Android 7.1'de bu, ile legacyeşdeğerdir.

    Bu, Visual Studio özellik sayfalarında Varsayılan ayarına karşılık gelir.

  • btls: HttpWebRequest ile TLS iletişimi için Sıkıcı SSL kullanın.

    Bu, tüm Android sürümlerinde TLS 1.2 kullanımına izin verir.

    Bu, Visual Studio özellik sayfalarında Yerel TLS 1.2+ ayarına karşılık gelir.

  • legacy: Xamarin.Android 10.1 ve önceki sürümlerinde, ağ etkileşimi için geçmiş yönetilen SSL uygulamasını kullanın. Bu , TLS 1.2'i desteklemez .

    Bu, Visual Studio özellik sayfalarında Yönetilen TLS 1.0 ayarına karşılık gelir.

    Xamarin.Android 10.2 ve sonraki sürümlerde bu değer yoksayılır ve btls ayar kullanılır.

  • default: Bu değerin Xamarin.Android projelerinde kullanılma olasılığı düşüktür. Bunun yerine kullanılması önerilen değer, Visual Studio özellik sayfalarında Varsayılan ayarına karşılık gelen boş dizedir.

    default Değer Visual Studio özellik sayfalarında sunulmaz.

    Bu, şu anda ile legacyeşdeğerdir.

Xamarin.Android 7.1'de eklendi.

AndroidUseAapt2

Geliştiricinin paketleme için aracın kullanımını aapt2 denetlemesini sağlayan boole özelliği. Varsayılan olarak bu False olur ve Xamarin.Android kullanır aapt. Geliştirici yeni aapt2 işlevselliği kullanmak istiyorsa şunları ekleyin:

<AndroidUseAapt2>True</AndroidUseAapt2>

içinde ..csproj Alternatif olarak, komut satırında özelliğini sağlayın:

/p:AndroidUseAapt2=True

Bu özellik Xamarin.Android 8.3'te eklendi. false ayarı AndroidUseAapt2 Xamarin.Android 11.2'de kullanım dışıdır.

AndroidUseApkSigner

Geliştiricinin aracı yerine jarsignerkullanmasını apksigner sağlayan bool özelliği.

Xamarin.Android 8.2'ye eklendi.

AndroidUseDefaultAotProfile

Geliştiricinin varsayılan AOT profillerinin kullanımını gizlemesini sağlayan bool özelliği.

Varsayılan AOT profillerini engellemek için özelliğini olarak falseayarlayın.

Xamarin.Android 10.1'de eklendi.

AndroidUseInterpreter

normal JIT'yi değil mono yorumlayıcıyı içermesine neden olan .apk boole özelliği.

Deneysel.

Bu özellik için destek Xamarin.Android 11.3'e eklendi.

AndroidUseLegacyVersionCode

Geliştiricinin versionCode hesaplamasını eski Xamarin.Android 8.2 davranışına geri döndürmesini sağlayan boole özelliği. Bu, YALNIZCA Google Play Store'da mevcut uygulamaları olan geliştiriciler için kullanılmalıdır. Yeni $(AndroidVersionCodePattern) özelliğin kullanılması kesinlikle önerilir.

Xamarin.Android 8.2'ye eklendi.

AndroidUseManagedDesignTimeResourceGenerator

Tasarım zamanı derlemelerine yerine yönetilen kaynak ayrıştırıcısını aaptkullanacak şekilde geçiş yapacak boole özelliği.

Xamarin.Android 8.1'de eklendi.

AndroidUseSharedRuntime

Uygulamayı hedef cihazda çalıştırmak için paylaşılan çalışma zamanı paketlerinin gerekli olup olmadığını belirleyen boole özelliği. Paylaşılan çalışma zamanı paketlerine güvenmek, Uygulama paketinin daha küçük olmasını sağlayarak paket oluşturma ve dağıtım sürecini hızlandırarak daha hızlı bir derleme/dağıtma/hata ayıklama geri dönüş döngüsüne neden olur.

Xamarin.Android 11.2 sürümünden önce, bu özellik Hata ayıklama derlemeleri ve False Yayın projeleri için olmalıdırTrue.

Bu özellik Xamarin.Android 11.2'de kaldırıldı .

AndroidVersionCode

Dosyada AndroidManifest.xml alternatif /manifest/@android:versionCode olarak kullanılabilecek bir MSBuild özelliği. Bu özelliği kabul etmek için seçeneğini de etkinleştirmeniz <GenerateApplicationManifest>true</GenerateApplicationManifest>gerekir. Bu, .NET 6'da ileriye dönük varsayılan değer olacaktır.

Ve kullanılırsa $(AndroidCreatePackagePerAbi) $(AndroidVersionCodePattern) bu özellik yoksayılır.

@android:versionCode , her Google Play sürümü için artırılması gereken bir tamsayı değeridir. gereksinimleri /manifest/@android:versionCodehakkında daha fazla bilgi için Android belgelerine bakın.

Bu özellik için destek Xamarin.Android 11.3'e eklendi.

AndroidVersionCodePattern

Geliştiricinin bildirimdeki öğesini özelleştirmesine versionCode olanak tanıyan bir dize özelliği. Bir karar verme versionCodehakkında bilgi için bkz. APK için Sürüm Kodu Oluşturma.

Bildirimde 123{abi}{versionCode} ve versionCode ise abi armeabi bazı örnekler, true olduğunda $(AndroidCreatePackagePerAbi) versionCode 1123 üretir, aksi takdirde 123 değerini üretir. x86_64 Ise abi ve versionCode bildirimde ise .44 Bu, True olduğunda $(AndroidCreatePackagePerAbi) üretir544, aksi takdirde değerini 44üretir.

Sol doldurma biçim dizesini {abi}{versionCode:0000}eklersek, ile doldurmaya bırakıldığından versionCode 0bu dize oluşturulur50044. Alternatif olarak, ondalık doldurmayı kullanabilirsiniz; örneğin, {abi}{versionCode:D4} önceki örnekle aynı işlemi yapar.

Değer bir tamsayı olması gerektiğinden yalnızca '0' ve 'Dx' doldurma biçimi dizeleri desteklenir.

Önceden tanımlanmış anahtar öğeleri

  • abi – Uygulama için hedeflenen abiyi ekler

    • 2 – armeabi-v7a
    • 3 – x86
    • 4 – arm64-v8a
    • 5 – x86_64
  • minSDK : veya tanımlanmamışsa desteklenen en düşük Sdk değerini AndroidManifest.xml 11 ekler.

  • versionCode – Sürüm kodunu doğrudan öğesinden Properties\AndroidManifest.xmlkullanır.

özelliğini kullanarak $(AndroidVersionCodeProperties) özel öğeler tanımlayabilirsiniz (bundan sonra tanımlanır).

Varsayılan olarak değer olarak {abi}{versionCode:D6}ayarlanır. Bir geliştirici eski davranışı korumak istiyorsa, özelliğini olarak ayarlayarak varsayılanı $(AndroidUseLegacyVersionCode) geçersiz kılabilirsiniz true

Xamarin.Android 7.2'de eklendi.

AndroidVersionCodeProperties

Geliştiricinin ile $(AndroidVersionCodePattern)kullanılacak özel öğeleri tanımlamasına olanak tanıyan bir dize özelliği. Bir çift şeklindedirler key=value . içindeki value tüm öğeler tamsayı değerleri olmalıdır. Örneğin: screen=23;target=$(_AndroidApiLevel). Gördüğünüz gibi dizedeki mevcut veya özel MSBuild özelliklerini kullanabilirsiniz.

Xamarin.Android 7.2'de eklendi.

ApplicationId

Dosyada AndroidManifest.xml alternatif /manifest/@package olarak kullanılabilecek bir MSBuild özelliği. Bu özelliği kabul etmek için seçeneğini de etkinleştirmeniz <GenerateApplicationManifest>true</GenerateApplicationManifest>gerekir. Bu, .NET 6'da ileriye dönük varsayılan değer olacaktır.

gereksinimleri /manifest/@packagehakkında daha fazla bilgi için Android belgelerine bakın.

Bu özellik için destek Xamarin.Android 11.3'e eklendi.

ApplicationTitle

Dosyada AndroidManifest.xml alternatif /manifest/application/@android:label olarak kullanılabilecek bir MSBuild özelliği. Bu özelliği kabul etmek için seçeneğini de etkinleştirmeniz <GenerateApplicationManifest>true</GenerateApplicationManifest>gerekir. Bu, .NET 6'da ileriye dönük varsayılan değer olacaktır.

gereksinimleri /manifest/application/@android:labelhakkında daha fazla bilgi için Android belgelerine bakın.

Bu özellik için destek Xamarin.Android 11.3'e eklendi.

ApplicationVersion

Dosyada AndroidManifest.xml alternatif /manifest/@android:versionName olarak kullanılabilecek bir MSBuild özelliği. Bu özelliği kabul etmek için seçeneğini de etkinleştirmeniz <GenerateApplicationManifest>true</GenerateApplicationManifest>gerekir. Bu, .NET 6'da ileriye dönük varsayılan değer olacaktır.

gereksinimleri /manifest/@android:versionNamehakkında daha fazla bilgi için Android belgelerine bakın.

Bu özellik için destek Xamarin.Android 11.3'e eklendi.

AotAssemblies

Derlemelerin yerel kodda derlenip içine eklenip .apkderlenmeyeceğini belirleyen bir boole özelliği.

Bu özellik için destek Xamarin.Android 5.1'e eklendi.

Bu özellik varsayılan olarakdır False .

AProfUtilExtraOptions

öğesine geçirmek aprofutiliçin ek seçenekler.

BeforeGenerateAndroidManifest

Bu özellikte listelenen MSBuild Hedefleri doğrudan öncesinde _GenerateJavaStubsçalışır.

Xamarin.Android 9.4'te eklendi.

Yapılandırma

"Hata Ayıklama" veya "Yayın" gibi kullanılacak derleme yapılandırmasını belirtir. Configuration özelliği, hedef davranışı belirleyen diğer özelliklerin varsayılan değerlerini belirlemek için kullanılır. IDE'nizde ek yapılandırmalar oluşturulabilir.

Varsayılan olarak, Debug yapılandırma şu şekilde sonuçlanır: Install ve SignAndroidPackage , çalışması için diğer dosyaların ve paketlerin varlığını gerektiren daha küçük bir Android paketi oluşturmayı hedefler.

Varsayılan Release yapılandırma, Install ve SignAndroidPackagetek başına bir Android paketi oluşturmayı hedefler ve başka paket veya dosya yüklemeden kullanılabilir.

DebugSymbols

Özelliğiyle birlikte Android paketinin hata ayıklanabilir olup olmadığını belirleyen boole $(DebugType) değeri. Hata ayıklanabilir paket hata ayıklama simgeleri içerir, özniteliğini olarak trueayarlar //application/@android:debuggable ve otomatik olarak öğesini eklerINTERNET bir hata ayıklayıcının işleme ekleyebilmesi için izin. Bir uygulama, boş dize veya Fullise True DebugSymbols DebugType hata ayıklanabilir.

DebugType

Derlemenin bir parçası olarak oluşturulacak hata ayıklama simgelerinin türünü belirtir ve bu da Uygulamanın hata ayıklanabilir olup olmadığını etkiler. Olası değerler arasında şunlar bulunur:

  • Tam: Tam simgeler oluşturulur. DebugSymbols MSBuild özelliği de Trueolur, ardından Uygulama paketi hata ayıklanabilir.

  • PdbOnly: "PDB" simgeleri oluşturulur. Uygulama paketi hata ayıklanamaz.

Ayarlanmadıysa DebugType veya boş dizeyse, DebugSymbols özelliği Uygulamanın hata ayıklanabilir olup olmadığını denetler.

EmbedAssembliesIntoApk

Uygulamanın derlemelerinin Uygulama paketine eklenip eklenmeyeceğini belirleyen boole özelliği.

Bu özellik Yayın derlemeleri ve False Hata Ayıklama derlemeleri için olmalıdırTrue. Hızlı Dağıtım hedef cihazı desteklemiyorsa Hata ayıklama derlemelerinde olması True gerekebilir.

Bu özellik olduğunda False, $(AndroidFastDeploymentType) MSBuild özelliği, içine nelerin eklenip eklenmeyeceklerini .apkde denetler ve bu da dağıtım ve yeniden oluşturma sürelerini etkileyebilir.

EnableLLVM

LLVM'nin, derlemeleri yerel koda derlerken kullanılıp kullanılmayacağını belirleyen boole özelliği.

Bu özelliğin etkinleştirildiği bir proje oluşturmak için Android NDK yüklenmelidir.

Bu özellik için destek Xamarin.Android 5.1'e eklendi.

Bu özellik varsayılan olarakdır False .

MSBuild özelliği olmadığı sürece $(AotAssemblies) bu özellik yoksayılır True.

EnableProguard

Java kodunu bağlamak için paketleme işleminin bir parçası olarak proguard çalıştırılıp çalıştırılmayacağını belirleyen boole özelliği.

Bu özellik için destek Xamarin.Android 5.1'e eklendi.

Bu özellik varsayılan olarakdır False .

Yürütmeyi denetlemek için @(ProguardConfiguration) dosyaları kullanılacağındaTrue.proguard

GenerateApplicationManifest

Son AndroidManifest.xml dosyadaki değerleri yayan aşağıdaki MSBuild özelliklerini etkinleştirir veya devre dışı bırakır:

Varsayılan değer $(GenerateApplicationManifest) .NET 6'da ve false "eski" Xamarin.Android'dedirtrue.

Bu özellik için destek Xamarin.Android 11.3'e eklendi.

JavaMaximumHeapSize

Dosyayı paketleme işleminin bir parçası olarak oluştururken .dex kullanılacak java-Xmx parametre değerini belirtir. Belirtilmezse seçeneği -Xmx java 1Gdeğerini sağlar. Bunun diğer platformlara kıyasla Windows'ta yaygın olarak gerekli olduğu bulunmuştur.

Aşağıdakileri değiştirerek değeri özelleştirin:

<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>

JavaOptions

Dosyayı oluştururken .dex java'ya geçirmek için komut satırı seçeneklerini belirtir.

JarsignerTimestampAuthorityCertificateAlias

Bu özellik, bir zaman damgası yetkilisi için anahtar deposunda bir diğer ad belirtmenize olanak tanır. Daha fazla ayrıntı için Java İmzası Zaman Damgası Desteği belgelerine bakın.

<PropertyGroup>
    <JarsignerTimestampAuthorityCertificateAlias>Alias</JarsignerTimestampAuthorityCertificateAlias>
</PropertyGroup>

JarsignerTimestampAuthorityUrl

Bu özellik, bir zaman damgası yetkilisi hizmetinin URL'sini belirtmenize olanak tanır. Bu, imzanızın .apk bir zaman damgası içerdiğini emin olmak için kullanılabilir. Daha fazla ayrıntı için Java İmzası Zaman Damgası Desteği belgelerine bakın.

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

LinkerDumpDependencies

Bağlayıcı bağımlılıkları dosyasının oluşturulmasını sağlayan bool özelliği. Bu dosya illinkanalyzer aracı için giriş olarak kullanılabilir.

adlı linker-dependencies.xml.gz bağımlılıklar dosyası proje dizinine yazılır. Üzerinde. NET5/6 dizindeki bağlı derlemelerin obj/<Configuration>/android<ABI>/linked yanına yazılır.

Varsayılan değer False'tur.

MandroidI18n

Harmanlama ve sıralama tabloları gibi Uygulamaya dahil edilen uluslararasılaştırma desteğini belirtir. Değer, aşağıdaki büyük/küçük harfe duyarlı olmayan değerlerden birinin veya daha fazlasının virgülle veya noktalı virgülle ayrılmış bir listesidir:

  • Hiçbiri: Ek kodlama ekleme.

  • Tümü: Kullanılabilir tüm kodlamaları dahil edin.

  • CJK: Japonca (EUC) [enc-jp, CP51932], Japonca (Shift-JIS) [iso-2022-jp, shift_jis, CP932], Japonca (JIS) [CP50220], Çince Basitleştirilmiş (GB2312) [gb2312, CP936], Korece (UHC) [ks_c_5601-1987, CP949], Korece (EUC) [euc-kr, CP51949], Geleneksel Çince (Big5) [big5, CP950]ve Çince Basitleştirilmiş (GB18030) [GB18030, CP54936].

  • Orta Düzey: Türkçe (Windows) [iso-8859-9, CP1254] , İbranice (Windows) [windows-1255, CP1255], Arapça (Windows) [windows-1256, CP1256], Arapça (ISO) [iso-8859-6, CP28596], İbranice (ISO) [iso-8859-8, CP28598], Latin 5 (ISO) [iso-8859-9, CP28599] ve İbranice (Iso Alternatifi) [iso-8859-8, CP38598].

  • Diğer: Kiril (Windows) [CP1251], Baltık (Windows) [iso-8859-4, CP1257], Vietnamca (Windows) [CP1258], Kiril (KOI8-R) [koi8-r, CP1251], Ukrayna dili (KOI8-U) [koi8-u, CP1251], Baltık (ISO) [iso-8859-4, CP1257], Kiril (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]ve Tay dili (Windows) [CP874].

  • Nadir: IBM EBCDIC (Türkçe) [CP1026], IBM EBCDIC (Open Systems Latin 1) [CP1047], IBM EBCDIC (EURO ile ABD-Kanada) [CP1140], IBM EBCDIC (Euro ile Almanya) [CP1141], IBM EBCDIC (Danimarka/Euro ile Norveç) [CP1142], IBM EBCDIC (Euro ile Finlandiya/İsveç) [CP1143], IBM EBCDIC (Euro ile İtalya) [CP1144], IBM EBCDIC (Latin Amerika/İspanya- Euro) [CP1145], IBM EBCDIC (Euro ile Birleşik Krallık) [CP1146], IBM EBCDIC (Fransa, Euro) [CP1147], IBM EBCDIC (Euro ile Uluslararası) [CP1148], IBM EBCDIC (Euro ile İzlanda) [CP1149], IBM EBCDIC (Almanya) [CP20273], IBM EBCDIC (Danimarka/Norveç) [CP20277], IBM EBCDIC (Finlandiya/İsveç) [CP20278], IBM EBCDIC (İtalya) [CP20280], IBM EBCDIC (Latin Amerika/İspanya) [CP20284], IBM EBCDIC (Birleşik Krallık) [CP20285], IBM EBCDIC (Japon Katakana Extended) [CP20290], IBM EBCDIC (Fransa) [CP20297], IBM EBCDIC (Arapça) [CP20420], IBM EBCDIC (İbranice) [CP20424], IBM EBCDIC (İzlandaca) [CP20871], IBM EBCDIC (Kiril - Sırp, Bulgarca) [CP21025], IBM EBCDIC (ABD-Kanada) [CP37], IBM EBCDIC (Uluslararası) [CP500], Arapça (ASMO 708) [CP708], Orta Avrupa (DOS) [CP852], Kiril (DOS) [CP855], Türkçe (DOS) [CP857], Batı Avrupa (DoS- Euro) [CP858], İbranice (DOS) [CP862], Arapça (DOS) [CP864], Rusça (DOS) [CP866], Yunanca (DOS) [CP869], IBM EBCDIC (Latin 2) [CP870]ve IBM EBCDIC (Yunanca) [CP875].

  • Batı: Batı Avrupa (Mac) [macintosh, CP10000], İzlandaca (Mac) [x-mac-İzlandaca, CP10079], Orta Avrupa (Windows) [iso-8859-2, CP1250], Batı Avrupa (Windows) [iso-8859-1, CP1252], Yunanca (Windows) [iso-8859-7, CP1253], Orta Avrupa (ISO) [iso-8859-2, CP28592], Latin 3 (ISO) [iso-8859-3, CP28593], Yunanca (ISO) [iso-8859-7, CP28597], Latin 9 (ISO) [iso-8859-15, CP28605], OEM Birleşik Devletler [CP437], Batı Avrupa (DOS) [CP850], Portekizce (DOS) [CP860], İzlandaca (DOS) [CP861], Fransızca Kanada (DOS) [CP863]ve İskandinav (DOS) [CP865].

<MandroidI18n>West</MandroidI18n>

MonoAndroidResourcePrefix

Dosya adlarının başlangıcından kaldırılan bir yol ön ekini AndroidResourcebuild eylemiyle belirtir. Bu, kaynakların bulunduğu yeri değiştirmeye izin vermektir.

Varsayılan değer şudur: Resources. Java proje yapısı için bunu olarak res değiştirin.

MonoSymbolArchive

Yayın yığını izlemelerinden "gerçek" dosya adı ve satır numarası bilgilerini ayıklamak için ile daha sonra kullanmak mono-symbolicateüzere yapıt oluşturulup oluşturulmayacağını .mSYM denetleyen boole özelliği.

Hata ayıklama simgelerinin etkinleştirildiği "Yayın" uygulamaları için bu varsayılan olarak True'dur: $(EmbedAssembliesIntoApk) True, $(DebugSymbols) True ve $(Optimize) True değeridir.

Xamarin.Android 7.1'de eklendi.