在代码中使用枚举Enums

来源:互联网 发布:淘宝怎么用图片搜索 编辑:程序博客网 时间:2024/05/16 19:28

 

在代码中使用枚举Enums

Android官网上明确提示避免使用枚举Enums

Enums often require morethan twice as much memory as static constants. You should strictly avoid usingenums on Android.

事实有些细微差别,而且和性能与内存膨胀之间的差别有着很大的关系。

当你载入应用时,android会为你的应用留出一定的系统空间。为了让你应用运行,它的所有DEX代码都被载人那个空间。为了你应用进行的运行环境配置。这个空间最后会和剩余的堆共享。但是辛好,它不和你的运行环境配置竞争。然而它的确会为系统内存施加压力,当然,这个内存降低时,会终止你应用来释放空间。

考虑到这一点,我们来看看你应用上的枚举的效果。

测试一个小型数据库的引用,它的整个DEX覆盖区是2556字节。

在Dome中加人一些整型,系统可使用可返回的状态。

 

重新编译后,DEX大小为 2680字节


在Dome中加人一些枚举

使用枚举 enum 结果是DEX大小为4188字节。所以代码中增加一个字节,就增加了1632字节到最后的DEX大小。差不多是int版本内存的13倍。意味着你的引用使用的枚举越多,消耗空间就越大。

在开发中你可以通过注解方式替代枚举的使用:


 

0 0
原创粉丝点击