Skipped 60 frames! The application may be doing too much work on its main thread

1189 단어 Android
최근에 앱 인터페이스가 점프할 때 인터페이스가 매우 끊기고 매우 뚜렷하다는 것을 발견했다. 로그를 보면 다음과 같다.
Skipped 60 frames! The application may be doing too much work on its main thread

간단하면서도 직설적인 힌트입니다. 60 프레임을 건너뛰면 메인 라인에서 비교적 시간이 걸리는 조작을 할 수 있지만 이런 조작은 프로그램이 ANR에 도달할 정도에 이르지 않습니다.원인을 찾았으니 우리가 손을 댔다. 그래서 액티비티의 소모된 조작을 찾아 관련 최적화를 하기 시작했다. 큰 성과를 거두면 한 몫 챙길 수 있을 거라고 생각했지만 문제는 여전했다.이것은 난처하다. 분명히 최적화해야 할 최적화가 되었는데, 정말 백 번 생각해도 이해할 수 없다.그래서 Google에서 그 비밀을 발견했습니다. 원래 많은 사람들이 똑같이 최적화된 후에 큰 효과가 없었습니다. 그 이유는 activity의 코드 초기화 작업이 아니라 레이아웃 인터페이스의layout이 만들었기 때문입니다. 의심할 여지없이 모두가 인터페이스에서 많은 그림이나 큰 그림을 사용했기 때문입니다.더 나아가 인터페이스의 그리는 데 많은 시간이 걸렸다.
//imagview         

기왕 문제를 찾은 이상 해결 방법은 간단하다. 다음과 같은 방법을 제시한다.
playDistImageView= (ImageView) findViewById(R.id.iv_play_dist);
Glide.with(this).load(R.drawable.play_disc).into(playDistImageView);

사고방식은 매우 간단하다. 바로layout 파일에 이 그림을 직접 설정하지 않고 코드에 넣고 설정하는 동시에 이미지 로드 프레임워크를 사용하여 더욱 최적화할 수 있다.네가 이것들을 다 하고 다시 앱을 켜면 인터페이스가 움직일 때 실처럼 매끄럽다는 것을 발견할 수 있을 것이다.

좋은 웹페이지 즐겨찾기