Fall in IT.

Android 성능 저하 요인 본문

기타

Android 성능 저하 요인

D.Y 2016. 3. 20. 21:05

오늘은 Android 개발 시 주의해야 할 사항에 대해서 알아보겠습니다.

요즘 모바일 장비들의 성능이 좋아지고 있지만, 성능에 대한 이슈는 아직도 여전합니다.

개발에 있어서 몇가지 주의사항을 정리해 보겠습니다.


안드로이드 성능과 관련된 자료는 구글에서 제공하는 개발자 사이트를 이용하면 됩니다.

http://developer.android.com/training/articles/perf-tips.html


개발자 사이트 중 몇가지만 설명해보겠습니다.



안드로이드 성능 저하 요인

  • Avoid Creating Unnecessary Objects
    - 필요없는 객체 생성은 피해야 한다.
    - String 대신 StringBuffer를 사용한다.
    - Integer 대신 int를 사용한다.
    - 다차원 배열 대신 1차원 배열을 사용한다.
  • Prefer Static Over Virtual
    - static을 적절히 사용한다. 만약 인스턴스 변수에 접근할 일이 없을 경우엔 static 메서드를 선언하여 호출하는 것이 훨씬 더 효율적이다.
  • Use Static Final For Constants
    - 상수에는 static final을 사용한다.static으로 선언할때 저장되는 위치와 static final로 선언할때 저장되고 참조되는 위치가 다르다. static final의 접근속도가 더 빠르다.
  • Avoid Internal Getters/Setters
    - 내부에서는 getter와 setter사용을 피해야 한다. 
  • Use Enhanced For Loop Syntax
    - for-each 루프를 사용해야 한다.  대부분의 Collection에서 제공하는 클래스들은 전통적인 for루프보다 for-each루프를 사용하는 것이 더 빠르다.
    - 단, ArrayList는 전통적인 for 루프가 3배 더 빠르다고 한다.
  • Consider Package Instead of Private Access with Private Inner Classes
    - private한 Inner 클래스의 private 접근을 피해야 한다.
  • Avoid Using Floating-Point
    - 소수점 연산을 피해야 합니다. 안드로이드 기기에서는 정수 연산보다 소수점 연산이 2배 느리다.
    - double이 float보다 2배의 저장 공간을 사용하므로, 가능하다면 float을 사용해야 하는 것이 효율적이다.
  • Know and Use the Libraries
    - 라이브러리를 사용해야한다. 만든코드보다 API에서 제공하는 클래스와 메서드가 훨씬 더 효율적일 수 있다.
      (예를들어, 배열을 복사할때는 for루프를 사용하는것보다 System.arraycopy() 메서드를 사용하는것이 9배 이상 빠르다고 한다.)


모두 즐거운 코딩 하세요~


Comments