오늘은 저번 글에 이어 저사양 디바이스를 타겟팅해 앱을 개발하던 중 발견하게 된 증상을 공유해본다.
(갤럭시와 같은 휴대폰 중 저사양 디바이스가 아닌 안드로이드 TV용 박스를 가지고 개발했다.)
나는 이 증상을 처음 보고 적잖이 당황했었다.
뭐랄까.. 지금까지 알던 세상이 부정당한 느낌..?
항상 되던 것이 안되니 말이다.
원인
이런 끔찍한 현상이 생긴 원인이 뭘까?
바로 Animation 길이 배율 설정(Animator duration scale)이다.
평소에는 신경도 안 쓸 설정 메뉴이지만, 저사양 기기에서는 성능을 올리기 위해서인지 꺼져 있었다.
이거... 어디 있는 메뉴일까?
정답은 개발자 옵션에 있다.
기본 설정이 1x로 되어있는 디바이스가 대부분일텐데 내가 개발했던 녀석은 사용 안함이 기본이었다.
그래서 Progressbar(ProgressIndicator)를 사용하면 애니메이션은 고사하고 새로고침 아이콘만 나오고 있었다.
우회적인 해결법
나는 Progressbar를 내가 다시 만들 지는 않았음을 먼저 얘기하고 해결법에 대해 이야기하겠다.
(Progressbar를 커스텀으로 만드는 수고를 하고 싶지 않았다.
다른 방법으로 해결해도 되는 상황이었기 때문이다.)
다시 본론으로 돌아와,
"누군가는 간단히 개발자 옵션에서 Animation 길이 배율 설정 값을 바꾸면 되잖아~"
라고 얘기할 것이다.
근데, 내가 세상 모든 디바이스의 설정을 바꿀 수 없기 때문에 다른 방법이 필요했다.
내 경우는 일정 시간 동안 작업 중임을 표시하기만 하면 됐는데,
그냥 텍스트를 1초마다 갱신하는 것으로 대체해버렸다.
(ex. 1/20초.. 2/20초.. 3/20초..)
물론 직접 Animation을 적용해 Progressbar를 만들어도 된다.
(여기서 개발자가 직접 애니메이션을 구현한 경우에는
해당 Animation 길이 배율 설정이 적용되지 않는다고 한다.)
참조
'Android' 카테고리의 다른 글
Android Room 오적용기(misapplied) (0) | 2024.07.02 |
---|---|
Android AES-128 Encryption with Random IV in Java (0) | 2024.06.29 |
Android White Screen Before Splash Screen Resolved (0) | 2024.06.25 |
Android APK Decompile(Proguard 적용 확인) (0) | 2024.06.12 |
Android UDP 통신해보기 in Kotlin (0) | 2024.04.20 |