项目中直接导入Square的代码风格文件。(不导入Google的原因是Square同时提供了Java和Android两套统一风格,Google只提供了一套)

Square Code Styles

Goolge Code Styles

导入后会有很多好处,如注释规范化,import规范,方法排序,统一自动断行(PC屏幕较宽,建议断行字符数设置为120[File->Setting–>Code Style,右边Right Margin Columns])等

而在编码保存或提交时还能自动格式化代码,删除多余空行,多余缩进,无效注释等不规范的书写。

建议阅读Google Java Style 中文翻译文章 :

Android基本规范

在开发中,遵循良好的编码规范,不仅仅可以提高代码的可读性,减小出错的可能性,同时也降低与其他开发者交流的成本,易于他人的维护与协作。 本文简单总结了 Android 开发中的一些代码规范,供开发者参考。

基本要求

  • 除了注释,代码中不出现中文
  • 每个类写上必要的注释,类的说明,作者,联系方式
  • 方法加上必要的注释说明,方便以后维护

包管理

  1. base: 存放基础类的包,里面的类以 Base 为前缀,例如 BaseActivity
  2. activity: 存放 activity 的包,每个 activity 命名以Activity结尾,例如 MainActivity;
  3. fragment: 存放 fragment的包,每个 fragment 命名以 Fragment 结尾,例如 ChatFragment;
  4. receiver: 存放 receiver 的包;
  5. service: 存放 service 的包;
  6. adapter: 存放 adapter 的包,每个 adapter 命名以 Adapter 结尾,例如 EventItemAdapter;
  7. common: 存放一些公共常量,例如后端接口、SharedPreferenceKeyIntentExtra 等;
  8. utils: 存放工具类的包,比如常见的工具类:LogUtilsDateUtils
  9. entity: 存放实体类的包;
  10. widget: 存放自定义View的包;

以上是一些常见的包,但不局限于此,视项目的具体情况而定。

命名

大驼峰命名 (UpperCamelCase) :每个单词的第一个字母都大写。

小驼峰命名 (lowerCamelCase) :除第一个单词以外,每一个单词的第一个字母大写。

命名的基本原则:

  • 尽可能地使用统一的命名规范;
  • 不使用汉语拼音;
  • 除了常见的英文缩写,尽量少地使用缩写;
1. 包命名
  • 小写字母,参见上文包管理;
  • 连续的单词直接连接起来,不使用下划线;
2. Java 类命名
  • 大驼峰命名 UserListAdapter
  • 除常见的缩写单词以外,不使用缩写,缩写的单词每个字母都大写 RequesURLList
  • 公共的工具类建议以 Utils、 Manager 为后缀,如 LogUtils
  • 接口命名遵循以上原则,以 able 或 ible 为后缀;
3. 变量命名
  • 成员变量命名

    • 小驼峰命名;
    • 不推荐使用谷歌的前面加 m 的编码风格(如果使用团队中使用 m ,则统一使用);
  • 常量命名
    • 单词每个字母均大写;
    • 单词之间下划线连接;
  • 控件变量命名
    • 小驼峰命名;
    • 建议使用 控件缩写+逻辑名称 格式,例如 tvPostTitleetUserName
    • 对应的控件的 id 的命名控件缩写_逻辑名称,单词均小写,用下划线连接,例如:tv_post_titleet_user_name
    • 常见的控件缩写如下:
Linearlayout ll
RelativeLayout rl
TextView tv
EditText et
Button btn
ImageView iv
CheckBox chb
ListView lv
GridView gv
RadioButton rb
控件
缩写
4. 方法命名
  • 小驼峰命名;
  • Getter 和 Setter 方法,推荐使用自动生成的,写起来也很方便。注意,bool 类型的变量 Getter 方法写成 isTrue 这种;
  • 方法名应当保证见名知义的原则,尽量不使用 or 或者 and ,遵循 “do one thing” 原则;
5. 布局文件命名
  • activity、fragment 布局文件名以对应的类别名称为前缀,逻辑名称放在其后,以下划线连接,例如 activity_homefragment_chat_list,方便查找;
  • ListView、GridView 的 item 布局文件建议以 list_itemgird_item为前缀,加上对应的逻辑名称,例如 list_item_postgrid_item_photo
  • Dialog的布局文件以 dialog 为前缀,逻辑名称放在其后,下划线连接,例如 dialog_warnning;
  • 包含项布局命名以 include 开头,在加上对应的逻辑名称,例如 include_foot
  • 控件的 id 命名参见控件变量命名;
