마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

화면 전환 기본 애니메이션 없애는 방법 질문.

0 추천
이전에 질문을 올렸는데, 방향을 좀 달리해서 질문을 드릴까 해서 올립니다.

이전 질문은 액티비티 A와 B가 있는데, Portrait 상태의 A에서 강제로 Landscape로

회전하면서 B를 호출하면 화면이 검은 상태로 늦게 나타난다입니다.

테스트를 해본 결과 제가 개발하는 디바이스가 그래픽 가속을 쓰지 못하는

낮은 스펙의 하드웨어라 속도를 따라가지 못해서 발생하는 문제였습니다.

아무리 그래도 회전시 리소스를 그렇게 많이 쓸 이유가 없는데 느릴까...

그래서 최선책으로 강구한것이 회전할때 발생하는 애니메이션으로 인해서

많은 리소스를 잡아먹음으로써 느려진다는 판단이고, 구글링 결과 서로 다른 액티비티 전환시

스크린 로테이션으로 발생하는 애니메이션은 OverpendingTransition(0,0) 이나 인텐트 호출시의

No Animation Flag로는 되지 않고, 안드로이드 프레임워크 부분의 윈도우 매니저 단에서 제거가

가능하다는 것까지는 알아냈습니다. 그런데, 제가 프레임워크를 하는 사람이 아니다보니

방대한 소스를 건드릴 방법이 없네요. 혹시 어느 부분을 수정하거나 변경하면 되는지 아시는분

있나요?? 아참.. 안드로이드 버전은 아이스크림 4.0.3 입니다.
풍운아 (140 포인트) 님이 2014년 2월 4일 질문
풍운아님이 2014년 2월 4일 수정

3개의 답변

0 추천
먼저 화면이 회전할 때 실행되는 애니메이션을 제거하는 것은 불가능합니다. 안드로이드 소스를 수정하지 않는 한 말입니다.

 

화면이 회전할 때 검은 화면이 몇 초동안 나타나나요? 혹시 레이아웃 생성시에 파일 쓰기 작업같은 것을 하지 않는가요? 아무리 낮은 하드웨어 스펙이라도 화면이 전환할 때 오래동안 랙이 발생하지는 않을 것 같은데요.

 

레이아웃 파일과 코드를 검토해서 시간이 걸리게 하는 요소를 파악하고 제거하는 것이 필요할 것 같네요.

 

아니면 화면을 portrait로 고정하는 방법도 있구요.
방귀과장 (18,940 포인트) 님이 2014년 2월 4일 답변
우선은 안드로이드 소스를 수정할수 있는 상태입니다. 소스 전체를 저희 디바이스에 맞게 포팅중이니까요.
화면 회전시 검은 화면은 빈 액티비티일 경우는 2.3초, 데이터가 포함된 경우 3.7초 정도가 되는듯합니다. 파일 읽기는 하지만 쓰기는 하지 않구요. 하드웨어 스펙이 CPU가 500Mhz 의 낮은 속도인데다가 하드웨어 가속기능인 SGX인가요? 이걸 쓰지 못하게 막아둔 상태입니다. 화면을 Portrait로 고정할수는 없는게, 스코어보드 처럼 생긴 화면이라 좀 어렵네요. 스크롤기능까지 있는.. 참고로 저희 디바이스가 아닌 모토롤라 드로이드X 스마트 폰에 넣어서 테스트 결과로는 데이터까지 포함해도 2초를 넘지 않고, 검은 화면도 나타나지 않습니다. 답변감사합니다.
0 추천
글쎄요.. 화면전환 애니메이션때문에 속도가 느린건 아닌듯한데..

액티비티가 회전할때는 기본적으로 oncreate가 다시 호출됩니다...

표시하는 내용이 많다면 오래 걸리겠죠..

화면 회전시에.. oncreate를 다시 호출하지 않도록 하는 옵션이 있었던것 같은데..

기억이 나질 않네요.. 구글링하면 아마 답이 나오지않을까요..
우성회장 (140 포인트) 님이 2014년 2월 4일 답변
onCreate를 다시 하지 않게 하는게 아마 매니페스트에서 android:configChanges="keyboardHidden|orientation|screenSize"를 쓰면 되는걸로 나오는데, 이게 같은 액티비티에서 회전시에는 되는데, 구글링을 해보면 다른 액티비티로 전환되면서 landscape가 될 경우는 적용이 안된다는군요. 표시하는 내용이 많아서 그런 부분도 있는데, 아무것도 넣지 않은 빈 액티비티를 띄워도 느린걸로 봐서는 회전 자체에 문제가 있다고 보여집니다.
0 추천
코딩인헬 (12,150 포인트) 님이 2014년 2월 4일 답변
개인적으로는 LCD 드라이버가 언급된 두번째 링크가 원인과 해결에 가깝지 않나 싶긴 하지만, 프레임워크 단을 제가 수정하는게 아니고 제가 접근하기 어려운 파트라 쉽진 않은 방법이네요. 답변감사드립니다.
...