태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

안드로이드 개발 시 유의 사항

개발 노트 2009.10.19 09:43 posted by 무병장수권력자


작성자 : 김문규
최초 작성일 : 2009.10.19

device 개발 시에는 코드 유지 보수의 효율성과 성능 최적화간의 절묘한 trade-off가 중요합니다. 물론 제작자 입장에서는 성능최적화가 최우선되어야 한다고 생각할 수 있지만, 이 경우에는 차기 모델 출시시에 더 많은 공수가 투입되어야 하기때문에 꼭 좋은 선택만은 아닙니다.

안드로이드 개발자 사이트에 보면 몇가지 권고사항이 있습니다. 딱히 안드로이드 개발에만 국한되지는 않아 보입니다. 간단하게 소개합니다. 자세한 적용은 원문을 참조하세요.
http://developer.android.com/guide/practices/design/performance.html

안드로이드 개발 시 유의 사항
1. 불필요한 임시 객체를 만들지 말아라
2. 최대한 native method를 사용하라
3. virtual > interface
Map myMap1 = new HashMap();
HashMap myMap2 = new HashMap();
후자를 사용한다.
4. static > virtual
5. 내부적으로는 getter, setter를 사용하지 않는다. direct access해라.
6. 자주 사용할 경우에는 멤버 변수를 local copy 한 후 사용한다.
    - 속도 측면에 이득이 있다.
7. constant는 final 선언을 한다.
8. enhanced for loop는 조심해서 사용한다.
   - 컨테이너의 종류에 따라 성능이 떨어질 수 있다. ArrayList에서는 무조건 사용하지 않는다.
9. (외부 공개 API가 아닌 경우에는) enum은 가급적 쓰지 마라.
10. inner class에서 접근해야 하는 변수의 경우 public화 하자. (? 이거는 잘 이해가 안되네요.)
11. float, double은 가급적 쓰지 마라. 많이 느리다.



  1. Commented by 최종일 at 2009.12.14 17:07

    안드로이드 SDK 나도 한번 배워보고 싶은데...
    삼성전자 다녔으면 폰쪽에서도 제대로 일좀 해봐야 하는데 쩝

    현실적으로 11월말까지 해주기로 약속한 프로그램도 제때 안해주는데 ... 지금은 여력이 없네. ㅋㅋ
    나중에 좀 알려주삼 ^^

    와이프 예정일이 곧 닥치는지라 긴장하며 지내고 있음.

    둘째 태어나면 최초로 소식 알려주겠음

    따뜻한 연말연시 보내라~

  2. Commented by 1111 at 2010.11.15 10:32

    http://blog.doortts.com/133

    android 에서도... enhanced for loop 의 사용을 권장하는 것으로 아는데요.. OTL

    • Commented by 무병장수권력자 at 2010.12.14 00:38 신고

      해당글을 보니 잘 쓰여져 있어서 도움이 많이 되었습니다. 그런데, 권장을 하는 이유가 성능이 아니라 코드 읽기에 더 비중이 많아 보이는 군요.

  3. Commented by 선배 at 2011.10.05 15:42

    잘보고 지나갑니다.
    10번 내용은 inner class에서 멤버 변수를 접근 할 때 getter / setter를 사용하지 말아도 된다. 정도로 생각하시면 될 듯 한데요..ㅎㅎ
    그럼 좋은 포스트 감사해요