Android高效编程指南.ppt

Android高效编程指南.ppt

ID:51588205

大小:551.50 KB

页数:15页

时间:2020-03-24

Android高效编程指南.ppt_第1页
Android高效编程指南.ppt_第2页
Android高效编程指南.ppt_第3页
Android高效编程指南.ppt_第4页
Android高效编程指南.ppt_第5页
资源描述:

《Android高效编程指南.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Android高效编程指南2010年03月两个基本的原则不要做不必要做的事情尽可能的节省内存的使用尽可能避免创建对象1(AvoidCreatingObjects)越少的对象创建意味着越少的垃圾回收,这会提高你程序的用户体验质量。例子:尽量少创建没用的临时变量:尽可能避免创建对象2(AvoidCreatingObjects)尽量使用一维数组代替多维数组(将多维数组分割成几个平行的一维数组):如:两个平行的Foo[]和Bar[]要比一个(Foo,Bar)对象数组的效率高得多使用原生方法(UseNativeMethods)尽量使用对

2、象自身带有的接口方法,因为这些方法有些是使用C编写的,比自己用Java编写的效率高。如String.indexOf()、String.lastIndexOf()使用实现优于使用接口(PreferVirtualOverInterface)1、MapmyMap1=newHashMap();//常规编程2、HashMapmyMap2=newHashMap();//嵌入式编程接口方法的调用比实现类方法的调用会花费2倍以上的时间。多使用接口的具体实现类。使用静态优于使用虚拟(PreferStaticOverVirtual)给方法加上st

3、atic:如果你没有必要去访问实例(对象)的变量,那么使你的方法成为静态方法。它会被更快的调用,因为它不需要一个虚拟函数导向表。给属性加上static:如果您的变量不需要被每个实例(对象)分享,那么使你的属性成为静态属性。它会被更快的调用,因为JVM只为静态分配一次内存,而非静态变量,每创建一个实例时,JVM就为非静态变量分配一次内存)。内在避免使用Get/Set方法(AvoidInternalGetters/Setters)外部调用时使用Get和Set函数,但是在内部调用时,我们应该直接调用。虚方法的调用比实例属性查询的代价

4、还要多。缓冲对象属性调用(CacheFieldLookups)访问对象属性要比访问本地变量慢得多。不要这样写:for(inti=0;i

5、strVal="Hello,world!";当类被创建时,编译器会调用一个类初始化方法——,这个方法会对intVal和strVal进行初始化处理。可以写成如下:staticfinalintintVal=42;staticfinalStringstrVal="Hello,world!";初始化是由虚拟机来处理的,所以类的创建将更快。慎重使用增强型For循环语句(UseEnhancedForLoopSyntaxWithCaution)增强的for循环在数组里面性能很好,但是当和Iterable对象一起使用时要谨慎,

6、因为这里多了一个对象的创建。避免使用枚举(AvoidEnums)publicclassFoo{publicenumShrubbery{GROUND,CRAWLING,HANGING}}这会转变成为一个900字节的class文件(Foo$Shrubbery.class)。第一次使用时,类的初始化要在独享上面调用方法去描述列举的每一项,每一个对象都要有它自身的静态空间,整个被储存在一个数组里面(一个叫做“$VALUE”的静态数组)。那是一大堆的代码和数据,仅仅是为了三个整数值,代价很高。通过内联类使用包空间(UsePackageS

7、copewithInnerClasses)建议使用内部类。避免浮点类型的使用(AvoidFloat)尽量避免使用float类型:嵌入式的处理器通常并不支持浮点数的处理。所有的“float”和“double”操作都是通过软件进行的,一些基本的浮点数的操作就需要花费毫秒级的时间。一些标准操作的时间比较

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。