Android编码规范指南


title: Android编码规范指南
tags: Android,基础


本文参考最全面的 Android 编码规范指南标准的Java编码规范手册。该文档仅供参考,只要形成一个统一的风格即可。

源文件基础

  • 文件名
    源文件以其最顶层的类名来命名,大小写敏感,文件扩展名为.java。
  • 文件编码
    源文件编码格式为 UTF-8。

源文件结构

一个源文件包含(按顺序地):

  1. 许可证或版权信息(如有需要)
  2. package语句
  3. import语句
  4. 一个顶级类(只有一个)以上每个部分之间用一个空行隔开。
  1. 许可证或版权信息
    如果一个文件包含许可证或版权信息,那么它应当被放在文件最前面。
  2. package语句
    package 语句不换行。
  3. import语句
    3.1 import不要使用通配符
    即,不要出现类似这样的import语句:import java.util.*;
    3.2 不要换行
    图例:
源文件结构1.1.png

格式规范

  • 缩进
    每当开始一个新的块,缩进增加4个空格,当块结束时,缩进返回先前的缩进级别。缩进级别适用于代码和注释

  • 一行一个语句
    每个语句后要换行。

  • 行长度
    每行80或100字符,package和import语句除外

  • 换行

    • 从哪里换行
      基本准则是:更倾向于在更高的语法级别处断开。

    如果在非赋值运算符处断开,那么在该符号前断开(比如+,它将位于下一行)。
    这条规则也适用于以下”类运算符”符号:点分隔符(.),类型界限中的 &()
    如果在赋值运算符处断开,通常的做法是在该符号后断开(比如=,它与前面的内容留在同一行)。这条规则也适用于foreach语句中的分号。
    方法名或构造函数名与左括号留在同一行。
    逗号(,)与其前面的内容留在同一行

    • 换行时缩进至少+8个空格
换行位置2.1.png
  • 使用空行
    以下情况使用一个空行:

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 }都是可以的。

命名规则

  1. 对所有标识符都通用的规则
    标识符只能使用ASCII字母和数字,因此每个有效的标识符名称都能匹配正则表达式\w+。

  2. 标识符类型的规则
    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 = "";

  1. 资源文件命名规范
    3.1 资源布局文件(XML文件(layout布局文件)):
    全部小写,采用下划线命名法
  • 必须以全部单词小写,单词间以下划线分割,使用名词或名词词组。所有Activity或Fragment的contentView必须与其类名对应,对应规则为:将所有字母都转为小写,将类型和功能调换(也就是后缀变前缀)。
资源布局文件命名3.1.png
  • 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控件缩写表

UI控件缩写表.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android编码规范 源文件基础 文件名 源文件以其最顶层的类名来命名,大小写敏感,文件扩展名为.java。 文...
    呼呼哥阅读 1,020评论 0 0
  • Android 编码规范 1. 前言 这份文档是 Google Java Code Style 的译文,并稍有添加...
    人失忆阅读 455评论 0 3
  • 作者:李旺成 时间:2016年4月3日 1. 前言 这份文档参考了 Google Java 编程风格规范和 Goo...
    diygreen阅读 40,032评论 19 224
  • 介绍 为什么需要编码规范? 编码规范对于程序员而言尤为重要,有以下几个原因:  一个软件的生命周期中,80%...
    lucas777阅读 465评论 0 0
  • 源文件规范 文件名:源文件名必须和它包含的顶层类名保持一致,包括大小写,并以.java作为后缀名。 文件编码:所有...
    LilacZiyun阅读 576评论 0 1