6. 资源命名
  • 图标资源以 ic 为前缀,例如 ic_chat ,指聊天图标;
  • 背景图片以 bg 为前缀,例如 bg_login ,指的是登录页的背景图;
  • 按钮图片以 btn 为前缀,例如 btn_login ,指的是登录按钮的图片,不过这只有一种状态,需要加上状态的可以在后面添加,例如 btn_login_pressed ,表示登录按钮按下的图片;
  • 当使用 shape 和 selector 文件为背景或者按钮时,命名参照以上说明;

参考资料

本文参考了:

Java&Android代码规范的更多相关文章

  1. Android代码规范

    Android代码规范——文章来源<IT蓝豹>http://itlanbao.com/preview.aspx#1,0 [-]一Import的次序二缩进Indentation总则示例代码规 ...

  2. java & android 开发规范手册

    阿里巴巴Java开发手册(终极版)https://pan.baidu.com/s/1c1UQM7Q 阿里巴巴Java开发规约插件p3cGitHub:https://github.com/alibaba ...

  3. android代码规范和studio配置CodeStyle

    studio配置CodeStyle可以很好的帮助我们检测代码规范性,保持大家的代码统一,来看看怎么配置和使用吧 代码规范,自己公司的一套 代码规范 一.      简介 A.    目的 本文提供一整 ...

  4. Android 代码规范大全

    前言 虽然我们项目的代码时间并不长,也没经过太多人手,但代码的规范性依然堪忧,目前存在较多的比较自由的「代码规范」,这非常不利于项目的维护,代码可读性也不够高, 此外,客户端和后端的研发模式也完全不同 ...

  5. Android 代码规范 code style

    /* * 文件名(可选),如 CodingRuler.java * * 版本信息(可选),如:@version 1.0.0 * * 版权申明(开源代码一般都需要添加),如:Copyright (C) ...

  6. Android代码规范----按钮单击事件的四种写法

    [前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中声明onClick属性(很少用) 在XM ...

  7. JAVA总结--代码规范

    一.命名规范 1.标识符:统一.达意.简洁 统一:一个词有多种表达方式,不求最好,但求统一:例:供应商,既可以用supplier,也可以用provider,选择一种统一使用: 达意:明确表达其意义,正 ...

  8. java注释代码规范

    //收集了一小部分,忘记的时候过来查一下 java--hadoop部分 /** * 此类用来处理DNS原始日志:统计给定域名平均响应时延 * @param Input * @param Output ...

  9. java idea 代码规范插件

    推荐阿里的 p3c https://github.com/alibaba/p3c

随机推荐

  1. Ubuntu下HTTPS配置

    Ubuntu下HTTPS配置非常简单,对大部分用户而言,使用普通的自签名证书,只需按照步骤进行就可以了,无需了解密钥.证书的更多知识,更深的背景知识还有RSA算法.DES算法.X509规范.CA机构. ...

  2. vba控制图表,excel图表,一键完成

    来源http://club.excelhome.net/thread-1417686-1-1.html 官方教程链接 https://docs.microsoft.com/zh-cn/office/v ...

  3. Python 元组、字典、集合操作总结

    元组 a=('a',) a=('a','b') 特点 有序 不可变,不可以修改元组的值,无法为元组增加或者删除元素 元组的创建 a=('a',) a=('a','b') tuple('abcd') 转 ...

  4. shell批量转换iOS和Android图标

    icon_ios.sh #!/bin/sh convert icon-1024.png -resize 180x180 icon-180@3x.png convert icon-1024.png -r ...

  5. Make 学习笔记(1)

    Make 学习笔记(1) 参考: GNU make 学习总结(1) 基础 make是帮助程序员使编译器明白如何编译工程的一种工具; 核心是规则. 规则一般由三部分组成: 目标(target) 必要条件 ...

  6. Java面试题全集(下)

    这部分主要是开源Java EE框架方面的内容,包括hibernate.MyBatis.spring.Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题, ...

  7. [洛谷P4556][BZOJ3307]雨天的尾巴-T3订正

    线段树合并+树上差分 题目链接(···) 「简单」「一般」——其实「一般」也只多一个离散化 考试时想法看>这里< 总思路:先存所有的操作,离散化,然后用树上差分解决修改,用权值线段树维护每 ...

  8. CentOS 6.7安装(一)

    CentOS 6.7安装 1.将光盘放入服务器,选择从光盘启动,选择“Install or upgrade an existing system”,并跳过光盘测试. 2.选择安装过程中使用的语言,默认 ...

  9. Hopfield 网络(上)

    讲的什么 这部分主要对 Hopfield 网络作一大概的介绍.写了其模型结构.能量函数和网络的动作方式.主要参考了网上搜到的一些相关 PPT.   概述 早在 1982 年,Hopfield 发表的文 ...

  10. AEE加密解密

     from Crypto.Cipher import AESfrom binascii import b2a_hex, a2b_hex class AesHandler(object):    def ...