Android

안드로이드에서 Enum

yswn1531 2024. 4. 22. 14:42
  • 고정된 상수 집합을 포함하는 데이터 타입

 

우리는 왜 Enum을 쓰는가?

  • 변수가 값 집합에서 하나만 쓸 수 있는 경우
  • 정의된 값 외에는 다른 값을 쓸 수 없어서 다른 값들을 무시할 수 있다.
  • 관련 없는 상수를 무시하고, 컴파일 시간 증가를 줄일 수 있다.

Enum의 가치

  • Enum의 값이 하나 추가 될 때 마다 객체 취급하여 heap 메모리를 사용하여 갉아먹는다.
  • 앱의 코드(DEX) 크기와 런타임 메모리 사용량을 증가킨다.
  • 1~2개의 enum class를 사용하는 것은 괜찮을 지 몰라도, 여러개의 enum class와 library가 가지고있는 enum을 포함하면 파일 크기를 증가시킬 수 있는 꽤 유효한 영향을 줄 것이다.

추신: core-platform team은 어느 부분에도 enum을 쓰지 말 것을 강력히 권고한다.

 

해결방안

  • 안드로이드에서 지원하는 annotaion에 TypeDef를 이용하자
  • Enum을 Integer로 바꿔주는 Proguard를 사용

참고

https://betterprogramming.pub/android-how-enums-can-impact-the-performance-f787ef5903dd