Android开发之减少内存占用

1、不要动不动就分配内存

开发Android应用的时候,要尽量减少new关键字的使用。因为在手机中GC释放一次内存是一件恐怖的事情。GC释放内存有时会耗费好几百毫秒的时间。可以想象,如果你开发的是游戏,那么FPS将会下降多少

虽然这个原则大家都知道,我们任然会出现类似的问题。这是为什么呢?其实这是一些隐式对象在创建的缘故。

A)如果可能,那么不要使用可变参数



外部调用的时候


系统会创建一个临时的数组对象,类似


如果该方法经常被调用,则会极大的增加GC的压力,所以,如果可能就不要使用可变参数。

2、用StringBuilder代替字符串相加

下面这段代码


系统会翻译成如下格式


没什么问题,但如果像这样就好玩了:


这段代码相当于:


是不是很悲剧,StringBuilder被毫无意义的创建了多次。期间还在数字转换成文本期间创建了String。所以连接字符串时使用StringBuilder。

3、将不变的量设置成常量,特别是字符串

较有效的办法是这样

public static String feedback_url = "http://app.kufaxian.com/feedback?";
	public static String help_url = "http://app.kufaxian.com/help";
	public static String platform = "android";
	public static String relevant_apps_url = "http://app.kufaxian.com/apps-android";
当然,即使这样做了,后续对文本操作任然是一件费时费力的活。原因是java中,String是只读的,任何String操作均隐含了new操作。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值