Java&Android代码规范
项目中直接导入Square的代码风格文件。(不导入Google的原因是Square同时提供了Java和Android两套统一风格,Google只提供了一套)
导入后会有很多好处,如注释规范化,import规范,方法排序,统一自动断行(PC屏幕较宽,建议断行字符数设置为120[File->Setting–>Code Style,右边Right Margin Columns])等
而在编码保存或提交时还能自动格式化代码,删除多余空行,多余缩进,无效注释等不规范的书写。
建议阅读Google Java Style 中文翻译文章 :

Android基本规范
在开发中,遵循良好的编码规范,不仅仅可以提高代码的可读性,减小出错的可能性,同时也降低与其他开发者交流的成本,易于他人的维护与协作。 本文简单总结了 Android 开发中的一些代码规范,供开发者参考。
基本要求
- 除了注释,代码中不出现中文
- 每个类写上必要的注释,类的说明,作者,联系方式
- 方法加上必要的注释说明,方便以后维护
包管理
- base: 存放基础类的包,里面的类以
Base为前缀,例如BaseActivity; - activity: 存放 activity 的包,每个 activity 命名以Activity结尾,例如
MainActivity; - fragment: 存放 fragment的包,每个 fragment 命名以 Fragment 结尾,例如
ChatFragment; - receiver: 存放 receiver 的包;
- service: 存放 service 的包;
- adapter: 存放 adapter 的包,每个 adapter 命名以 Adapter 结尾,例如
EventItemAdapter; - common: 存放一些公共常量,例如后端接口、
SharedPreferenceKey、IntentExtra等; - utils: 存放工具类的包,比如常见的工具类:
LogUtils、DateUtils; - entity: 存放实体类的包;
- widget: 存放自定义View的包;
以上是一些常见的包,但不局限于此,视项目的具体情况而定。
命名
大驼峰命名 (UpperCamelCase) :每个单词的第一个字母都大写。
小驼峰命名 (lowerCamelCase) :除第一个单词以外,每一个单词的第一个字母大写。
命名的基本原则:
- 尽可能地使用统一的命名规范;
- 不使用汉语拼音;
- 除了常见的英文缩写,尽量少地使用缩写;
1. 包命名
- 小写字母,参见上文包管理;
- 连续的单词直接连接起来,不使用下划线;
2. Java 类命名
- 大驼峰命名
UserListAdapter; - 除常见的缩写单词以外,不使用缩写,缩写的单词每个字母都大写
RequesURLList; - 公共的工具类建议以
Utils、Manager为后缀,如LogUtils; - 接口命名遵循以上原则,以
able或ible为后缀;
3. 变量命名
- 成员变量命名
- 小驼峰命名;
- 不推荐使用谷歌的前面加 m 的编码风格(如果使用团队中使用 m ,则统一使用);
- 常量命名
- 单词每个字母均大写;
- 单词之间下划线连接;
- 控件变量命名
- 小驼峰命名;
- 建议使用
控件缩写+逻辑名称格式,例如tvPostTitle、etUserName; - 对应的控件的 id 的命名
控件缩写_逻辑名称,单词均小写,用下划线连接,例如:tv_post_title、et_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_home、fragment_chat_list,方便查找; - ListView、GridView 的 item 布局文件建议以
list_item、gird_item为前缀,加上对应的逻辑名称,例如list_item_post、grid_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代码规范的更多相关文章
- Android代码规范
Android代码规范——文章来源<IT蓝豹>http://itlanbao.com/preview.aspx#1,0 [-]一Import的次序二缩进Indentation总则示例代码规 ...
- java & android 开发规范手册
阿里巴巴Java开发手册(终极版)https://pan.baidu.com/s/1c1UQM7Q 阿里巴巴Java开发规约插件p3cGitHub:https://github.com/alibaba ...
- android代码规范和studio配置CodeStyle
studio配置CodeStyle可以很好的帮助我们检测代码规范性,保持大家的代码统一,来看看怎么配置和使用吧 代码规范,自己公司的一套 代码规范 一. 简介 A. 目的 本文提供一整 ...
- Android 代码规范大全
前言 虽然我们项目的代码时间并不长,也没经过太多人手,但代码的规范性依然堪忧,目前存在较多的比较自由的「代码规范」,这非常不利于项目的维护,代码可读性也不够高, 此外,客户端和后端的研发模式也完全不同 ...
- Android 代码规范 code style
/* * 文件名(可选),如 CodingRuler.java * * 版本信息(可选),如:@version 1.0.0 * * 版权申明(开源代码一般都需要添加),如:Copyright (C) ...
- Android代码规范----按钮单击事件的四种写法
[前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中声明onClick属性(很少用) 在XM ...
- JAVA总结--代码规范
一.命名规范 1.标识符:统一.达意.简洁 统一:一个词有多种表达方式,不求最好,但求统一:例:供应商,既可以用supplier,也可以用provider,选择一种统一使用: 达意:明确表达其意义,正 ...
- java注释代码规范
//收集了一小部分,忘记的时候过来查一下 java--hadoop部分 /** * 此类用来处理DNS原始日志:统计给定域名平均响应时延 * @param Input * @param Output ...
- java idea 代码规范插件
推荐阿里的 p3c https://github.com/alibaba/p3c
随机推荐
- 【转】阐述Handler的实现原理
面试题:阐述Handler的实现原理 2016年07月18日 21:01:35 阅读数:7574 处理过程: 从handler中获取一个消息对象,把数据封装到消息对象中,通过handler的send… ...
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} 解决方法
Tomcat启动时出现红色警告内容 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'sour ...
- ajax传给springMVC数据编码集问题
前台 ajax: $.ajax("${pageContext.request.contextPath}/hello",// 发送请求的URL字符串. { dataType : &q ...
- php日期时间和时间戳转化
echo date("Y-m-d H:i:s", 1409138643);echo strtotime('2014-08-28 23:00:00');
- HDU 6166 Senior Pan(多校第九场 二进制分组最短路)
题意:给出n个点和m条有向边(有向边!!!!我还以为是无向查了半天),然后给出K个点,问这k个点中最近的两点的距离 思路:比赛时以为有询问,就直接丢了,然后这题感觉思路很棒,加入把所有点分成起点和终点 ...
- dp 20190618
C. Party Lemonade 这个题目是贪心,开始我以为是背包,不过也不太好背包,因为这个L都已经是1e9了. 这个题目怎么贪心呢?它是因为这里有一个二倍的关系,所以说val[i]=val[i- ...
- 单源最短路Dijstra
#include<iostream> #include<cstring> #define INF 0x3f3f3f3f using namespace std; ][],d[] ...
- Java简答题附答案
1. Java有没有goto? 有, Goto语句在java中作为保留字, 并没有实现它. 带标号的break, continue局限于循环体中跳转 带标号的goto可以在一个函数(c语言)中任意跳转 ...
- VS打包软件部署------ClickOnce应用安装 (各版本.net引导文件安装,再发布文档离线安装下载地址)
一.1.其他引导程序包:地址 https://msdn.microsoft.com/zh-cn/vstudio/bb898654.aspx 2.离线安装各版本.net下载版(各种语言):https: ...
- 全面解读Oracle同义词的概念作用、创建删除查看及Oracle的db link
Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系. 在Oracle中对用户的管理是使用权限的方式来管理的,也就是说,如果我们想使用数据库,我们就必 ...