From 6aa55419e6413c4eb88bb40345a279a7c98e0575 Mon Sep 17 00:00:00 2001 From: Marek Habersack Date: Thu, 17 Mar 2022 22:50:06 +0100 Subject: [PATCH 1/2] Strip AOT shared libraries when linking Fixes: https://github.com/xamarin/xamarin-android/issues/6840 Context: https://github.com/xamarin/xamarin-android/pull/6683 Pass the `-s` flag to the native linker in order to produce shared AOT libraries without debug symbols. Symbols are stripped unless the `$(DebugSymbols)` property is set to `True`. --- .../targets/Microsoft.Android.Sdk.Aot.targets | 3 ++- ...oft.Android.Sdk.AssemblyResolution.targets | 20 ------------------- .../Microsoft.Android.Sdk.BuildOrder.targets | 1 - .../Tasks/GetAotArguments.cs | 14 ++++++++++++- .../Xamarin.Android.Common.targets | 1 + .../Xamarin.Android.Legacy.targets | 3 ++- 6 files changed, 18 insertions(+), 24 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Aot.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Aot.targets index a4bfa2b4cef..381a8b963aa 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Aot.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Aot.targets @@ -58,7 +58,8 @@ They run in a context of an inner build with a single $(RuntimeIdentifier). AotOutputDirectory="$(_AndroidAotBinDirectory)" RuntimeIdentifier="$(RuntimeIdentifier)" EnableLLVM="$(EnableLLVM)" - Profiles="@(AndroidAotProfile)"> + Profiles="@(AndroidAotProfile)" + StripLibraries="$(_AndroidAotStripLibraries)"> diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets index d3c485ee4a1..5cd7737d44e 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets @@ -204,26 +204,6 @@ _ResolveAssemblies MSBuild target. IncludeDebugSymbols="$(AndroidIncludeDebugSymbols)"> - - <_StrippedFrameworkNativeLibrary Include="@(FrameworkNativeLibrary->'$(IntermediateOutputPath)native\%(RuntimeIdentifier)\%(Filename)%(Extension)')" /> - - - - - - - - - - diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets index 418f95bd059..2099fa39190 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets @@ -74,7 +74,6 @@ projects, these properties are set in Xamarin.Android.Legacy.targets. _CheckApkPerAbiFlag; _LintChecks; _IncludeNativeSystemLibraries; - _StripFrameworkNativeLibraries; _CheckGoogleSdkRequirements; diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/GetAotArguments.cs b/src/Xamarin.Android.Build.Tasks/Tasks/GetAotArguments.cs index e060844ab81..fb622d02782 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/GetAotArguments.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/GetAotArguments.cs @@ -47,6 +47,8 @@ public abstract class GetAotArguments : AndroidAsyncTask public bool EnableLLVM { get; set; } + public bool StripLibraries { get; set; } + public string AndroidSequencePointsMode { get; set; } = ""; public ITaskItem [] Profiles { get; set; } = Array.Empty (); @@ -291,7 +293,17 @@ string GetLdFlags(NdkTools ndk, AndroidTargetArch arch, int level, string toolPr ldFlags = $"\\\"{string.Join ("\\\";\\\"", libs)}\\\""; } - return ldFlags; + + if (!StripLibraries) { + return ldFlags; + } + + const string StripFlag = "-s"; + if (ldFlags.Length == 0) { + return StripFlag; + } + + return $"{ldFlags} {StripFlag}"; } static string GetNdkToolchainLibraryDir (NdkTools ndk, string binDir, string archDir = null) diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index 0b142a3b767..a4c86f9a8ef 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -193,6 +193,7 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. None True False + <_AndroidAotStripLibraries Condition=" '$(_AndroidAotStripLibraries)' == '' And '$(AndroidIncludeDebugSymbols)' != 'true' ">True + Profiles="@(_AotProfiles)" + StripLibraries="$(_AndroidAotStripLibraries)"> From c1aea021e1c7249bdf522a9241d3ff2197dee507 Mon Sep 17 00:00:00 2001 From: Marek Habersack Date: Fri, 18 Mar 2022 16:53:08 +0100 Subject: [PATCH 2/2] Fix test failures --- .../Xamarin.Android.Build.Tests/XASdkTests.cs | 7 - .../Xamarin.Android.Common.targets | 2 +- ...nce_Integration-Signed-Release-Aot.apkdesc | 238 ++++++++-------- ...ration-Signed-Release-Profiled-Aot.apkdesc | 262 ++++++++++++------ 4 files changed, 290 insertions(+), 219 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs index 01accf3e5b5..680122c3017 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs @@ -598,13 +598,6 @@ public void DotNetBuild (string runtimeIdentifiers, bool isRelease, bool aot, bo } var rids = runtimeIdentifiers.Split (';'); - if (isRelease) { - // Check for stripped native libraries - foreach (var rid in rids) { - FileAssert.Exists (Path.Combine (intermediateOutputPath, "native", rid, "libmono-android.release.so")); - FileAssert.Exists (Path.Combine (intermediateOutputPath, "native", rid, "libmonosgen-2.0.so")); - } - } // Check AndroidManifest.xml var manifestPath = Path.Combine (intermediateOutputPath, "android", "AndroidManifest.xml"); diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index a4c86f9a8ef..fd3986af3f4 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -193,7 +193,6 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. None True False - <_AndroidAotStripLibraries Condition=" '$(_AndroidAotStripLibraries)' == '' And '$(AndroidIncludeDebugSymbols)' != 'true' ">True + <_AndroidAotStripLibraries Condition=" '$(_AndroidAotStripLibraries)' == '' And '$(AndroidIncludeDebugSymbols)' != 'true' ">True false true diff --git a/tests/apk-sizes-reference/Xamarin.Forms_Performance_Integration-Signed-Release-Aot.apkdesc b/tests/apk-sizes-reference/Xamarin.Forms_Performance_Integration-Signed-Release-Aot.apkdesc index 1c6d5bc791d..eb81e49feb7 100644 --- a/tests/apk-sizes-reference/Xamarin.Forms_Performance_Integration-Signed-Release-Aot.apkdesc +++ b/tests/apk-sizes-reference/Xamarin.Forms_Performance_Integration-Signed-Release-Aot.apkdesc @@ -8,16 +8,16 @@ "Size": 7199 }, "assemblies/Java.Interop.dll": { - "Size": 68737 + "Size": 68917 }, "assemblies/Mono.Android.dll": { - "Size": 565324 + "Size": 565252 }, "assemblies/Mono.Security.dll": { "Size": 68437 }, "assemblies/mscorlib.dll": { - "Size": 936188 + "Size": 936224 }, "assemblies/Newtonsoft.Json.dll": { "Size": 319336 @@ -29,22 +29,22 @@ "Size": 10201 }, "assemblies/System.Core.dll": { - "Size": 192217 + "Size": 192216 }, "assemblies/System.Data.dll": { - "Size": 316113 + "Size": 316112 }, "assemblies/System.dll": { "Size": 443207 }, "assemblies/System.Drawing.Common.dll": { - "Size": 16351 + "Size": 16350 }, "assemblies/System.Net.Http.dll": { - "Size": 113293 + "Size": 113291 }, "assemblies/System.Numerics.dll": { - "Size": 23260 + "Size": 23262 }, "assemblies/System.Runtime.Serialization.dll": { "Size": 193454 @@ -53,61 +53,61 @@ "Size": 26599 }, "assemblies/System.Xml.dll": { - "Size": 592571 + "Size": 592570 }, "assemblies/System.Xml.Linq.dll": { "Size": 34373 }, "assemblies/Xamarin.AndroidX.Activity.dll": { - "Size": 7694 + "Size": 7696 }, "assemblies/Xamarin.AndroidX.AppCompat.dll": { - "Size": 124587 + "Size": 124594 }, "assemblies/Xamarin.AndroidX.AppCompat.Resources.dll": { - "Size": 6661 + "Size": 6663 }, "assemblies/Xamarin.AndroidX.CardView.dll": { - "Size": 7363 + "Size": 7370 }, "assemblies/Xamarin.AndroidX.CoordinatorLayout.dll": { - "Size": 18269 + "Size": 18280 }, "assemblies/Xamarin.AndroidX.Core.dll": { - "Size": 131928 + "Size": 131931 }, "assemblies/Xamarin.AndroidX.DrawerLayout.dll": { - "Size": 15442 + "Size": 15447 }, "assemblies/Xamarin.AndroidX.Fragment.dll": { - "Size": 43128 + "Size": 43143 }, "assemblies/Xamarin.AndroidX.Legacy.Support.Core.UI.dll": { - "Size": 6710 + "Size": 6716 }, "assemblies/Xamarin.AndroidX.Lifecycle.Common.dll": { - "Size": 7063 + "Size": 7071 }, "assemblies/Xamarin.AndroidX.Lifecycle.LiveData.Core.dll": { - "Size": 7191 + "Size": 7195 }, "assemblies/Xamarin.AndroidX.Lifecycle.ViewModel.dll": { - "Size": 4870 + "Size": 4881 }, "assemblies/Xamarin.AndroidX.Loader.dll": { - "Size": 13581 + "Size": 13585 }, "assemblies/Xamarin.AndroidX.RecyclerView.dll": { - "Size": 102429 + "Size": 102442 }, "assemblies/Xamarin.AndroidX.SavedState.dll": { - "Size": 6271 + "Size": 6282 }, "assemblies/Xamarin.AndroidX.SwipeRefreshLayout.dll": { - "Size": 11269 + "Size": 11272 }, "assemblies/Xamarin.AndroidX.ViewPager.dll": { - "Size": 19428 + "Size": 19438 }, "assemblies/Xamarin.Forms.Core.dll": { "Size": 471887 @@ -116,10 +116,10 @@ "Size": 22005 }, "assemblies/Xamarin.Forms.Performance.Integration.Droid.dll": { - "Size": 114913 + "Size": 114915 }, "assemblies/Xamarin.Forms.Platform.Android.dll": { - "Size": 367737 + "Size": 367756 }, "assemblies/Xamarin.Forms.Platform.dll": { "Size": 56584 @@ -128,136 +128,136 @@ "Size": 55034 }, "assemblies/Xamarin.Google.Android.Material.dll": { - "Size": 43506 + "Size": 43511 }, "classes.dex": { - "Size": 2652924 + "Size": 2639828 }, "lib/armeabi-v7a/libaot-FormsViewGroup.dll.so": { - "Size": 45364 + "Size": 16616 }, "lib/armeabi-v7a/libaot-Java.Interop.dll.so": { - "Size": 1231332 + "Size": 354928 }, "lib/armeabi-v7a/libaot-Mono.Android.dll.so": { - "Size": 8915144 + "Size": 2743120 }, "lib/armeabi-v7a/libaot-Mono.Security.dll.so": { - "Size": 627000 + "Size": 209664 }, "lib/armeabi-v7a/libaot-mscorlib.dll.so": { - "Size": 11543188 + "Size": 3935816 }, "lib/armeabi-v7a/libaot-Newtonsoft.Json.dll.so": { - "Size": 4372444 + "Size": 1379304 }, "lib/armeabi-v7a/libaot-Plugin.Connectivity.Abstractions.dll.so": { - "Size": 24340 + "Size": 5648 }, "lib/armeabi-v7a/libaot-Plugin.Connectivity.dll.so": { - "Size": 83940 + "Size": 21280 }, "lib/armeabi-v7a/libaot-System.Core.dll.so": { - "Size": 2961476 + "Size": 864768 }, "lib/armeabi-v7a/libaot-System.Data.dll.so": { - "Size": 4404348 + "Size": 1590664 }, "lib/armeabi-v7a/libaot-System.dll.so": { - "Size": 5337264 + "Size": 1773592 }, "lib/armeabi-v7a/libaot-System.Drawing.Common.dll.so": { - "Size": 84568 + "Size": 36528 }, "lib/armeabi-v7a/libaot-System.Net.Http.dll.so": { - "Size": 1508424 + "Size": 528832 }, "lib/armeabi-v7a/libaot-System.Numerics.dll.so": { - "Size": 197448 + "Size": 86760 }, "lib/armeabi-v7a/libaot-System.Runtime.Serialization.dll.so": { - "Size": 2879608 + "Size": 807280 }, "lib/armeabi-v7a/libaot-System.ServiceModel.Internals.dll.so": { - "Size": 235400 + "Size": 69960 }, "lib/armeabi-v7a/libaot-System.Xml.dll.so": { - "Size": 7876800 + "Size": 2867400 }, "lib/armeabi-v7a/libaot-System.Xml.Linq.dll.so": { - "Size": 410784 + "Size": 124816 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Activity.dll.so": { - "Size": 59408 + "Size": 16920 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.AppCompat.dll.so": { - "Size": 2092912 + "Size": 594160 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.AppCompat.Resources.dll.so": { - "Size": 50416 + "Size": 13976 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.CardView.dll.so": { - "Size": 59388 + "Size": 18680 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.CoordinatorLayout.dll.so": { - "Size": 272676 + "Size": 78928 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Core.dll.so": { - "Size": 2189164 + "Size": 628360 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.DrawerLayout.dll.so": { - "Size": 192216 + "Size": 56856 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Fragment.dll.so": { - "Size": 633088 + "Size": 180608 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Legacy.Support.Core.UI.dll.so": { - "Size": 48452 + "Size": 14264 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Lifecycle.Common.dll.so": { - "Size": 51904 + "Size": 13808 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Lifecycle.LiveData.Core.dll.so": { - "Size": 52512 + "Size": 15936 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Lifecycle.ViewModel.dll.so": { - "Size": 24612 + "Size": 6720 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Loader.dll.so": { - "Size": 145424 + "Size": 40792 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.RecyclerView.dll.so": { - "Size": 1794660 + "Size": 474128 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.SavedState.dll.so": { - "Size": 41572 + "Size": 10880 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.SwipeRefreshLayout.dll.so": { - "Size": 116716 + "Size": 30736 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.ViewPager.dll.so": { - "Size": 250088 + "Size": 70864 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Core.dll.so": { - "Size": 6954228 + "Size": 2220224 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Performance.Integration.dll.so": { - "Size": 309552 + "Size": 91592 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Performance.Integration.Droid.dll.so": { - "Size": 281164 + "Size": 218424 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Platform.Android.dll.so": { - "Size": 4833316 + "Size": 1486304 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Platform.dll.so": { - "Size": 146100 + "Size": 108168 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Xaml.dll.so": { - "Size": 680912 + "Size": 228200 }, "lib/armeabi-v7a/libaot-Xamarin.Google.Android.Material.dll.so": { - "Size": 749908 + "Size": 201696 }, "lib/armeabi-v7a/libmono-btls-shared.so": { "Size": 1112688 @@ -269,139 +269,139 @@ "Size": 235164 }, "lib/armeabi-v7a/libmonosgen-2.0.so": { - "Size": 4456576 + "Size": 4456612 }, "lib/armeabi-v7a/libxa-internal-api.so": { "Size": 48844 }, "lib/armeabi-v7a/libxamarin-app.so": { - "Size": 142832 + "Size": 141260 }, "lib/x86/libaot-FormsViewGroup.dll.so": { - "Size": 37964 + "Size": 14860 }, "lib/x86/libaot-Java.Interop.dll.so": { - "Size": 849884 + "Size": 312116 }, "lib/x86/libaot-Mono.Android.dll.so": { - "Size": 6416724 + "Size": 2408732 }, "lib/x86/libaot-Mono.Security.dll.so": { - "Size": 429788 + "Size": 178308 }, "lib/x86/libaot-mscorlib.dll.so": { - "Size": 8422168 + "Size": 3391844 }, "lib/x86/libaot-Newtonsoft.Json.dll.so": { - "Size": 3289008 + "Size": 1172140 }, "lib/x86/libaot-Plugin.Connectivity.Abstractions.dll.so": { - "Size": 17524 + "Size": 4940 }, "lib/x86/libaot-Plugin.Connectivity.dll.so": { - "Size": 67364 + "Size": 17228 }, "lib/x86/libaot-System.Core.dll.so": { - "Size": 2287256 + "Size": 734556 }, "lib/x86/libaot-System.Data.dll.so": { - "Size": 3106352 + "Size": 1324044 }, "lib/x86/libaot-System.dll.so": { - "Size": 3816660 + "Size": 1491028 }, "lib/x86/libaot-System.Drawing.Common.dll.so": { - "Size": 66640 + "Size": 33452 }, "lib/x86/libaot-System.Net.Http.dll.so": { - "Size": 1158812 + "Size": 452348 }, "lib/x86/libaot-System.Numerics.dll.so": { - "Size": 155756 + "Size": 74292 }, "lib/x86/libaot-System.Runtime.Serialization.dll.so": { - "Size": 2180408 + "Size": 675188 }, "lib/x86/libaot-System.ServiceModel.Internals.dll.so": { - "Size": 188936 + "Size": 59588 }, "lib/x86/libaot-System.Xml.dll.so": { - "Size": 5685348 + "Size": 2407948 }, "lib/x86/libaot-System.Xml.Linq.dll.so": { - "Size": 310800 + "Size": 100668 }, "lib/x86/libaot-Xamarin.AndroidX.Activity.dll.so": { - "Size": 47704 + "Size": 14940 }, "lib/x86/libaot-Xamarin.AndroidX.AppCompat.dll.so": { - "Size": 1559952 + "Size": 528244 }, "lib/x86/libaot-Xamarin.AndroidX.AppCompat.Resources.dll.so": { - "Size": 38108 + "Size": 12420 }, "lib/x86/libaot-Xamarin.AndroidX.CardView.dll.so": { - "Size": 44488 + "Size": 16164 }, "lib/x86/libaot-Xamarin.AndroidX.CoordinatorLayout.dll.so": { - "Size": 209368 + "Size": 67748 }, "lib/x86/libaot-Xamarin.AndroidX.Core.dll.so": { - "Size": 1638520 + "Size": 568100 }, "lib/x86/libaot-Xamarin.AndroidX.DrawerLayout.dll.so": { - "Size": 146636 + "Size": 49420 }, "lib/x86/libaot-Xamarin.AndroidX.Fragment.dll.so": { - "Size": 475108 + "Size": 158164 }, "lib/x86/libaot-Xamarin.AndroidX.Legacy.Support.Core.UI.dll.so": { - "Size": 36280 + "Size": 12588 }, "lib/x86/libaot-Xamarin.AndroidX.Lifecycle.Common.dll.so": { - "Size": 38132 + "Size": 12180 }, "lib/x86/libaot-Xamarin.AndroidX.Lifecycle.LiveData.Core.dll.so": { - "Size": 42128 + "Size": 13932 }, "lib/x86/libaot-Xamarin.AndroidX.Lifecycle.ViewModel.dll.so": { - "Size": 21056 + "Size": 5908 }, "lib/x86/libaot-Xamarin.AndroidX.Loader.dll.so": { - "Size": 110992 + "Size": 35236 }, "lib/x86/libaot-Xamarin.AndroidX.RecyclerView.dll.so": { - "Size": 1390192 + "Size": 416692 }, "lib/x86/libaot-Xamarin.AndroidX.SavedState.dll.so": { - "Size": 34452 + "Size": 9796 }, "lib/x86/libaot-Xamarin.AndroidX.SwipeRefreshLayout.dll.so": { - "Size": 93024 + "Size": 26748 }, "lib/x86/libaot-Xamarin.AndroidX.ViewPager.dll.so": { - "Size": 191132 + "Size": 60932 }, "lib/x86/libaot-Xamarin.Forms.Core.dll.so": { - "Size": 5116508 + "Size": 1835076 }, "lib/x86/libaot-Xamarin.Forms.Performance.Integration.dll.so": { - "Size": 227528 + "Size": 81124 }, "lib/x86/libaot-Xamarin.Forms.Performance.Integration.Droid.dll.so": { - "Size": 184160 + "Size": 134180 }, "lib/x86/libaot-Xamarin.Forms.Platform.Android.dll.so": { - "Size": 3643272 + "Size": 1208028 }, "lib/x86/libaot-Xamarin.Forms.Platform.dll.so": { - "Size": 94904 + "Size": 67724 }, "lib/x86/libaot-Xamarin.Forms.Xaml.dll.so": { - "Size": 509984 + "Size": 184252 }, "lib/x86/libaot-Xamarin.Google.Android.Material.dll.so": { - "Size": 583296 + "Size": 178404 }, "lib/x86/libmono-btls-shared.so": { "Size": 1459584 @@ -413,13 +413,13 @@ "Size": 306828 }, "lib/x86/libmonosgen-2.0.so": { - "Size": 4212336 + "Size": 4212360 }, "lib/x86/libxa-internal-api.so": { "Size": 61112 }, "lib/x86/libxamarin-app.so": { - "Size": 141596 + "Size": 140024 }, "META-INF/android.support.design_material.version": { "Size": 12 @@ -2243,5 +2243,5 @@ "Size": 347268 } }, - "PackageSize": 41891012 + "PackageSize": 26875076 } \ No newline at end of file diff --git a/tests/apk-sizes-reference/Xamarin.Forms_Performance_Integration-Signed-Release-Profiled-Aot.apkdesc b/tests/apk-sizes-reference/Xamarin.Forms_Performance_Integration-Signed-Release-Profiled-Aot.apkdesc index 06632826252..c89130ba683 100644 --- a/tests/apk-sizes-reference/Xamarin.Forms_Performance_Integration-Signed-Release-Profiled-Aot.apkdesc +++ b/tests/apk-sizes-reference/Xamarin.Forms_Performance_Integration-Signed-Release-Profiled-Aot.apkdesc @@ -8,16 +8,16 @@ "Size": 7199 }, "assemblies/Java.Interop.dll": { - "Size": 68737 + "Size": 68917 }, "assemblies/Mono.Android.dll": { - "Size": 565323 + "Size": 565252 }, "assemblies/Mono.Security.dll": { "Size": 68437 }, "assemblies/mscorlib.dll": { - "Size": 936188 + "Size": 936224 }, "assemblies/Newtonsoft.Json.dll": { "Size": 319336 @@ -29,22 +29,22 @@ "Size": 10201 }, "assemblies/System.Core.dll": { - "Size": 192217 + "Size": 192216 }, "assemblies/System.Data.dll": { - "Size": 316113 + "Size": 316112 }, "assemblies/System.dll": { "Size": 443207 }, "assemblies/System.Drawing.Common.dll": { - "Size": 16351 + "Size": 16350 }, "assemblies/System.Net.Http.dll": { - "Size": 113293 + "Size": 113291 }, "assemblies/System.Numerics.dll": { - "Size": 23260 + "Size": 23262 }, "assemblies/System.Runtime.Serialization.dll": { "Size": 193454 @@ -53,61 +53,61 @@ "Size": 26599 }, "assemblies/System.Xml.dll": { - "Size": 592571 + "Size": 592570 }, "assemblies/System.Xml.Linq.dll": { "Size": 34373 }, "assemblies/Xamarin.AndroidX.Activity.dll": { - "Size": 7694 + "Size": 7696 }, "assemblies/Xamarin.AndroidX.AppCompat.dll": { - "Size": 124587 + "Size": 124594 }, "assemblies/Xamarin.AndroidX.AppCompat.Resources.dll": { - "Size": 6661 + "Size": 6663 }, "assemblies/Xamarin.AndroidX.CardView.dll": { - "Size": 7363 + "Size": 7370 }, "assemblies/Xamarin.AndroidX.CoordinatorLayout.dll": { - "Size": 18269 + "Size": 18280 }, "assemblies/Xamarin.AndroidX.Core.dll": { - "Size": 131928 + "Size": 131931 }, "assemblies/Xamarin.AndroidX.DrawerLayout.dll": { - "Size": 15442 + "Size": 15447 }, "assemblies/Xamarin.AndroidX.Fragment.dll": { - "Size": 43128 + "Size": 43143 }, "assemblies/Xamarin.AndroidX.Legacy.Support.Core.UI.dll": { - "Size": 6710 + "Size": 6716 }, "assemblies/Xamarin.AndroidX.Lifecycle.Common.dll": { - "Size": 7063 + "Size": 7071 }, "assemblies/Xamarin.AndroidX.Lifecycle.LiveData.Core.dll": { - "Size": 7191 + "Size": 7195 }, "assemblies/Xamarin.AndroidX.Lifecycle.ViewModel.dll": { - "Size": 4870 + "Size": 4881 }, "assemblies/Xamarin.AndroidX.Loader.dll": { - "Size": 13581 + "Size": 13585 }, "assemblies/Xamarin.AndroidX.RecyclerView.dll": { - "Size": 102429 + "Size": 102442 }, "assemblies/Xamarin.AndroidX.SavedState.dll": { - "Size": 6271 + "Size": 6282 }, "assemblies/Xamarin.AndroidX.SwipeRefreshLayout.dll": { - "Size": 11269 + "Size": 11272 }, "assemblies/Xamarin.AndroidX.ViewPager.dll": { - "Size": 19428 + "Size": 19438 }, "assemblies/Xamarin.Forms.Core.dll": { "Size": 471887 @@ -116,10 +116,10 @@ "Size": 22005 }, "assemblies/Xamarin.Forms.Performance.Integration.Droid.dll": { - "Size": 114917 + "Size": 114915 }, "assemblies/Xamarin.Forms.Platform.Android.dll": { - "Size": 367737 + "Size": 367756 }, "assemblies/Xamarin.Forms.Platform.dll": { "Size": 56584 @@ -128,97 +128,136 @@ "Size": 55034 }, "assemblies/Xamarin.Google.Android.Material.dll": { - "Size": 43506 + "Size": 43511 }, "classes.dex": { "Size": 2639828 }, "lib/armeabi-v7a/libaot-FormsViewGroup.dll.so": { - "Size": 23692 + "Size": 10536 }, "lib/armeabi-v7a/libaot-Java.Interop.dll.so": { - "Size": 457200 + "Size": 138600 }, "lib/armeabi-v7a/libaot-Mono.Android.dll.so": { - "Size": 1896308 + "Size": 636600 + }, + "lib/armeabi-v7a/libaot-Mono.Security.dll.so": { + "Size": 17416 }, "lib/armeabi-v7a/libaot-mscorlib.dll.so": { - "Size": 3527556 + "Size": 1201760 }, "lib/armeabi-v7a/libaot-Newtonsoft.Json.dll.so": { - "Size": 720148 + "Size": 205800 + }, + "lib/armeabi-v7a/libaot-Plugin.Connectivity.Abstractions.dll.so": { + "Size": 3632 + }, + "lib/armeabi-v7a/libaot-Plugin.Connectivity.dll.so": { + "Size": 4264 }, "lib/armeabi-v7a/libaot-System.Core.dll.so": { - "Size": 1100260 + "Size": 302112 }, "lib/armeabi-v7a/libaot-System.Data.dll.so": { - "Size": 426528 + "Size": 136104 }, "lib/armeabi-v7a/libaot-System.dll.so": { - "Size": 897968 + "Size": 280208 + }, + "lib/armeabi-v7a/libaot-System.Drawing.Common.dll.so": { + "Size": 3840 }, "lib/armeabi-v7a/libaot-System.Net.Http.dll.so": { - "Size": 164652 + "Size": 53616 + }, + "lib/armeabi-v7a/libaot-System.Numerics.dll.so": { + "Size": 5776 }, "lib/armeabi-v7a/libaot-System.Runtime.Serialization.dll.so": { - "Size": 270996 + "Size": 86968 }, "lib/armeabi-v7a/libaot-System.ServiceModel.Internals.dll.so": { - "Size": 25760 + "Size": 8744 }, "lib/armeabi-v7a/libaot-System.Xml.dll.so": { - "Size": 601068 + "Size": 204656 }, "lib/armeabi-v7a/libaot-System.Xml.Linq.dll.so": { - "Size": 50204 + "Size": 18248 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Activity.dll.so": { - "Size": 12468 + "Size": 5312 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.AppCompat.dll.so": { - "Size": 242324 + "Size": 81800 + }, + "lib/armeabi-v7a/libaot-Xamarin.AndroidX.AppCompat.Resources.dll.so": { + "Size": 3704 + }, + "lib/armeabi-v7a/libaot-Xamarin.AndroidX.CardView.dll.so": { + "Size": 5000 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.CoordinatorLayout.dll.so": { - "Size": 35252 + "Size": 12400 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Core.dll.so": { - "Size": 192156 + "Size": 63328 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.DrawerLayout.dll.so": { - "Size": 42896 + "Size": 14912 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Fragment.dll.so": { - "Size": 95296 + "Size": 30512 + }, + "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Legacy.Support.Core.UI.dll.so": { + "Size": 3520 + }, + "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Lifecycle.Common.dll.so": { + "Size": 4352 + }, + "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Lifecycle.LiveData.Core.dll.so": { + "Size": 4072 + }, + "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Lifecycle.ViewModel.dll.so": { + "Size": 3264 + }, + "lib/armeabi-v7a/libaot-Xamarin.AndroidX.Loader.dll.so": { + "Size": 6704 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.RecyclerView.dll.so": { - "Size": 214904 + "Size": 70160 + }, + "lib/armeabi-v7a/libaot-Xamarin.AndroidX.SavedState.dll.so": { + "Size": 3728 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.SwipeRefreshLayout.dll.so": { - "Size": 28476 + "Size": 10840 }, "lib/armeabi-v7a/libaot-Xamarin.AndroidX.ViewPager.dll.so": { - "Size": 45776 + "Size": 16256 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Core.dll.so": { - "Size": 2831940 + "Size": 968864 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Performance.Integration.dll.so": { - "Size": 18712 + "Size": 8744 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Performance.Integration.Droid.dll.so": { - "Size": 277200 + "Size": 218424 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Platform.Android.dll.so": { - "Size": 1971376 + "Size": 710672 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Platform.dll.so": { - "Size": 122172 + "Size": 106880 }, "lib/armeabi-v7a/libaot-Xamarin.Forms.Xaml.dll.so": { - "Size": 131496 + "Size": 38520 }, "lib/armeabi-v7a/libaot-Xamarin.Google.Android.Material.dll.so": { - "Size": 98024 + "Size": 35584 }, "lib/armeabi-v7a/libmono-btls-shared.so": { "Size": 1112688 @@ -230,7 +269,7 @@ "Size": 235164 }, "lib/armeabi-v7a/libmonosgen-2.0.so": { - "Size": 4456576 + "Size": 4456612 }, "lib/armeabi-v7a/libxa-internal-api.so": { "Size": 48844 @@ -239,91 +278,130 @@ "Size": 141260 }, "lib/x86/libaot-FormsViewGroup.dll.so": { - "Size": 19112 + "Size": 9732 }, "lib/x86/libaot-Java.Interop.dll.so": { - "Size": 277860 + "Size": 112916 }, "lib/x86/libaot-Mono.Android.dll.so": { - "Size": 911652 + "Size": 467580 + }, + "lib/x86/libaot-Mono.Security.dll.so": { + "Size": 11356 }, "lib/x86/libaot-mscorlib.dll.so": { - "Size": 2150468 + "Size": 943060 }, "lib/x86/libaot-Newtonsoft.Json.dll.so": { - "Size": 383552 + "Size": 146764 + }, + "lib/x86/libaot-Plugin.Connectivity.Abstractions.dll.so": { + "Size": 3180 + }, + "lib/x86/libaot-Plugin.Connectivity.dll.so": { + "Size": 3684 }, "lib/x86/libaot-System.Core.dll.so": { - "Size": 741508 + "Size": 242292 }, "lib/x86/libaot-System.Data.dll.so": { - "Size": 125684 + "Size": 83948 }, "lib/x86/libaot-System.dll.so": { - "Size": 487232 + "Size": 204340 + }, + "lib/x86/libaot-System.Drawing.Common.dll.so": { + "Size": 3252 }, "lib/x86/libaot-System.Net.Http.dll.so": { - "Size": 82796 + "Size": 36740 + }, + "lib/x86/libaot-System.Numerics.dll.so": { + "Size": 4068 }, "lib/x86/libaot-System.Runtime.Serialization.dll.so": { - "Size": 80400 + "Size": 50524 }, "lib/x86/libaot-System.ServiceModel.Internals.dll.so": { - "Size": 13616 + "Size": 6388 }, "lib/x86/libaot-System.Xml.dll.so": { - "Size": 128724 + "Size": 117460 }, "lib/x86/libaot-System.Xml.Linq.dll.so": { - "Size": 22856 + "Size": 12404 }, "lib/x86/libaot-Xamarin.AndroidX.Activity.dll.so": { - "Size": 8492 + "Size": 4524 }, "lib/x86/libaot-Xamarin.AndroidX.AppCompat.dll.so": { - "Size": 79604 + "Size": 52652 + }, + "lib/x86/libaot-Xamarin.AndroidX.AppCompat.Resources.dll.so": { + "Size": 3228 + }, + "lib/x86/libaot-Xamarin.AndroidX.CardView.dll.so": { + "Size": 4300 }, "lib/x86/libaot-Xamarin.AndroidX.CoordinatorLayout.dll.so": { - "Size": 20440 + "Size": 9644 }, "lib/x86/libaot-Xamarin.AndroidX.Core.dll.so": { - "Size": 45764 + "Size": 35964 }, "lib/x86/libaot-Xamarin.AndroidX.DrawerLayout.dll.so": { - "Size": 26976 + "Size": 12060 }, "lib/x86/libaot-Xamarin.AndroidX.Fragment.dll.so": { - "Size": 45464 + "Size": 21420 + }, + "lib/x86/libaot-Xamarin.AndroidX.Legacy.Support.Core.UI.dll.so": { + "Size": 3068 + }, + "lib/x86/libaot-Xamarin.AndroidX.Lifecycle.Common.dll.so": { + "Size": 3700 + }, + "lib/x86/libaot-Xamarin.AndroidX.Lifecycle.LiveData.Core.dll.so": { + "Size": 3420 + }, + "lib/x86/libaot-Xamarin.AndroidX.Lifecycle.ViewModel.dll.so": { + "Size": 3028 + }, + "lib/x86/libaot-Xamarin.AndroidX.Loader.dll.so": { + "Size": 4732 }, "lib/x86/libaot-Xamarin.AndroidX.RecyclerView.dll.so": { - "Size": 85944 + "Size": 46548 + }, + "lib/x86/libaot-Xamarin.AndroidX.SavedState.dll.so": { + "Size": 3276 }, "lib/x86/libaot-Xamarin.AndroidX.SwipeRefreshLayout.dll.so": { - "Size": 19244 + "Size": 8980 }, "lib/x86/libaot-Xamarin.AndroidX.ViewPager.dll.so": { - "Size": 26248 + "Size": 12524 }, "lib/x86/libaot-Xamarin.Forms.Core.dll.so": { - "Size": 1820860 + "Size": 765884 }, "lib/x86/libaot-Xamarin.Forms.Performance.Integration.dll.so": { - "Size": 11384 + "Size": 7292 }, "lib/x86/libaot-Xamarin.Forms.Performance.Integration.Droid.dll.so": { - "Size": 182040 + "Size": 134180 }, "lib/x86/libaot-Xamarin.Forms.Platform.Android.dll.so": { - "Size": 1353492 + "Size": 549012 }, "lib/x86/libaot-Xamarin.Forms.Platform.dll.so": { - "Size": 71196 + "Size": 65596 }, "lib/x86/libaot-Xamarin.Forms.Xaml.dll.so": { - "Size": 79564 + "Size": 27620 }, "lib/x86/libaot-Xamarin.Google.Android.Material.dll.so": { - "Size": 47020 + "Size": 26300 }, "lib/x86/libmono-btls-shared.so": { "Size": 1459584 @@ -335,7 +413,7 @@ "Size": 306828 }, "lib/x86/libmonosgen-2.0.so": { - "Size": 4212336 + "Size": 4212360 }, "lib/x86/libxa-internal-api.so": { "Size": 61112 @@ -350,7 +428,7 @@ "Size": 1205 }, "META-INF/ANDROIDD.SF": { - "Size": 73365 + "Size": 76149 }, "META-INF/androidx.activity_activity.version": { "Size": 6 @@ -461,7 +539,7 @@ "Size": 10 }, "META-INF/MANIFEST.MF": { - "Size": 73257 + "Size": 76041 }, "META-INF/proguard/androidx-annotations.pro": { "Size": 339 @@ -2165,5 +2243,5 @@ "Size": 347268 } }, - "PackageSize": 19475110 + "PackageSize": 16061636 } \ No newline at end of file