제목으로는 애매하실텐데 제가 궁금한 것은 앱을 개발하는데 하나의 액티비티에 리스트뷰가 있고 거기서 아이템을 선택하면 각각마다 다른 사진이 있는 페이지가 떠야되는 어플이 있다고 가정합니다. 액티비티가 많은 것과 함수가 많은 경우 어느쪽이 효율이 높은가요?
자세히 말씀드리면
여기서 이것을 구현할수 있는 방법은
1. 각 리스트뷰의 아이템 마다 누르면 각각에 해당하는 액티비티를 다 만들어 해당하는 액티비티를 인텐트를 이용해서 넘겨 보여 주는 방법이 있습니다.
2. 각 리스트뷰의 아이템을 누르면 사진을 보여주는 액티비티는 하나만 만들고 그 안에서 IF 함수를 사용하여 어느 아이템을 클릭했는지 값을 받아 해당하는 사진을 한 액티비티에서 바꿔서 보여주는 방법이 있습니다.
\물론 단순히 클릭시 사진을 보여주는 방법은 여러가지가 있지만 제가 궁금한 것의 요점은 사진보여주기가 아닙니다.^^(사실 적당한 예가 생각이..)
위와 같이 간단한 경우는 별 차이 없겠지만 정보를 주기위한 어플이나 사진으로 내용으로 보여주는 어플은 위와 같은 경우가 많이 발생하면 처리할 것도 많을텐데 이럴 경우 액티비티를 많이 만들어 바로바로 해당하는 액티비티로 인텐트로 넘겨주고 이전페이지로 갈땐 액티비티를 날려주고 이런식으로 하는 것과 한 액티비티를 놔두고 IF문으로 하여 교체 해주는 것 중 어느것이 효율성이 높은지 알고 싶습니다.
개발측면의 효율, 어플구동측면의 효율이요~
안녕하세요..아직 학부생인 쏭레오입니다. 공지사항을 읽으니 인사말은 앞에 붙이지 말라고 해서 뒤쪽에 붙인답니다~^^
프로그래밍 언어는 대부분 다 건드려 봤고 안드로이드는 6개월정도 되었고 프로젝트도 하나 완성해보긴 했지만 이제 안드로이드 왕초보만 벗어난 수준입니다...앞으로 잘 부탁드리겠습니다...ㅎ
P.S. 공지사항 숙지했습니다~
단영님과는 다른 의견인데요.
Activity는 안드로이드 app을 구성하는 컴포넌트 중에 실행시 가장 load가 많이 걸리는 녀석입니다.
따라서 Activity를 빈번하게 생성한다고 하면 퍼포먼스 측면에서 당연히 문제가 있을꺼구요.
(task를 효율적으로 구성한다면 다르겠지만요.)
그렇다고 Activity 하나에서 다 처리해버리면 모듈화를 무시해버리는 것이기 때문에,
유지 보수가 힘들어지겠지요.
저도 유비 보수를 따지는 쪽이기 때문에, 1번을 선택하겠습니다.
그리고 Activity를 종료시킬 때 무조건 finish를 호출하는 것은 옳지 않습니다.
메모리 관리 측면에선 나을 수도 있지만, 빈번하게 호출되는 Activity의 경우
메모리 할당을 매번 새로 해야되기 때문에 퍼포먼스가 저하될 우려가 있거든요.
특별한 경우가 아닌 이상 Activity의 관리는 시스템이 알아서 하도록 해주는 것이 좋습니다. ㅎㅎㅎ
저도 2번이요 단영님과 같은 의견입니다. 한 액티비티에서 가능하다면 한 액티비티에서 하는게 좋습니다..
실제 예로 액티비티를 서로 이동하면서 장면을 바꿔주는경우와 한액티비티에서 뷰를 서로 바꿔줘가면서 테스트해본결과 액티비티 이동이
현저히 퍼포먼스가 떨어집니다.




음.. 코드의 재활용이나 개발 속도를 생각하면 당연히 2번 아닐까요
어차피 onitemclick에서도 position을 가져다가 비교를 해야되니
리스트 액티비티에서 비교를 하느냐, 사진 액티비티에서 비교를 하느냐의 차이인 것 같은데요.
그리고 사진 액티비티에서 수정사항이 생기면 1번의 경우는 수 많은 액티비티를 수정해야합니다.
생각해보면, 각각의 액티비티를 만들어서 그 task에 최적화된 코드를 적는것이 효율은 더 높겠지만, 그 효율성보다 유지보수가 편한걸 택하겠습니다 저는