본문 바로가기

Programming/Tasker 프로필/프로젝트

Tasker의 메모리 반환문제와 접근성 설정의 관계

언제부턴가 Tasker 어플리케이션이 사용하는 메모리가 증가해서 줄어들지 않는 경우가 생기더군요.(메모리 누수현상.....)

아마 제 경우에는 젤리빈 OS를 사용하면서부터 인것으로 추정 됩니다.......

quick system info 같은 어플리케이션으로 현재 백그라운드에서 실행 중인 프로세스를 확인해보면 각 프로세스의 메모리 사용량과 cpu사용량을 알 수 있습니다. 
평소에는 Tasker의 메모리 사용량이 30~50메가 정도 됩니다.(제 경우) 그런데 Tasker를 켜서 아무것도 안하고 다시 홈화면으로 돌아가던, 무언가 작업을 하고 홈화면으로 돌아가건 Tasker 화면이 뜨고 난 뒤에 quick system info로 확인해 보면 Tasker의 메모리 사용량이 60, 70 ,80...... 으로 늘어나 있는데 이게 시간이 지나도 반환되지 않고 그대로 남아 있게 되더군요.

이 현상의 특징은 현재 진행되고 있는 프로파일이 하나도 없어도 메모리가 반환되지 않습니다. 이런식으로 메모리 사용량이 100mb를 넘게 되면 폰자체가 버벅이게 되고 이 상태에서 Tasker를 이용한 어떤 작업이 진행되면 폰이 엄청 느려집니다. 그리고 Tasker를 켰을때 Tasker 메인 화면이 뜨기까지도 delay가 길어집니다. 써본 결과 120mb 정도 넘어 갈 경우 Tasker 메인화면에서 어떤 작업을 하고 저장 하면 Tasker앱이 강제종료 되더라구요........ 문제는 Tasker를 직접 실행 시키지 않으면 해결 될 줄 알았는데 Tasker에 의한 작업이 수행되면 조금씩 메모리 사용량이 늘어나는데 그 뒤에도 반환이 제대로 안되더라구요.....
이 현상을 해결하기 위해 Tasker를 disable 했다가 enable 하는 것은 효과가 없더군요.  Tasker의 메모리 사용량이 120mb를 넘어서 강제 종료 되던가, task killer 류의 어플로 프로세스 상에서 아예 Tasker를 강제 종료 시키던가 폰을 리부팅 하던가 해야 합니다....

그런데 시스템에서 Tasker의 접근성 설정을 해제하니 메모리가 제대로 반환되네요..... 폰이 느려지는 현상도 없어지고......
아마 젤리빈부터 Tasker의 접근성 설정이 바뀌면서 메모리 누수가 생기는 부분이 있나봅니다. Tasker의 접근성 설정을 해제하게되면 Tasker에서 다른 어플리케이션에의한 notification 알림을 알 수 없는등 몇가지 불편한 점이 생기는데 그만큼 접근성 설정이 되어 있다면 Tasker에서 monitor 하게 되는 작업이 많아지면서 메모리 사용량이 늘어나게 되는듯 합니다.