android 代码规范总结

一、 命名规范
1、 类命名
大驼峰命名。
2、 变量命名

1)成员变量(全局)小写m开头,后面加小驼峰命名;

2)局部变量,直接小驼峰。

3)常量,用static final修饰,全大写,单词之间以“_”分隔
3、 方法命名
小驼峰命名。
4、 接口(interface)命名

  • 用于层与层之间的交互
    以大写 I 开头,如果有多个单词,每个单词首字母大写。
  • 回调(发出请求,接受服务方的应答)
    以CallBack结尾。
  • 监听(被动等待)
    以On开头,Listener结尾,如OnClickListenr,接口中的方法以on**()的格式。
    5、 组件、控件命名
    控件类型缩写+空间的逻辑名称(首字母大写),比如跳转按钮,命名为btnJump。
    控件 缩写
    Layout lv
    RelativeView rv
    TextView tv
    Buttn btn
    ImageButton ib
    ImageView iv
    CheckBox chk
    RadioButton rb
    DatePicker dp
    EditText et
    TimePicker tp
    toggleButton tb
    ProgressBar pb
    WebView wv
    RantingBar rb
    Tab tab
    ListView lv
    MapView mv

6、 xml资源命名
逻辑名+资源类型,单词以“_”分割
如:common_layout、login_btn_bg_drawable、window_in_anim
7、 xml 中id命名
模块名+逻辑名+控件类型缩写
如:video_calling_iv

8、 图片资源命名
前缀+模块+描述
例如:
ic_action_bar_search.png
二、 书写规范
1、 代码单行长度
80。
2、 方法参数

  • 方法参数不能传空,如果没有值,可以考虑重载,重载用参数少的调用参数多的。
  • 跨层方法参数尽量不直接传引用,如果要传,请务必确保只在model层做修改。

3、 if else嵌套

if else 嵌套不超过三层,超过三层考虑使用哨兵变量或者使用设计模式(策略模式等)。

4、 bean对象

任何bean对象(指model中的数据模型),必须重写equals和hashCode方法,并实现深拷贝。

5、 注释

public 方法(除构造方法、重写方法)、变量,常量,必须以/**/的形式注释;

三、 某些类、方法使用规范

1、 不建议使用枚举类型(耗内存,指方法区),不建议把常量都放在一个类如Constant.java。改为使用Interface指定常量,这样的好处是,可以将常量分类,指明常量的用途,符合单一职责原则;
2、 不建议使用迭代器iterator(耗性能);
3、 不建议使用反射(耗性能),尤其是cglib的反射(比jdk反射获取对象的耗时多百倍左右),除非你用的单例并且在后台线程中初始化单例;
4、 register、unregister;bind、unBind等成对使用(可能内存泄漏或空指针);
5、 内部类声明为静态并使用弱引用(可能内存泄漏);
6、 handler要在适当的时机remove(可能内存泄漏和空指针)
7、 静态类(static)不得持有任何形式的context(可能内存泄漏和空指针)。
8、 使用DCL单例,请加volatile关键字,推荐使用类初始化或者CAS单例。
9、 不得在频繁调用的地方如getView中不加判断的new对象(引起频繁GC)
10、 不得直接new Thread(),而是使用线程池,并按照需要丢在IO、CPU密集型、普通workThread线程池中。
11、 不能直接打Log日志,使用封装的日志方法,并用同一的TAG(敏感信息泄漏);
12、 项目上线最好不要有TODO遗留;
13、提交代码前使用android lint清除无用代码(清除前注意检查有无使用反射获取类,以免被清除掉)(占用包体积)
14、内部类中不使用get/set(耗性能)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值