android 内存优化 Enums

 

在代码中使用枚举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倍。意味着你的引用使用的枚举越多,消耗空间就越大。

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值