안드로이드 개발 질문/답변
(글 수 45,052)
image는 서버에서 받아오는 것이고
A activity에서 image를 사용하고
B activity에서 image를 사용하고
A에서 image 클릭 - > B activity start 이런 상태인데
이미지 수가 많고 액티비티의 실행 단계가 여러단계일 경우에
메모리 쪽에 걱정이 되긴 하는데 관련 지식이 부족해 막막한 상황입니다.
A activity에서 b activity start시키면 onPause - onStop이 실행이 될텐데
이 떄 A activity의 이미지가 메모리 자원을 사용하는 것인가요?
아니면 캐시같은 곳에 저장되나요?
그리고 서버 트래픽과 이미지 로드 속도를 고려해서 이미지를 받아와서 핸드폰에 저장을 하려고 하는데
따로 저장을 해줘야 하나요? 아니면 임시저장소 같은 곳에 저장된걸 가져와서 다시 재사용이 가능한가요?
저도 아직 설계하는 중이라 구현이 안되서 자세히 찾아보지는 못했지만
관련 검색 키워드라도 알려주시면 감사하겠습니다!




잘 알지는 못하지만, 아는 선안에서 답변드립니다.
1. A activity 에서 B로 넘어갈때, A에서 사용하는 image의 경우,
native heap을 사용하기 때문에, java heap은 변하지 않겠지만, native 쪽으로 부담이 분명히 갈 것입니다.
stop에서, 사용된 bitmap을 recycle 해주시고, restart 에서 다시 뿌려주시는 편이 좋을 거라 생각되네요.
2. 이 부분은 native 어플 중에, Gallery3D의 picasa 앨범 가져오는 부분과 비슷해 보이네요.
거기도 구글 picasa에서 받아와서 폰에 저장해서 보여주는 방식이거든요.
Gallery3D 소스에서 picasa로 검색해서 그 부분들을 확인해보시는 것도 좋을 듯 합니다.
단점이라면, 받아온 이미지가 media scanner에서 확인되기때문에, 이후에 Gallery에 사진처럼 표시되어버리는 점인데,
그 부분은 잘 고민해보셔야 할듯 하네요.