(转)编写高效的Android代码(提高运行速度,节省电量)

简介: 1.避免建立对象,特别是循环啦之类的不能建很多临时的对象,开销销毁都很耗性能。2.尽量避免使用多维数组,如果不是开发api的话尽量使用一维数组代替多维数组。3.很多时候注意使用java自带的api方法,因为大部分api方法都经过了非常良好的设计,甚至调用了底层的c/c++方法,性能方便比较有保证。

1.避免建立对象,特别是循环啦之类的不能建很多临时的对象,开销销毁都很耗性能。
2.尽量避免使用多维数组,如果不是开发api的话尽量使用一维数组代替多维数组。
3.很多时候注意使用java自带的api方法,因为大部分api方法都经过了非常良好的设计,甚至调用了底层的c/c++方法,性能方便比较有保证。
4.声明对象时最好用具体类来声明。虽然使用接口声明更能使程序松耦合,但是要注意调用一个接口的引用会比调用实体类的引用多花费一倍的时间。
5.用静态方法比用虚方法好。如果你不需要访问一个对象的成员变量,那么请把方法声明成static。因为它可以被直接调用而不需要一个虚函数表。
6.如非非常必要,请直接访问对象的变量而不是getter和setter。虚方法的开销比直接访问成员变量大得多。
7.应该少去访问成员变量,通常将成员变量缓存到本地(方法)。访问成员变量比访问本地变量慢得多。
8.注意永远不要在for循环的第二个条件中调用任何方法,这是很低级的优化失误。
9.方法的参数与本地变量的效率相同。
10.如果变量值不变或者方法不可能被重写,请尽量声明成final形式。
11.谨慎使用jdk1.5提供的foreach语法,虽然它进行一些保存到本地变量的优化,但是会产生一些额外的对本地变量的存储操作,速度要稍微慢一些。
12.枚举变量非常方便,但不幸的是它会牺牲执行的速度和并大幅增加文件体积。(枚举不是很熟,发完帖子后马上去补习。。)
13.将与内部类一同使用的变量声明成非private形式。因为虽然内部类可以访问外部类的private变量和方法,但是java内部访问过程是通过生成另一个非private变量或方法来进行访问的,为了避免这种内部的生成,如不是很必要,请不要让内部类去访问外部类的private变量或方法。
14.避免使用浮点数运算和除法运算。很多嵌入式处理器是不支持浮点运算的。甚至很多嵌入式芯片都不支持整数的除法和取模运算。

 

http://www.eoeandroid.com/thread-629-1-1.html 

目录
相关文章
|
17天前
|
Java API 调度
Android系统 自定义开机广播,禁止后台服务,运行手动安装应用接收开机广播
Android系统 自定义开机广播,禁止后台服务,运行手动安装应用接收开机广播
40 0
|
2月前
|
移动开发 监控 安全
mPaaS常见问题之Android集成dexPatch热修复运行时候无法正常进行热更新如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
38 0
|
2月前
|
Ubuntu 网络协议 Java
【Android平板编程】远程Ubuntu服务器code-server编程写代码
【Android平板编程】远程Ubuntu服务器code-server编程写代码
|
2天前
|
Ubuntu Android开发 数据安全/隐私保护
【Android平板编程】远程Ubuntu服务器Code-Server编程写代码
【Android平板编程】远程Ubuntu服务器Code-Server编程写代码
|
3天前
|
Java Android开发
Android 长按桌面显示菜单的代码
Android 长按桌面显示菜单的代码
8 0
|
3天前
|
Java Android开发
Android 切换壁纸代码流程追踪
Android 切换壁纸代码流程追踪
12 0
|
3天前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
10 0
|
3天前
|
Java API Android开发
Android系统升级A/B分区OTA升级应用层调用UpdateEngine代码
Android系统升级A/B分区OTA升级应用层调用UpdateEngine代码
7 0
|
2月前
|
Android开发
android studio 重新将module中的代码加入到自己项目中,报错找不到SO文件。
android studio 重新将module中的代码加入到自己项目中,报错找不到SO文件。
9 1
|
3月前
|
编译器 开发工具 Android开发