Is it normal having a 8 seconds splash screen?

I have this project here that built-in Kodular, and it been progressing and operating as a business in our city so it’s kind of something important for me.

Issue

Splash screen, it takes 8 seconds before another 5-6 seconds for loading all data that need by the app, total of 13 seconds. I can accept the 5-6 seconds due to functions that needed while screen intialize, but the 8 seconds for the default splash screen? It not that too friendly at all.

What I'd done

After trying helping myself before creating this topic, i go to Screen1>>>Properties>>>Advance>>> and uncheck the Splash enabled. ![Screenshot_2020-07-18 Kodular Creator|237x120](upload://2xe2yslhgjGtAwBG3DLg74YPMFF.png)

Result

Even I uncheck the default Splash, it still having a 8 seconds long duration, i accept that it can have a white screen, but maybe 1-3 seconds is fine.. But 8 seconds? Too much.
  • I take consideration about the internet speed, but internet working fine, and its not related in the defualt splash
  • If apk test from native apk from builder, it takes 8 seconds and more
  • But if it was uploaded it playstore it saved around 1-2 seconds
  • I also take consider device version, here's the result
  1. Android 8- Splash time 8 seconds
  2. Android 9- Splash time 8 seconds
  3. Android 10- Splash time 3 seconds

Please do share if you can help to test

Additional

I tried also clearing some cache and data in my browser expecting that might cause some cache, even switching some browsers and problems not yet solve. Hope you understand, please share some thoughts/respect. This topic is for discussion only. Please test the app by yourself here.
1 Like

I am on Android 9 and the duration of splash screen is about 3-4 seconds after which it shows your privacy policy custom dialogue.
This duration is normal I think.

Also no white screen appears for me

It crashes every time., Android 5…

Wow. Thank you so much…
It really help

1 Like

Possibly yes, since i upgraded to the apk minimum SDK to 5.0. – 5.0.2 (API-21) from Android 4.4 -4.4.4 (API-19). Thank you for trying… Any recommendation, should i lower the minimum? or 5.0 is a good start since nowadays android is upgrading OS.

Btw, you should read about how big images you should use and how that will affects your app, such as memory consumption, etc…

yep, i tried to call all assets via string only not properties, even closing a screen or switching arrangement i tried to null every value, hoping that this method can save some memory, but about sizes of every assets ill try to rereview it.

Since I’m not even able to start your app to see where you are loading those images and having this pixel size 2083x2083, 2313x1642, 3125x2083 is bad idea

2 Likes

Well understand.

Apparently you are loading all those images that I mentioned above

See tip 2

by @Italo
First, you need to understand that the file size of an image is not the amount of memory it uses when it’s being displayed. The file size is the compressed size, much like a zip or rar file. When viewed, the image needs to be decompressed.
For example, if your image says its file size is 100 kb, and its dimensions are 1024 x 768, 32 bit color, then that image uses over 3 mb of RAM (not 100 kb!) when you show it on the screen. ((1024 * 768 ) * 32) / 8 = 3,145,728 kb (3 mb)

Now, this is a mistake most people make when using arrangements as “virtual screens”: They set different image components with their images loaded but hidden, instead of having only one image component and changing the picture according to the user’s selection or app events, not knowing that apparently the hidden image components are also using the ram, (yes, even though they are invisible!).

Do the calculation for your images however, that is only for density 1…

Wow. I really learn lot from this. Ill take time to calculate all assets… but either or whatever minimum sdk i use right? Like u said, it was crashing, do u think it might be because the sdk i use as minimum or is it related to the assets sizes? But in my opinion possibly because some extension also? What u think that might be the major cause of my app crashing?

Check your google console, as I’ve made report of the crash…

Image size

You think this method can save memory? Switching the image component into a null value, before “hidding” or switching “virtual screen” like arrangement, and just call the image assets only if needed via block? Your thoughts please…

Actually I found this in the logcat

07-18 14:17:24.556: D/Makeroid Fab(24432): Makeroid Fab Created
07-18 14:17:24.556: D/vibrate(24432): Vibrate
07-18 14:17:24.556: D/AndroidRuntime(24432): Shutting down VM
07-18 14:17:24.566: E/AndroidRuntime(24432): FATAL EXCEPTION: main
07-18 14:17:24.566: E/AndroidRuntime(24432): Process: com.redeeme.byahe, PID: 24432
07-18 14:17:24.566: E/AndroidRuntime(24432): java.lang.NoClassDefFoundError: android.location.GnssStatus
07-18 14:17:24.566: E/AndroidRuntime(24432): at libcore.reflect.InternalNames.getClass(InternalNames.java:55)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.Class.getDexCacheType(Class.java:479)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.reflect.ArtMethod.getDexCacheType(ArtMethod.java:236)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.reflect.ArtMethod.getParameterTypes(ArtMethod.java:176)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.reflect.Method.getParameterTypes(Method.java:174)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.Class.getDeclaredMethods(Class.java:802)
07-18 14:17:24.566: E/AndroidRuntime(24432): at gnu.bytecode.ClassType.addMethods(ClassType.java:979)
07-18 14:17:24.566: E/AndroidRuntime(24432): at gnu.bytecode.ClassType.getDeclaredMethods(ClassType.java:725)
07-18 14:17:24.566: E/AndroidRuntime(24432): at gnu.bytecode.ClassType.getMethods(ClassType.java:809)
07-18 14:17:24.566: E/AndroidRuntime(24432): at gnu.kawa.reflect.ClassMethods.getMethods(ClassMethods.java:106)
07-18 14:17:24.566: E/AndroidRuntime(24432): at gnu.kawa.reflect.ClassMethods.apply(ClassMethods.java:229)
07-18 14:17:24.566: E/AndroidRuntime(24432): at gnu.kawa.reflect.Invoke.lookupMethods(Invoke.java:278)
07-18 14:17:24.566: E/AndroidRuntime(24432): at gnu.kawa.reflect.Invoke.applyN(Invoke.java:185)
07-18 14:17:24.566: E/AndroidRuntime(24432): at gnu.mapping.ProcedureN.apply2(ProcedureN.java:39)
07-18 14:17:24.566: E/AndroidRuntime(24432): at io.kodular.consoleheretohelp.marchbyahe.Screen1.$define(Screen1.yail:10250)
07-18 14:17:24.566: E/AndroidRuntime(24432): at com.google.appinventor.components.runtime.Form.onCreateFinish2(SourceFile:524)
07-18 14:17:24.566: E/AndroidRuntime(24432): at com.google.appinventor.components.runtime.Form.onCreateFinish(SourceFile:468)
07-18 14:17:24.566: E/AndroidRuntime(24432): at com.google.appinventor.components.runtime.Form.onCreate(SourceFile:398)
07-18 14:17:24.566: E/AndroidRuntime(24432): at android.app.Activity.performCreate(Activity.java:6288)
07-18 14:17:24.566: E/AndroidRuntime(24432): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
07-18 14:17:24.566: E/AndroidRuntime(24432): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
07-18 14:17:24.566: E/AndroidRuntime(24432): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
07-18 14:17:24.566: E/AndroidRuntime(24432): at android.app.ActivityThread.access$900(ActivityThread.java:177)
07-18 14:17:24.566: E/AndroidRuntime(24432): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
07-18 14:17:24.566: E/AndroidRuntime(24432): at android.os.Handler.dispatchMessage(Handler.java:102)
07-18 14:17:24.566: E/AndroidRuntime(24432): at android.os.Looper.loop(Looper.java:145)
07-18 14:17:24.566: E/AndroidRuntime(24432): at android.app.ActivityThread.main(ActivityThread.java:5942)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.reflect.Method.invoke(Native Method)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.reflect.Method.invoke(Method.java:372)
07-18 14:17:24.566: E/AndroidRuntime(24432): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
07-18 14:17:24.566: E/AndroidRuntime(24432): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
07-18 14:17:24.566: E/AndroidRuntime(24432): Caused by: java.lang.ClassNotFoundException: Didn’t find class “android.location.GnssStatus” on path: DexPathList[[zip file “/data/app/com.redeeme.byahe-1/base.apk”],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
07-18 14:17:24.566: E/AndroidRuntime(24432): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
07-18 14:17:24.566: E/AndroidRuntime(24432): at libcore.reflect.InternalNames.getClass(InternalNames.java:53)
07-18 14:17:24.566: E/AndroidRuntime(24432): … 30 more
07-18 14:17:24.566: E/AndroidRuntime(24432): Suppressed: java.lang.ClassNotFoundException: android.location.GnssStatus
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.Class.classForName(Native Method)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
07-18 14:17:24.566: E/AndroidRuntime(24432): at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
07-18 14:17:24.566: E/AndroidRuntime(24432): … 32 more
07-18 14:17:24.566: E/AndroidRuntime(24432):

and it’s caused by this extension com.KIO4_LocationSensor

Thanks @Boban… It will try to do a logcat to see for myself and make some adjustment. Effort appreciated

the developer of that extension @juananton1991 might want to check this…
Taifun