提高android代码效率的方法
来源:互联网 发布:win8网络界面空白 编辑:程序博客网 时间:2024/06/06 08:45
这不算原创吧,也不是转载,也不是翻译。算是阅读笔记吧。源于android的dev guide
http://developer.android.com/guide/practices/design/performance.html
开始
代码优化的基本原则:
- 只做应该做的
- 内存能不申请就不申请
具体做法:
对于数据结构和算法的优化所产生的效果要比遵循这些条条框框的要好
2. 避免申请内存
- 尽量不要在循环中新建对象,这样会迫使vm总在gc
- 用StringBuffer替代String做加运算。这样就不会产生大量的中间对象了。String可是无法修改的
- 截取String时,用subString()替代新建对象。因为用subString()时,内部的char[]是共享的
- 将一个类的数组切分成多个数组。也就是说一个类A含有{int a, int b},那么将其分成a[]和b[]的执行效率要比A[]的高。但是这么做不好维护吧~~
- JIT的优化会让接口引用和直接引用的效率相同
- JIT会让值缓存和不缓存的效率相同(就是在for中缓存len一类的东西)
5. 私有域不要用Getter和Setter进行访问
据说速度相差3x~7x
6. 常量用static final修饰
静态常量会被写入dex文件,在使用的时候直接被替换(类似与C中的宏吧);其他的域在调用的时候会去查类的域表,降低性能
7. 用foreach代替其他迭代方式
foreach在大部分情况下的执行效率是比较高的,而且还能避免指针越界等错误的发生。只有在用ArrayList的时候,手动迭代会比foreach快,3x多吧。
8. 内部类用package作用域替代private作用域
- 对于private的内部类,使用外部域时会新建桥接类,而package作用域的内部类就不会有这个问题
- 如果是对外公开接口的话,就最好将内部类写成private了
9. 关于浮点数
- float在计算的时候会比integer慢2x多
- float和double在计算的时候速度一样,只是double的空间占用是2x
库函数这个也就是遇到哪里用到哪里了。guide上说了两个函数:String.indexOf()和System.arraycopy()
11. 少用JNI
11. 少用JNI
JNI并不一定会比java代码的效率更高。guide上建议除移植之外尽量不用JNI。或者说不要因为提高效率而用JNI。
12. 优化后做性能对比
12. 优化后做性能对比
Guide上提的Caliper我怎么用不了呢?
- 提高android代码效率的方法
- Android Studio利用快捷键提高代码效率的方法(鸿洋大婶的~)
- 怎样提高android代码效率
- ABAP--两个提高ABAP代码效率的优化方法
- 单片机提高C语言代码效率的方法
- C语言提高代码效率的几种方法
- 提高写代码的效率
- 提高写代码的效率
- 提高代码debug的效率
- 提高代码的运行效率
- 提高java代码的效率
- Android开发提高代码效率的快捷模版
- 提高sql效率的方法
- 提高数据库效率的方法
- 提高查询效率的方法
- 提高数据库效率的方法
- 【Android】提高Adapter的效率
- 提高android ContentProvider的效率
- 网络改变了我们的生活
- 最大熵,三硬币模型的R语言代码
- 服务器集群负载均衡(F5,LVS,DNS,CDN)区别以及选型
- Hibernate的主键生成器使用总结
- IT人生 需要指引
- 提高android代码效率的方法
- twitter-mysql改进点
- ISTQB国际测试资格认证初级体验
- 判断点在线的左右侧算法
- mingw环境下boost库的编译和使用
- 社交网络数据挖掘公司乐荐推出“我好想网”:动真格的社交
- Oracle不完全恢复
- 容易被黑客攻击的10个漏洞
- ie下调整图片长宽的问题