Two splash screens, not one
Android has had two different splash mechanisms since Android 12. The system splash is drawn by the OS the instant your app is tapped, before any of your code runs: a solid background colour and the launcher icon (or a dedicated icon) inside a circle. You cannot replace it with a full-bleed image, only set its colour and icon. The app splash is a screen your app shows itself once it is running — which is where a full-screen design with a logo and a caption goes, and what most people mean by "splash screen".
The Zip to APK builder handles both from the same image: the background colour and icon feed the system splash, and the full image is shown as the app splash while the WebView loads your first page. This tool exports the pieces for each.
Which size to export
Phones are 19.5:9 to 20:9 today, so 1080 × 2340 fills a modern screen edge to edge. 1080 × 1920 (16:9) suits older devices and tablets in portrait. The builder letter-boxes whichever you upload using the background colour at the edges, so with a gradient or a solid background the difference is invisible; with a photo it is not, so export the ratio of your target phones.
The 288 px icon is for Android 12's system splash. The OS masks it to a circle and only the inner two thirds (192 px) is guaranteed visible, so the tool draws your logo inside that area. If you skip this, Android uses the launcher icon, which usually looks fine.
Design rules that survive every phone
- Centre everything. Status bars, notches and navigation bars eat unpredictable amounts of the top and bottom; the middle 60% is always visible.
- Prefer a colour or a gradient over a photo. It letter-boxes invisibly and matches the system splash colour, so the hand-off from OS splash to app splash does not flash.
- Keep the caption short. Forty characters at most; it is on screen for well under a second.
- Match the icon background. When the splash background equals the icon's background colour, the launcher-to-splash transition looks like the icon is expanding — the effect Android is designed for.
How long is it shown?
In a ZIP-to-APK app the splash stays until the WebView has loaded index.html, which for bundled content is a few hundred milliseconds. It is a cover for the first paint, not a place for a brand video. If you want the splash to linger, put the delay in your own page instead — a fade-in on index.html — so the app still feels responsive.