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