The splash screen on Android starts to fade out after your “main.lua” file has been executed. The fade effect will likely not be smooth if your Android device has a single core CPU and you are rendering a lot of content and at 60 FPS. This is because the splash screen and your OpenGL content are rendered from 2 different threads and they are both competing for the device’s CPU time… and the OpenGL thread is winning. If you use the audio library and play music at start up, then that competes for the CPU’s time as well since audio runs on its own thread as well.
There’s really not much we can do on our end to improve this, but you can change things on your end to reduce the CPU load on app startup. For example, you can offset the load via a timer after startup by playing music 1 or 2 seconds later… around the time the splash screen fades out. Rendering less content on app startup would reduce the load as well.
That said, in my opinion, the Default splash screens should only be used for simple business apps. Apple never intended for them to be splash screens and were intended to be a screenshot of the app to give the appearance of the app loading quickly. Ideally, if your app has a lot of things to load on startup, you should really create your own splash screen via our display API. This way you can display load progress by loading all content via a timer… and plus it gives you absolute control of your own splash screen. You should set the Default PNGs to pure black in this case, which would quickly fade to your splash screen.