Android 枚举(Enum)类最佳实践
2016-04-18 17:31
148 查看
一、众所周知,在Android官方的性能优化相关课程中曾经提到使用枚举存在的性能问题,不建议在Android代码中使用枚举:
Enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android
二、示例代码:
Enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android
二、示例代码:
public class MainActivity extends Activity { //先定义 常量 public static final int SUNDAY = 0; public static final int MONDAY = 1; public static final int TUESDAY = 2; public static final int WEDNESDAY = 3; public static final int THURSDAY = 4; public static final int FRIDAY = 5; public static final int SATURDAY = 6; //用@IntDef "包住" 常量; // @Retention 定义策略 // 声明构造器 @IntDef({SUNDAY, MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY}) @Retention(RetentionPolicy.SOURCE) public @interface WeekDays {} @WeekDays int currentDay = SUNDAY; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setCurrentDay(WEDNESDAY); //声明变量 @WeekDays int today = getCurrentDay(); switch (today){ case SUNDAY: break; case MONDAY: break; case TUESDAY: break; case WEDNESDAY: break; case THURSDAY: break; case FRIDAY: break; case SATURDAY: break; default: break; } } public void setCurrentDay(@WeekDays int currentDay) { this.currentDay = currentDay; } @WeekDays public int getCurrentDay() { return currentDay; } }三、build.gradle中配置:
compile 'com.android.support:support-annotations:22.0.0'
相关文章推荐
- Android拓展系列(12)--使用Gradle发布aar项目到JCenter仓库
- Android studio 引用系jar包的问题
- Android M 新的运行时权限开发者需要知道的一切
- Android Binder设计与实现 - 实现篇
- android 通过uri获取bitmap图片并压缩
- Android 练习项目 ——简单记账软件的实现
- Android 为PopupWindow设置动画效果
- Android - Jar mismatch! Fix your dependencies问题解决
- Android实现文本排版
- android基础 --- 权重(weight)
- android中HandlerThread的原理和用法讲解
- Android解析之三分钟教你快速掌握并使用GSON解析Json
- android内存泄露案例和解析
- AllJoyn+Android开发案例-android跨设备调用方法
- Android M 动态权限获取
- Android插件化框架研究-DroidPlugin
- Android Studio 如何打JAR包
- Android中程序与Service交互的方式——交互方式
- Android Bitmap与DrawAble与byte[]与InputStream之间的转换工具类
- Android从启动到程序运行发生的事情