Сначала ознакомьтесь с приведенной ниже цитатой из руководства разработчика Android:
Для перечислений часто требуется более чем вдвое больше памяти, чем статические константы. Вы должны строго избегать использования перечислений на Android.
Каждый класс Java (включая анонимные внутренние классы) использует около 500 байт кода. https://developer.android.com/training/articles/memory.html
Несмотря на зловещее предупреждение в первом пункте "строго избегать использования перечислений на Android", то, что сказано под этим пунктом, на самом деле звучит не так уж плохо. Константы представляют собой 32-битные целые числа, а перечисления - это, вероятно, 64-битные ссылки. Математика, приведенная там, где перечисления в два раза дороже, имеет смысл и не кажется настолько страшным.
Я обеспокоен тем, что предупреждение, отчасти, может быть основано на втором марке.
Я задаюсь вопросом, несет ли простая декларация класса "класс" 500 байтов накладные расходы? Как насчет типа enum enum?
Кажется вполне правдоподобным, что типы могут быть "расширенными классами", поскольку они могут принимать свои собственные методы, а не просто экземпляры. Чтобы сформулировать это как вопрос, если мое перечисление является "Цвет", и у меня есть 20 типов перечисления цвета (например, красный, синий, зеленый...), это 500 байтов на тип?