On Android, we load a file called Default.png (no 2x, landscape, or any other versions) at the beginning of the Main activity. This is before main.lua runs. There is a gap of time between then where you get a black screen before your first frame update. Depending on how much stuff you do in your main.lua, the time before that first frame update may be longer than you think.
You might be able to mitgate this by using display.setDefault( “background”, 1, 1, 1 )
see: https://docs.coronalabs.com/api/library/display/setDefault.html#color-keys
But it’s possible that might not even kick in until the first frame update, which is why I suggested a feature request. It might be possible to change how we address the Default.png to help get rid of that gap.
Another possibility, and this is Truly the Android way is to not use the Default.png at all. Use the excludeFiles section of your build.settings and don’t include it in your Android build. You will have a longer gray startup, but this is normal for Android apps as they don’t use Default.png’s anyway. This was something we did to make it more in-line with the iOS side due to developer demand. If you still want a splash screen load it as the first thing in main.lua. If you use display.newImageRect() you get to use @2x and @4x images if you have them. You can then load the rest of the things you do in main.lua and then remove the splash screen before you start showing your real screen.
Apple doesn’t like splash screens. They want the Default.png file to mimic the first screen the viewer sees to give the illusion the app is starting faster. While that’s Apple’s opinion, it make sense from an Android perspective too.
Rob