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操作。