关于代码优化.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于代码优化

Android代码优化的核心原则:不做不必要的事,不分配不必要的内存1、字符串频繁操作时,多用StringBuffer而少用String2、尽量使用本地变量,即反复使用的变量要先保存成临时或局部变量,尤其是循环中使用的变量3、String方法中substring和indexOf都是native方法可以大量的使用4、如果函数返回String类型,而且返回后的使用就是要加入到StringBuffer此时可以直接传入StringBuffer5、用两个一维数组代替二维数组 int[][]=====int[] int[]6、如果返回直接类型足够了,就不应返回接口类型如假如返回Hashmap就足够了,请不要返回Map7、如果一个方法不访问(不修改)成员变量,请用static方法8、尽量不用getters和setters,如果你非要用的话请加上final关键字,编译器会把它当成内联函数9、永远不要在for循环第二个参数中使用方法调用10、不修改的static变量请用static final常量代替11、foreach可以用来处理数组和arraylist,如果处理其他对象相当于Iterator12、避免使用枚举,请使用常量代替13、慎用浮点数 float尤其是大量的数学运算14、不使用的引用变量要手动置null,提高内存被回收的几率15、慎用图片操作,使用后要立即释放资源以上建议大家在写代码的时候可以参考一下,有些是应该当成习惯保持的,如果你已经做到这些并都养成了习惯的话,请记住不要试图去做任何优化,相信你的编译器吧,剩下的都交给它了。 对于一些Android项目,影响性能瓶颈的主要是Android自己内存管理机制问题,目前手机厂商对RAM都比较吝啬,对于软件的流畅性来说RAM对性能的影响十分敏感,除了 优化Dalvik虚拟机的堆内存分配外,我们还可以强制定义自己软件的对内存大小,我们使用Dalvik提供的 dalvik.system.VMRuntime类来设置最小堆内存为例: 1 private final static int CWJ_HEAP_SIZE = 6* 1024* 1024 ; 2 3 VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE); 4 //设置最小heap内存为6MB大小。当然对于内存吃紧来说还可以通过手动干涉GC去处理 bitmap 设置图片尺寸,避免 内存溢出 OutOfMemoryError的优化方法 ★android 中用bitmap 时很容易内存溢出,报如下错误:Java.lang.OutOfMemoryError : bitmap size exceeds VM budget ● 主要是加上这段: 1 BitmapFactory.Options options = new BitmapFactory.Options(); 2 options.inSampleSize = 2; ● eg1:(通过Uri取图片) 1 private ImageView preview; 2 BitmapFactory.Options options = new BitmapFactory.Options(); 3 options.inSampleSize = 2; 4 //图片宽高都为原来的二分之一,即图片为原来的四分之一 5 Bitmap bitmap = BitmapFactory.decodeStream(cr 6 .openInputStream(uri), null, options); 7 preview.setImageBitmap(bitmap); 以上代码可以优化内存溢出,但它只是改变图片大小,并不能彻底解决内存溢出。 ● eg2:(通过路径去图片) 1 private ImageView preview; 2 private String fileName= /sdcard/DCIM/Camera/2010-05-14 16.01.44.jpg; 3 BitmapFactory.Options options = new BitmapFactory.Options(); 4 options.inSampleSize = 2;//图片宽高都为原来的二分之一,即图片为原来的四分之一 5 Bitmap b

文档评论(0)

wuyuetian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档