안드로이드 애플 리케이션에서 메모리 누출/처리 메모리 누수에 대한 많은 논의가 있지만 동적으로 처리 할 수 있다는 것을 알고 있습니다.동적으로 메모리 누수 처리
방금 인터뷰에서이 질문을 받았습니다. 질문이
응용 프로그램이 사용자 장치에서 실행 중일 때 메모리 누수를 감지하고 충돌 (OutOfMemoryError) 전에 데이터를 저장하는 방법.
모든 활동에 대해 하나의 BaseActivity를 만들고 onStop()에 데이터를 저장하는 것처럼 BaseActivity까지 추측 할 수 있습니다.
또한 BaseActivity에서 Error 클래스를 확장하는 것으로 추측 할 수 있지만 불행히도 Java는 다중 상속을 지원하지 않으며 Error 클래스의 특정 메소드가 동적으로 AFAIK 오류를 감지하지 않습니다.
위의 경우에 잘못되었을 수 있습니다.
다른 방법이 있습니까?
정말 좋은 기술입니다. 하지만 약 해지면 누출 여부를 판단하는 데 도움이 될까요? – Ranjit
누수 발견에 도움이되지 않아 새로운 것을 만들지 않도록 도와줍니다. 개체에 대한 약한 참조가 있으면 해당 개체가 GC에 의해 제거됩니다. 따라서 이것이 객체를 추적하고 객체의 가비지 콜렉션을 방해하지 않는 유일한 안전한 방법입니다. 어떤 개체가 유출되었는지 확인하려면 해당 개체의 수명주기를 추적해야합니다. 예를 들어,'onDestroy()'가 Activity에서 호출되면, 그 활동이 메모리에 유지 될 이유가 없습니다. 따라서 어떤 개체에서 해당 활동에 대한 강력한 참조가 있으면 해당 개체가 메모리를 누수하고 있습니다. –
설명해 주셔서 감사합니다. :) – Ranjit