android 设计高性能的应用程序
2015-11-17 18:52
295 查看
仔细优化代码:
尽可能优化应用程序的架构,Android性能优化无末日,我们能做的还很多.
尽可能少创建对象
创建对象会影响性能,尤其是在执行GC时,应该尽可能重用已有对象,减少GC对应用性能的影响.例如:不要在循环中拼接字符串.
减少浮点运算
Android系统中,浮点型运算要比整数运算要慢两倍,例如:在没有浮点计算单元和JIT(just in time)的第一代设备. 此外,有些设备没有整数➗的硬件指令,这意味着整数除法在这些设备上是通过软件实现的,这尤其会给散列表的性能带来负担.
使用System.arraycopy()复制
使用Static的arraycopy方法要比自己写的复制方法效率要搞.
使用增强For循环:
在没有JIT的设备上,增强FOR循环比普通FOr循环快,
在有JIT设备上,增强型for循环也并不会比普通for慢
但是在处理ArrayList时,会比普通for循环要慢.所以,在处理Arraylist时,要使用普通for循环.
避免使用枚举
在先前的版本,Google曾说要避免使用枚举.
原因是枚举会增加.dex的大小并影响性能.
现在Google貌似已经处理好了.可参加这个问题 Why was “Avoid Enums Where You Only Need Ints” removed from Android’s performance tips?.
选择适当的算法和数据结构
例如:线性搜索算法和二分法.
尽可能优化应用程序的架构,Android性能优化无末日,我们能做的还很多.
尽可能少创建对象
创建对象会影响性能,尤其是在执行GC时,应该尽可能重用已有对象,减少GC对应用性能的影响.例如:不要在循环中拼接字符串.
减少浮点运算
Android系统中,浮点型运算要比整数运算要慢两倍,例如:在没有浮点计算单元和JIT(just in time)的第一代设备. 此外,有些设备没有整数➗的硬件指令,这意味着整数除法在这些设备上是通过软件实现的,这尤其会给散列表的性能带来负担.
使用System.arraycopy()复制
使用Static的arraycopy方法要比自己写的复制方法效率要搞.
使用增强For循环:
在没有JIT的设备上,增强FOR循环比普通FOr循环快,
在有JIT设备上,增强型for循环也并不会比普通for慢
但是在处理ArrayList时,会比普通for循环要慢.所以,在处理Arraylist时,要使用普通for循环.
避免使用枚举
在先前的版本,Google曾说要避免使用枚举.
原因是枚举会增加.dex的大小并影响性能.
现在Google貌似已经处理好了.可参加这个问题 Why was “Avoid Enums Where You Only Need Ints” removed from Android’s performance tips?.
选择适当的算法和数据结构
例如:线性搜索算法和二分法.
相关文章推荐
- Android System Property分析(3):property接口实现
- Android环境配置
- android多屏设计、适配(来自官网)
- ActiveAndroid 新增字段的数据库升级
- Android 6.0 读取Mac地址
- Android ListView 添加 HeaderView后,HeaderView的布局不起作用
- Android Sqlite synchronous设置
- [Android] 随时拍图像处理部分总结及源码分享
- android LayoutInflater原理
- Android中图片缩放9path图片的使用
- MPAndroidChart——饼图
- MPAndroidChart——饼图
- android图片处理
- Android自定义控件之实现类似文件夹顶部的层层显示的横栏效果
- android高德地图调用定位显示
- 利用Framework7的初次使用,使用教程,环境搭建
- CoverFlow一个实例demo
- Android NDK之JNI陷阱
- 【android学习】Android权限permission
- MVP模式在Android中的应用之图片展示选择功能的框架设计