안녕하세요~ 회색님~^^; Movie 클래스를 이용하여 ani-gif 를 실행하고있습니다. 그 부분에서 용량이 큰~ GIF 실행할 때 엑티비티 나갔다가 다시 들어와도 메모리가 해제 되지 않아서... Out of memory 가 발생하여 죽어버립니다... gc가 제대로 활동을 안하는지... 어떻게 강제로라도 메모리 free할 수 있는 방법이 없을까여? 감사합니다.
보통은 gc가 제대로 활동합니다. 강제적으로 수행을 시킬때는 System.gc()를 호출할수도 있습니다. 내부 구조를 잘못만들어놓으셨다면 gc가 수행되도 메모리가 해제되지 않을 수 있습니다. 대부분의 메모리 문제는 개발자가 잘못한 경우가 많구요. 보통은 Activity가 제대로 Finish되면 garbage collected됩니다만 그렇지 않은 경우도 있습니다. 관련해서 예전에는 버그도 많았는데 대부분 해결된것으로 알고 있어요. 그래도 혹시나 하신다면 onDestroy등에서 레퍼런스 되어있는 object들을 전부 해제시켜주고 테스트해보는 방법도 있을것 같습니다.
혹시나 액티비티 스택에 남아있는 것은 아닌지 한번 다음 커맨드로 확인도 해보시고 > adb shell dumpsys activity
혹시나 액티비티 스택에 남아있는 것은 아닌지 한번 다음 커맨드로 확인도 해보시고
> adb shell dumpsys activity