안드로이드 12부터 스프래시 스크린(Splash Screens) 가 추가되었습니다.
해당기능은 콜드스타트(Cold start) 나 **웜 스타트(Warm start)**에서 앱이 로드되는 동안 표시되는 화면 입니다.
Android12 이전까지는 개별적으로 제작사에서 SplashScreen을 만들어서 사용했었습니다. 기존에 이런 방식은 내가 원하는 UI를 제작할 수 있어서 좋았지만 Android의 앱 실행 상태에 맞지 않는 문제가 있었습니다.
앱의 실행은 콜드 스타트, 웜 스타트, 핫 스타트의 세 가지 상태 중 하나로 이루어질 수 있습니다. 각 상태는 앱이 사용자에게 표시되는데 걸리는 시간에 영향을 줍니다.
cold-start : 프로세스가 램에 존재하지 않는 상태, 즉 새롭게 실행하는 상태
warm-start : 앱은 종료되었지만 프로세스가 램에 아직 남아있는 상태에서 실행
hot-start : 앱과 프로세스가 아직 남아있는 상태에서 실행
이 3가지 상태에서 hot-start는 앱의 모든 활동이 아직 메모리에 남아 있기 때문에 새롭게 리소스를 불러올 필요가 없습니다. 하지만 개별적으로 Splash를 만든 앱에서는 hot-start상태에서도 새롭게 리소스를 다시 불러오게 된다는 문제가 있습니다. 그래서 Google에서는 Android12부터 SplashScreen을 자체적으로 지원하기 시작하였습니다.
🐶 Android12
🐶 Android9
오늘의집 앱을 실행했을 때 Android 12의 경우에는 아이콘이 한번 나타난 후 기존 스플래시 화면이 나타나는 것을 볼 수 있습니다. 반면 Android 9에서 실행했을 때는 앱의 기존 스플래시만 나타난 후 다음 화면으로 넘어가게 됩니다.