[Android] Enum의 사용에 대해 (DEX파일 크기 비교)
원문 링크 : http://androidjavapoint.blogspot.kr/2017/03/android-performance-avoid-using-enum-on.html Android Performance: Avoid using ENUM on Android 라는 글을 보면서부터 알게된 점이 있다. Enum의 사용이 성능에 문제가 될 수 있다는 점. (자세한 내용은 위의 본문을 확인) Enum의 문제점이라고 나열된 내용은 아래와 같다. - Enum을 추가하면 dex파일의 크기가 커질 수 있다. (Enum이 int 대비 13배정도 크다.) - 앱이 실행될 때, dex파일이 Application Heap Memory에 Load 되므로 dex파일의 크기가 커지는 것은 Memory이슈로도 연결된다. (이미지 출처 : The price of ENUMs (100 Days of Google Dev) ) 그래서 dex파일에 얼마나 많은 영향을 주는지 직접 확인해봤다. 1. 기본 Enum의 구조 Android Developer Page에서 확인 할 수 있는 enum의 구조는 아래와 같다. Enum은 기본 Object를 상속받아서 Comparable, Serializable을 implement하고 있다. (이러니 int 대비 13배가 클 수 밖에...) 2. Enum -> @IntDef, @StringDef 로 변경 시 Dex파일 크기 변경 작업중이었던 실제 Project를 대상으로 Enum을 @IntDef와 @StringDef로 변경을 해보았다. 7개의 Enum을 변경하였고 @IntDef로 변경한 것은 2개 나머지는 @StringDef로 변경하였다. (총 27개의 Enum instance를 변경함)...