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 adb
aynı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 true
izin 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 -digestalg
kullanı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 -sigalg
kullanı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 as
gibi ld
Android 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.Stream
Android.Runtime.JavaDictionary
System.Collections.IDictionary
veya ) 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ğinInputStreamInvoker
yerine 'denStream.Read()
oluşturulabileceğinden API'yiJava.IO.IOException
System.IO.IOException
dü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.Stream
veStream.Read()
örnekleri oluşturmayacağıJava.IO.IOException
anlamına gelir. (Bunun yerine değeri içeren birSystem.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 MyInterface
statik ü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 IMyInterfaceMyNestedClass
iç 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)
aab
geç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-parse
hata ayıklama sembollerini (ilejavac -g
derlenmiş 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ırMono.Android.dll
.
Avantajları XAJavaInterop1
şunlardır:
Daha küçük derlemeler.
jmethodID
devralma hiyerarşisindeki diğer tüm bağlama türleri veya üzeri ileXAJavaInterop1
derlenmiş olduğu sürece yöntem çağrıları içinbase
ö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.keystore
belirtir. Varsayılan değer şudur: RSA
.
AndroidDebugKeyValidity
için debug.keystore
kullanılacak varsayılan geçerliliği belirtir. Varsayılan değer veya 30 * 365
30 years
şeklindedir10950
.
AndroidDebugStoreType
için debug.keystore
kullanı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 d8
geç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ı desugar
bayt 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 .apk
iç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 True
ayarlandığı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 False
ayarlandığı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 logcat
iletiyi 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.IJavaObject
belirleyen 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 true
izin 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 False
olduğ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 .apk
iç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
. BuDexes
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 , -d
veya --keeptemp
gibi -v
seç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 false
tamamen devre dışı bırakır. Varsayılan değer şudur: false
.
AndroidGenerateResourceDesigner
Varsayılan değer şudur: true
. olarak false
ayarlandığında, oluşturulmasını Resource.designer.cs
devre 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önetilenHttpMessageHandler
kullanı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_TYPE
ayarlayarak ç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 AndroidNativeLibrary
kullanı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 intellisense
olası değerleriyle full
numaralandırılır:
intellisense
: Yalnızca XML açıklamalarını yayar:<exception/>
,<param/>
,<returns/>
,<summary/>
.full
: Öğeleri, ayrıca<remarks/>
,<seealso/>
ve desteklenebilir diğer her şeyi yayınintellisense
.
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 False
değ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 r8
geç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.xml
değ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 .csproj
ekleyebilirsiniz.
<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>
Xamarin.Android 11.x ile kullanıma sunulmuştur
AndroidManifestType
veya GoogleV2
geç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=value
sahip 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.MainDexListBuilder
a 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 .csproj
ekleyebilirsiniz.
<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 aab
geç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:
$(AndroidUseAapt2)
True
.$(AndroidUseApkSigner)
False
.$(AndroidCreatePackagePerAbi)
False
.
Bu özellik .net 6 için kullanım dışı bırakılacak. Kullanıcılar yeni AndroidPackageFormats
öğesine geçmelidir.
AndroidPackageFormats
ve aab
geç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 r8
proguard 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.txt
oluş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 r8
proguard 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.cs
ayarlar.
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.targets
varsayı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.txt
bulunan bir dosyayı kullanmak için:
<PropertyGroup>
<AndroidSigningKeyPass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningKeyPass>
</PropertyGroup>
Not
env:
ön ek olarak ayarlandığında aab
desteklenmez$(AndroidPackageFormat)
.
AndroidSigningKeyStore
tarafından keytool
oluş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.txt
bulunan bir dosyayı kullanmak için:
<PropertyGroup>
<AndroidSigningStorePass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningStorePass>
</PropertyGroup>
Not
env:
ön ek olarak ayarlandığında aab
desteklenmez$(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 .apk
gereken, 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
btls
eşdeğerdir.Xamarin.Android 7.1'de bu, ile
legacy
eş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
legacy
eş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 jarsigner
kullanması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 false
ayarlayı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ı aapt
kullanacak ş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:versionCode
hakkı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 versionCode
hakkı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
0
bu 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
- 2 –
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.xml
kullanı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/@package
hakkı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.
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:versionName
hakkı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 .apk
derlenmeyeceğ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 aprofutil
iç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 SignAndroidPackage
tek 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 true
ayarlar //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 Full
ise 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 deTrue
olur, 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 .apk
de 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 1G
değ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 AndroidResource
build 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.