android性能调优

来源:互联网 发布:js及jq基础知识 编辑:程序博客网 时间:2024/05/09 04:03

一、资源方面

1、尽量使用存为web格式的png图片,可以大幅减少图片字节大小并保持效果不变,如有的png小图片都1-2M,其实优化之后十多K可以达到同样的显示效果。

2、小图片太多的话,可以拼到一张图上,然后clip要显示的部分 

3、使用点9格式图片

4、使用proguard混淆,proguard在防止反编译的同时最大的作用就是大幅减少文件大小

5、能使用代码设置背景颜色的地方绝不使用颜色图片


二、布局方面

1、布局去掉没必要的嵌套layout,层次越多越耗性能,减少复杂度

2、在系统组件基础上自定义组件,提高复用效率

3、使用<include>标签共享布局,使用<merge>优化布局层次

4、listview优化,网上很多,不一一列举了

5、将背景设置为空,将Acitivity 中的Window 的背景图设置为空getWindow().setBackgroundDrawable(null);


三、代码方面

1、不等资源自动回收,把对象设置null,主动调用System.gc();

2、不必要的操作不要放到循环中,如实例化变量等

3、StringBuffer代替String进行字符串操作

4、多使用局部临时变量(栈内存),少使用静态变量实例变量(堆内存)

5、移位操作代替乘除操作

6、使用System.arraycopy()复制数组

7、为vector\hashtable定义初始大小

8、统一设置log打印的开关,正式发布时去掉Log输出

9、能用sharepreference的用sharepreference,否则用文件操作,最次用数据库,文件操作的速度比数据库的操作要快10倍左右

10、采用的数据类型、数据结构、算法是否可以调优,如二维数组占内存是一维数组的10倍,尽量不用浮点数、枚举类型,快速排序代替冒泡排序,二分查找代替线性查找有序数组,线性数据使用循环二叉树数据使用递归等。

11、http设置连接超时和响应超时,数据可以使用gzip压缩

12、finally中关闭流对象

13、使用httpurlconnection而不是用httpclient进行http网络连接

14、及时关闭cursor,不要过多进行打开关闭cursor操作


四、其他

1、使用traceview查看内存使用情况

2、使用hierarchy view查看布局是否可以优化


0 0
原创粉丝点击