title: Android编码规范指南
tags: Android,基础
本文参考最全面的 Android 编码规范指南和标准的Java编码规范手册。该文档仅供参考,只要形成一个统一的风格即可。
源文件基础
-
文件名
源文件以其最顶层的类名来命名,大小写敏感,文件扩展名为.java。 -
文件编码
源文件编码格式为 UTF-8。
源文件结构
一个源文件包含(按顺序地):
- 许可证或版权信息(如有需要)
- package语句
- import语句
- 一个顶级类(只有一个)以上每个部分之间用一个空行隔开。
-
许可证或版权信息
如果一个文件包含许可证或版权信息,那么它应当被放在文件最前面。 -
package语句
package 语句不换行。 -
import语句
3.1 import不要使用通配符
即,不要出现类似这样的import语句:import java.util.*;
3.2 不要换行
图例:
格式规范
缩进
每当开始一个新的块,缩进增加4个空格,当块结束时,缩进返回先前的缩进级别。缩进级别适用于代码和注释一行一个语句
每个语句后要换行。行长度
每行80或100字符,package和import语句除外-
换行
- 从哪里换行
基本准则是:更倾向于在更高的语法级别处断开。
如果在非赋值运算符处断开,那么在该符号前断开(比如+,它将位于下一行)。
这条规则也适用于以下”类运算符”符号:点分隔符(.),类型界限中的 &()
如果在赋值运算符处断开,通常的做法是在该符号后断开(比如=,它与前面的内容留在同一行)。这条规则也适用于foreach语句中的分号。
方法名或构造函数名与左括号留在同一行。
逗号(,)与其前面的内容留在同一行- 换行时缩进至少+8个空格
- 从哪里换行
-
使用空行
以下情况使用一个空行:
1.类内连续的成员之间:字段,构造函数,方法,嵌套类,静态初始化块,实例初始化块。
2.在函数体内,语句的逻辑分组间使用空行。
- 使用空格
1.分隔任何保留字与紧随其后的左括号(()(如if, for catch等)。
2.分隔任何保留字与其前面的右大括号(})(如else, catch)。
3.在任何左大括号前({)
4.在任何二元或三元运算符的两侧。
5.在, : ;及右括号())后
6.如果在一条语句后做注释,则双斜杠(//)两边都要空格。
7.类型和变量之间:List list。
8.数组初始化中,大括号内的空格是可选的,即new int[] {5, 6}和new int[] { 5, 6 }都是可以的。
命名规则
对所有标识符都通用的规则
标识符只能使用ASCII字母和数字,因此每个有效的标识符名称都能匹配正则表达式\w+。标识符类型的规则
2.1 包名全部小写,连续的单词只是简单地连接起来,不使用下划线。采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名。
package com.anxin.changbaishan.view;
package com.anxin.changbaishan.utils;
2.2 类命名
类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML) 。
public class Base64Util
public class AccountFragment
2.3 接口命名
接口类名以大写“I”开头,大小写规则与类名相似。
public interface IProjGroupService
2.4 方法命名
方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。
public void onCreate(Bundle savedInstanceState)
public void run()
2.5 常量命名
(Constants [采用stiatc final 修饰]) 类常量的声明,应该全部大写,单词间用下划线隔开。
private static final int MIN_WIDTH = 4;
private static final int MAX_WIDTH = 999;
2.6 局部变量
采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型。c,d,e,它们一般用于字符型,变量名不应以下划线或美元符号开头。
int i = 0;
float imageWidth = 0;
2.7 实例变量
大小写规则和类名相似,除了前面需要一个m。
private int mEmployeeId = 0;
private String mName = "";
-
资源文件命名规范
3.1 资源布局文件(XML文件(layout布局文件)):
全部小写,采用下划线命名法
- 必须以全部单词小写,单词间以下划线分割,使用名词或名词词组。所有Activity或Fragment的contentView必须与其类名对应,对应规则为:将所有字母都转为小写,将类型和功能调换(也就是后缀变前缀)。
- Dialog命名:dialog_描述.xml
dialog_hint.xml
3.2 资源文件(图片drawable文件夹下)
全部小写,采用下划线命名法,加前缀区分
命名模式:可加后缀 small 表示小图, big 表示大图,逻辑名称可由多个单词加下划线组成,采用以下规则:
控件类型模块名逻辑名称
控件类型模块名颜色
控件类型逻辑名称
控件类型颜色
btn_main_home.png 按键
divider_maket_white.png 分割线
ic_edit.png 图标
bg_main.png 背景
btn_red.png 红色按键
btn_red_big.png 红色大按键
ic_head_small.png 小头像
bg_input.png 输入框背景
divider_white.png 白色分割线
3.3 layout中的id命名
命名模式为:view缩写_view的逻辑名称
<EditText
android:id="@+id/et_username"/>
<Button
android:id="@+id/btn_login"/>
UI控件缩写表