Android应用性能优化整体策略

来源:互联网 发布:a的伴随矩阵怎么求 编辑:程序博客网 时间:2024/06/07 02:44

传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229

        有关Android应用性能优化的议题,在互联网上可以说是众说纷纭,没有一个统一的标准和规范可循。本文主要是结合作者的实际项目情况以及项目前期的知识储备,对这一议题加以总结和概括,本文不会涉及太多代码的细节。仅以解决方案抛砖引玉,欢迎大家指正和补充。

1优化日程篇

(1)通过分析代码细化优化点;
(2)优化启动加载项;
(3)数据库处理方式优化;
(4)优化常用操作的性能;
(5)内存占用优化以及性能提升交付。

2优化代码篇

(1)避免创建不必要的对象;
(2)如果方法用不到成员变量,可以把方法声明为static,性能提高15%-20%;
(3)避免使用getters/setters存取Field,可以把Field声明为public直接访问,性能提高三倍;
(4)static变量如果不需要修改,应使用final修饰符定义为常量;
(5)使用增强For语句,性能提高三倍;
(6)私有内部类要访问外部类的Field或方法,可以把外部类的Field或方法声明为包访问权限;
(7)合理利用浮点数,比整型慢两倍。

3优化常用控件篇

        Google的SDK提供的API当中的控件在实际项目中也是需要优化的,因为SDK提供给我们的是通用版本,为了保证兼容的最大化,很多控件的执行性能是可以进行提升的,这里以最常见的ListView控件为例,涉及它的优化方案可以从如下几个方面去考虑:
(1)构建ViewHolder类;
(2)启用convertView缓存;
(3)分批加载数据;
(4)延迟(异步)加载数据;
(5)构建LRUCache。

4优化页面布局篇

        Android布局是通过ViewGroup分层构建而来,其结构可以看成树型结构,当树的深度很大或者说层次过多时,页面布局的复杂度就变大,绘制页面的时间就越多。Android界面追求的是炫酷还是复杂度越高,尽量用最少复杂度的布局构建成的界面才是开发者的实际追求。可以利用Android SDK目录的tools文件夹下的hierarchyviewer工具来查看每个界面布局层次结构,探寻层次结构优化点。例如:两层LinearLayout牵引ImageButton和TextView的布局可以改由一个RelativeLayout来牵引,这样布局绘制ImageButton和TextView时间更短,相应的布局复杂度也会减一。