Launching the Xamarin.Forms Android app takes 10 seconds

My Android application (created using Xamarin.Forms) takes about 10 seconds to start (both in debug mode and in Release mode) on a real device (Asus Zenfone 2). The splash screen is displayed for 8 seconds. Here is my journal where "extrony" is my application name. This assembly takes a very long time. Any help?

Android startup log

EDIT 1: It actually takes 10 seconds (I mentioned 8 by mistake, but now updated)

EDIT 2: On the emulator (I use the Android emulator for Visual Studio), the application starts faster, that is, within 4 seconds. However, on my real device (Asus Zenfone2), the time it takes is 10 seconds. Here is another thing that I see on the debug output when debugging on a real device (it does not appear if you are debugging the emulator), and loading these assemblies, ALONE takes ~ 6 seconds.

Android application is debugging.
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/extrony.Droid.dll
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Acr.Support.Android.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Acr.UserDialogs.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Acr.UserDialogs.Interface.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/AndHUD.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/CarouselView.FormsPlugin.Abstractions.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/CarouselView.FormsPlugin.Android.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/FFImageLoading.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/FFImageLoading.Forms.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/FFImageLoading.Forms.Droid.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/FFImageLoading.Platform.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/FormsViewGroup.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/HtmlAgilityPack.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Azure.Mobile.Analytics.Android.Bindings.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Azure.Mobile.Analytics.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Azure.Mobile.Android.Bindings.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Azure.Mobile.Crashes.Android.Bindings.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Azure.Mobile.Crashes.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Azure.Mobile.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Data.Sqlite.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.EntityFrameworkCore.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.EntityFrameworkCore.Relational.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.EntityFrameworkCore.Sqlite.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Extensions.Caching.Abstractions.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Extensions.Caching.Memory.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Extensions.DependencyInjection.Abstractions.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Extensions.DependencyInjection.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Extensions.Logging.Abstractions.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Extensions.Logging.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Extensions.Options.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Microsoft.Extensions.Primitives.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/ModernHttpClient.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Newtonsoft.Json.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/OkHttp.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Plugin.Connectivity.Abstractions.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Plugin.Connectivity.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Plugin.CurrentActivity.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Plugin.Settings.Abstractions.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Plugin.Settings.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Plugin.Share.Abstractions.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Plugin.Share.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Remotion.Linq.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/SgmlReaderDll.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Splat.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/System.Collections.Immutable.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/System.Diagnostics.DiagnosticSource.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/System.Interactive.Async.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/System.Runtime.CompilerServices.Unsafe.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Android.Support.Animated.Vector.Drawable.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Android.Support.CustomTabs.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Android.Support.Design.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Android.Support.v4.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Android.Support.v7.AppCompat.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Android.Support.v7.CardView.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Android.Support.v7.MediaRouter.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Android.Support.v7.RecyclerView.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Android.Support.Vector.Drawable.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Forms.Core.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Forms.Platform.Android.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Forms.Platform.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/Xamarin.Forms.Xaml.dll [External]
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/extrony.dll
Loaded assembly: /storage/emulated/0/Android/data/com.abdullah.extrony/files/.__override__/extrony.Data.dll
Loaded assembly: Mono.Android.dll [External]
Loaded assembly: Java.Interop.dll [External]
Loaded assembly: System.Runtime.dll [External]
Loaded assembly: System.Collections.Concurrent.dll [External]
Loaded assembly: System.Reflection.dll [External]
Loaded assembly: System.Threading.dll [External]
Loaded assembly: System.Diagnostics.Debug.dll [External]
Loaded assembly: System.dll [External]
Loaded assembly: System.Runtime.InteropServices.dll [External]
Loaded assembly: System.Collections.dll [External]
Loaded assembly: System.Linq.dll [External]
Loaded assembly: System.Core.dll [External]
Loaded assembly: System.Reflection.Extensions.dll [External]
Loaded assembly: MonoDroidConstructors [External]
Loaded assembly: System.ObjectModel.dll [External]
Loaded assembly: System.Threading.Tasks.dll [External]
Loaded assembly: System.Xml.ReaderWriter.dll [External]
Loaded assembly: System.Xml.dll [External]
Loaded assembly: System.IO.dll [External]
Loaded assembly: System.Runtime.Extensions.dll [External]
Loaded assembly: System.Linq.Expressions.dll [External]
Loaded assembly: System.Resources.ResourceManager.dll [External]
Loaded assembly: System.Globalization.dll [External]
Loaded assembly: System.Dynamic.Runtime.dll [External]
Loaded assembly: System.ComponentModel.dll [External]
Thread started: <Thread Pool> #2
Thread started: <Thread Pool> #3
Thread started: <Thread Pool> #4
Thread started: <Thread Pool> #5
Loaded assembly: System.Linq.Queryable.dll [External]
Loaded assembly: Anonymously Hosted DynamicMethods Assembly [External]
Loaded assembly: System.Data.Common.dll [External]
Loaded assembly: System.Data.dll [External]
Thread started: <Thread Pool> #6
Loaded assembly: System.Diagnostics.Tracing.dll [External]
Loaded assembly: System.ComponentModel.Annotations.dll [External]
Loaded assembly: System.ComponentModel.DataAnnotations.dll [External]

EDIT 3: Tested on different devices for each sentence received through comments. These are the results (from release build)

  • ~ 8 to 10 seconds on Samsung Galaxy OnNXT
  • ~ 6-7 seconds on Xiaomi Mi Max Prime
  • ~ 4-5 seconds in a note of Redmi 3
  • ~ 9.5 seconds on Asus Zenfone2

4: , , "context.Migrate() SingleOrDefault()" (EFCore) 9 . , ~ 3 .

5: db init (, ), Xamarin.Forms() 3 , , init . , , , Ebore db init . - ?

 protected override void OnResume()
    {
        base.OnResume();

        System.Threading.Tasks.Task.Run(() =>
        {
            App.DbFolder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            App.InitializeDb();
        });

        StartActivity(typeof(MainActivity));

    }

?

+4
2

4.5 , .

04-01 07:53:15.443 D/Mono    ( 1742): [0x9ac5e930] hill climbing, change max number of threads 2
04-01 07:53:15.445 W/art     ( 1742): JNI RegisterNativeMethods: attempt to register 0 native methods for md54ada4fbe4a5955f6151fa282d30cfc48.SelfDisposingBitmapDrawable
Resolved pending breakpoint at 'CleanUpReceiver.cs:16,1' to void extrony.Droid.Receivers.CleanUpReceiver.OnReceive (Android.Content.Context context, Android.Content.Intent intent) [0x00000].
04-01 07:53:20.059 D/Mono    ( 1742): DllImport searching in: '/system/lib/libsqlite.so' ('/system/lib/libsqlite.so').
04-01 07:53:20.059 D/Mono    ( 1742): Searching for 'sqlite3_column_count'.

, - , , App.xaml.cs. , EF Core.

, , App.xaml.cs , .

StopWatch , . stackoverflow, .

System.Diagnostics.Stopwatch s = new System.Diagnostics.Stopwatch();
s.Start();

// Code in here

s.Stop();
System.Diagnostics.Debug.WriteLine($"Elapsed Time: {s.ElapsedMilliseconds.ToString("N0")}");
+4

Source: https://habr.com/ru/post/1673754/


All Articles