(装)Android高性能编程基本规范

最近总结了一些,Android应用开发中,需要注意的一些事项,与大家分享

1.尽量少的声明全局变量

2.声明全局静态变量,一定要加final声明

3.声明非静态的全局变量,最好不要初始化任何值,在使用到的地方,在进行初始化

4.函数中若干次使用全局变量,应该将全局变量赋值给本地变量,然后直接使用本地变量

5.能用Int,不要使用浮点数

6.能用乘法不用除法

7.尽量避免使用geter和setter方法

8.在Activity的onCreate函数中,尽量做少的事。

9.在Activity中声明的静态数组或者静态代码块,重构到单独的一个类里。

10.布局文件要尽可能的优化,减少布局的解析时间 。 尽量减少布局的嵌套层次

11.Activity启动后开始进行异步线程的加载,最好delay一下。再开启线程

12.对于存在于集合中的Bean对象,尽可能少的声明变量。能用int 就不要用long.声明的string等复杂变量,最好不要进行初始化。

13.使用线程,一定要给它传一个名字,然后需要定义线程的优先级

14.在使用集合的时候,优先选择SparseArray。

15.尽量避免使用枚举

16.工具方法尽量写成是静态方法

17.线程间同步尽量使用开销小的同步锁

18.在使用集合类的时候,如果已知数据的规模,在初始化的时候,就设定好默认大小。

19.私有内部类访问外部类的私有变量,要将变量修改为包继承权限

20.对于开销大的算法,且不止是执行一次的,要使用缓存策略

21.避免在绘制或者解析布局的时候,分配对象。例如onDraw方法

22.不要给布局写无用的参数,例如RelativeLayout,写layout_weight属性

23.尽量减少布局的嵌套层数。例如包含一个ImageView和TextView的线性布局,可以用CompoundDrawable的TextView来代替

24.尽量用Android提供的SparseArray来代替HashMap

25.如果LinearLayout用于嵌套的layout空间计算,它的android:baselineAligned设置为false,可以加速layout计算

26.用FloatMath代替Math

27.尽量避免嵌套的使用layout_weight,那样会影响执行效率

28.如果为rootView设置了背景,那么会先用Theme指定的背景绘制一遍,然后才用指定的背景绘制,这叫做"overdraw",可以通过theme的background为null来避免

29.不要有无用的任何资源或者文件

摘自:http://blog.csdn.net/litton_van/article/details/21956859

时间: 2024-11-04 16:20:31

(装)Android高性能编程基本规范的相关文章

(转)Android高性能编程(1)--基础篇

关于专题     本专题将深入研究Android的高性能编程方面,其中涉及到的内容会有Android内存优化,算法优化,Android的界面优化,Android指令级优化,以及Android应用内存占用分析,还有一些其他有关高性能编程的知识.    随着技术的发展,智能手机硬件配置越来越高,可是它和现在的 PC 相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要求远远高于 PC 的桌面应用程序.以上理由,足以需要开发人员更加专心去实现和优化你的代码了.选择合适的算

(转)Android高性能编程(2)--延迟初始化

上一篇文章,讲到了很多Android应用开发中需要注意的性能和内存方面的技巧.这一篇文章就是从smali指令级来分析性能优化和内存优化的问题. 如何解决界面启动时间开销大的问题 我们在编写Android应用的时候,很多情况下会遇到界面启动时间过长的问题,用户体验非常的不好.所以我们在编写代码的时候,一定要多加注意如何提高界面的启动时间.下面会讲到几个优化界面启动开销的技巧. 1.类的加载开销 当一个类的静态方法或者静态属性被调用或者类被实例化得时候,虚拟机首先做的第一件事情就是DexClassL

Android编程开发规范

 Android编程开发规范         原文地址 http://www.jianshu.com/p/9b8aeca9b281 一.约定 Activity.onCreate(),Fragment.onActivityCreated(),作为程序入口,不用写入太多代码,尽量保持只调用initXXX()方法,简单明了展示调用过程.如:initData(),initView(). 单个方法体不要过长 代码任何地方不要拼错单词 杜绝整个类代码格式化 调用方法保持"临近原则",被调用的方法,

Android网络编程网上文章总结

关于网络编程,网上也有许多好的文章,这里我就选了几篇觉得不错的归纳到了一起,仅供参考 Android网络编程概述 首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) java.net.*(标准Java接口) java.net.*提供与联网有关的类,包括流.数据包套接字(socket).Internet协议.常见Http处理等.比如:创建URL,以及URLConnection/HttpURLConnection对象.设置链接参数.链接到服务器.向服务器写数据.从服务器读取数

漫谈Android网络编程

Android从业者,十之八九都是在做网络应用,不是互联网也是局域网.如今在4G和Wifi的天下下,流量什么的都已是浮云,单机应用的市场已然悄悄的一去不复返了.所以呢,不了解网络请求的同学要小心了,当心被时代的大浪一个浪头排在沙滩上. Android实现网络编程有HTTP.也有Socket.HTTP协议是应用层协议,主要解决如何包装数据,网络应用都会用到的协议:Socket是TCP/IP协议的封装,主要解决数据如何在网络中传输,常用于与服务器保持长连接,一般用于广告推送.实时聊天.在线游戏等.

Android网络编程概述

Android网络编程概述 首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) java.net.*(标准Java接口) java.net.*提供与联网有关的类,包括流.数据包套接字(socket).Internet协议.常见Http处理等.比如:创建URL,以及URLConnection/HttpURLConnection对象.设置链接参数.链接到服务器.向服务器写数据.从服务器读取数据等通信.这些在Java网络编程中均有涉及. b) Org.apache接口 对于大部

Android开发之——编码规范

1. 前言 这份文档参考了 Google Java 编程风格规范和 Google 官方 Android 编码风格规范.该文档仅供参考,只要形成一个统一的风格,见量知其意就可. 2. 源文件基础 2.1 文件名 源文件以其最顶层的类名来命名,大小写敏感,文件扩展名为.java. 2.2 文件编码:UTF-8 源文件编码格式为 UTF-8. 2.3 特殊字符 2.3.1 空白字符 除了行结束符序列,ASCII水平空格字符(0x20,即空格)是源文件中唯一允许出现的空白字符,这意味着: 所有其它字符串

[转载]Android网络编程(一)

Android网络编程概述 首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) java.net.*(标准Java接口) java.net.*提供与联网有关的类,包括流.数据包套接字(socket).Internet协议.常见Http处理等.比如:创建URL,以及URLConnection/HttpURLConnection对象.设置链接参数.链接到服务器.向服务器写数据.从服务器读取数据等通信.这些在Java网络编程中均有涉及. b) Org.apache接口 对于大部

【读书笔记-《Android游戏编程之从零开始》】6.Android 游戏开发常用的系统控件(TabHost、ListView)

3.9 TabSpec与TabHost TabHost类官方文档地址:http://developer.android.com/reference/android/widget/TabHost.html Android 实现tab视图有2种方法,一种是在布局页面中定义<tabhost>标签,另一种就是继承tabactivity.但是我比较喜欢第二种方式,应为如果页面比较复杂的话你的XML文件会写得比较庞大,用第二种方式XML页面相对要简洁得多. <?xml version="1