介绍
1. 为什么需要编码规范?

编码规范对于程序员而言尤为重要,有以下几个原因:

 一个软件的生命周期中,80%的花费在于维护
 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护
 编码规范可以改善软件的可读性,可以让其他程序员尽快而彻底地理解新的代码
 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品

命名
2. 包命名
命名规则:一个唯一包名的前缀总是全部小写的ASCII 字母并且是一个顶级域名,通常是com,edu,gov,mil,net,org。包名的后续部分根据不同机构各自内部的命名规范而不尽相同。这类命名规范可能以特定目录名的组成来区分部门 (department) ,项目(project),机器(machine),或注册名(login names)。
例如: net.tatans.项目代号.项目名称
App包名:例如: net.tatans.coeus.launcher.
net.tatans.hyperion.social.activities
net.tatans.hyperion.im.activities
net.tatans.hyperion.im.activities 此包中包含:页面用到的Activity类 (activities层级名 用户界面层)
net.tatans.hyperion.social.tools 此包中包含:公共工具方法类 (tools 模块名)
net.tatans.hyperion.social.db 此包中包含:数据库操作类
net.tatans.hyperion.social.custom 此包中包含:自定义的View类等
net.tatans.hyperion.social.service 此包中包含:Service服务
net.tatans.hyperion.social.broadcast 此包中包含:Broadcast服务

  1. 类和接口 命名
    命名规则:类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像 URL,HTML)
    接口一般使用able、ible、er 等后缀,并且接口必须以大写I开头
    例如: interface IButton; interface IImageSprite;

activity 类 Activity为后缀标识,如欢迎页面类WelcomeActivity.
Adapter类 Adapter为后缀标识,如商品详情适配器ProductDetailAdapter
解析类 Hlr为后缀标识,如首页解析类HomePosterHlr
公共方法类 Tools或Manager为后缀标识。如:线程池管理类:ThreadPoolManager
日志工具类:LogTools
数据库类 以DBHelper后缀标识。如城市数据库:CityDBHelper
Service类 以Service为后缀标识
BroadcastReceive 以Broadcast为后缀标识
ContentProvider 以Provider为后缀标识

规约:类名必须使用驼峰规则,即首字母必须大写,如果为词组,则每个单词的首字母也必须要大写,类名必须使用名词,或名词词组。要求类名简单,不允许出现无意义的单词(如 class XXXActivity)。
如:class BookMarkAdd  正确
如:class AddBookReadPlanActivity  错误! 应为 class BookReadPlanAdd
4. 方法的命名
命名规则:方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。
例如: public void run(); public String getBookName();

类中常用方法的命名:
1. 类的获取方法(一般具有返回值)一般要求在被访问的字段名前加上get,如
getFirstName(),getLastName()。一般来说,get前缀方法返回的是单个值,find前缀的方法返回的是列表值。
2. 类的设置方法(一般返回类型为void):被访问字段名的前面加上前缀 set,如
setFirstName(),setLastName().
3. 类的布尔型的判断方法一般要求方法名使用单词 is或has 做前缀,如isPersistent(),isString()。或者使用具有逻辑意义的单词,例如equal 或equals。
4. 类的普通方法一般采用完整的英文描述说明成员方法功能,第一个单词尽可能采用动词,首字母小写,如openFile(),addCount()。
5. 构造方法应该用递增的方式写。(参数多的写在后面)。
6. toString()方法:一般情况下,每个类都应该定义toString(),其格式为:
7. initXXX() 初始化相关方法,使用init为前缀标识
8. isXXX() checkXXX() 方法返回值为boolean型的请使用is或check为前缀标识
9. getXXX() 返回某个值的方法,使用get为前缀标识
10. processXXX() 对数据进行处理的方法,尽量使用process为前缀标
11. displayXXX() 弹出提示框和提示信息,使用display为前缀标识
12. saveXXX() 与保存数据相关的,使用sav为e前缀标识
13. resetXXX() 对数据重组的,使用reset前缀标识
14. clearXXX()removeXXX() 清除数据相关的,使用clear或remove为前缀标识
15. drawXXX() 绘制数据或效果相关的,使用draw前缀标识

  1. 变量命名
    命名规则:第一个类型标志字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为 i,j,k,m 和 n,它们一般用于整型;c,d,e,它们一般用于字符型。

对于SWING以及类变量的命名标志,采取控件的大写的首字母进行小写缩写的格式,例如:
TextView txt
Button btn
ImageButton imgBtn
ImageView imgView
CheckBox chk
RadioButton rdoBtn
analogClock anaClk
DigtalClock dgtClk
DatePicker dtPk
TimePicker tmPk
toggleButton tglBtn
EditText edtTxt
ProgressBar proBar proBar
SeekBar skBar
AutoCompleteTextView autoTxt
ZoomControls zmCtl
Include ind
VideoView vdoVi
WdbView webVi
RantingBar ratBar
Tab tab
Spinner spn
Chronometer cmt
ScollView sclVi
TextSwitch txtSwt
ImageSwitch imgSwt
listView lVi
ExpandableList epdLt
MapView mapVi

JFrame jfMain; //jf
JButton jbOk; //jb
JLable jlUserName; //jl
JTree jtTree; //jt
DefaultMutableTreeNode dmtn MyNode; //dmtn
ImageIcon iiMyPic; //ii
Image imgMyPic; //img
Icon icoMyPic; //ico
URL urlLoginPic; //url
Container conMainFrame; //con
对于ArrayList 、 HashTable 采用首字母缩写标志_ + 变量自身类型标志+变量名
ArrayList->al_ HashTable->ht_
例如:
ArrayList al_jbSeat=new ArrayList();
al_ 代表 ArrayList
jb 代表 JButton
Seat 代表变量名

常规变量:

nTemp:临时通用变量
nResult:接收返回的结果
nCount:统计总数

变量的作用域及前缀
前缀 说明 举例
_ 类成员变量(字段) _optFlag
s_ 静态变量 s_nAge 静态整数
arr_ 数组 arr_nCount[]
al_ ArrayList al_nFlag
ht_ HashTable ht_nFlag

变量类型对应缩写
前缀 说明 缩写 举例
Bool[Boolean] 布尔型 b bFlag
Char[Character] 字符型 c cFlag
Byte 8位带符号整数 bt btFlag
Short 16位带符号整数 sht shtFlag
Int[Integer] 32位带符号整数 n nFlag
Long 64位带符号整数 l lFlag
Float 32位单精度浮点数 f fFlag
Double 64位双精度浮点数 lf lfFlag
String 字符串 s sFlag
Date 日期时间 dt dtFlag

例如:String sBookName;

规约:变量命名也必须使用驼峰规则,但是首字母必须小写,变量名尽可能的使用名词或名词词组。同样要求简单易懂,不允许出现无意义的单词。
如:String sBookName;  正确
如:String sBookNameString; 错误!

  1. 成员变量命名
    同变量命名,但不要在私有变量前添加m字样!
  2. 常量命名
    命名规则:类常量的声明,应该全部大写,单词间用下划线隔开。
    例如:static final int MIN_WIDTH = 4;
    例如:static final int MAX_WIDTH = 999;
    例如:static final int GET_THE_CPU = 1;
  3. 异常命名
    自定义异常的命名必须以Exception为结尾。已明确标示为一个异常。

public class MySecondException extends Throwable {

public MySecondException() {

super();

}

public class MyFirstException extends Exception {

public MyFirstException() {

super();

}
9. layout 命名
Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀
Activity子布局,父布局名称开始,追加item 和子布局功能说明。
例如:Activity默认布局:homeposter.xml 子布局为homeposter_item_poster.xml
10. id 命名
规约:layout 中所使用的id必须以全部单词小写,单词间以下划线分割,并且使用名词或名词词组,并且要求能够通过id直接理解当前组件要实现的功能。
view的缩写详情如下
LayoutView:lv
RelativeView:rv
TextView:tv
ImageView:iv
ImageButton:im
Button:btn

  1. 资源命名
    规约:layout中所使用的所有资源(如drawable,style等)命名必须以全部单词小写,单词间以下划线分割,并且尽可能的使用名词或名词组,即使用 模块名_用途 来命名。如果为公共资源,如分割线等,则直接用用途来命名
    如:menu_icon_navigate.png  正确
    如:某分割线:line.png 或 separator.png 正确
    btn_login_normal
    按钮图片使用btn_功能_说明
    bg_head
    背景图片使用bg_功能_说明
    def_search_cell
    默认图片使用def_功能_说明
    icon_more_help
    图标图片使用icon_功能_说明
    seg_list_line
    具有分隔特征的图片使用seg_功能_说明
    sel_ok
    选择图标使用sel_功能_说明
    注释
    Java 程序有两类注释:实现注释(implementation comments)和文档注释(document comments)。实现注释是使用//和//界定的注释。文档注释(被称为”doc comments”)由/*…/界定。文档注释可以通过javadoc 工具转换成HTML 文件。

  2. 文件注释
    所有的源文件都应该在开头有一个注释,其中列出类名、版本信息、日期和版权声明。
    如下:
    /*

    • 文件名
    • 包含类名列表
    • 版本信息,版本号
    • 创建日期。
    • 版权声明
      */
  3. 类注释
    每一个类都要包含如下格式的注释,以说明当前类的功能等。

/**
* 类名
* @author 作者

* 实现的主要功能。
* 创建日期
* 修改者,修改日期,修改内容。
*/

  1. 方法注释
    每一个方法都要包含 如下格式的注释 包括当前方法的用途,当前方法参数的含义,当前方法返回值的内容和抛出异常的列表。

/**
*
* 方法的一句话概述
*

方法详述(简单方法可不必详述)

* @param s 说明参数含义
* @return 说明返回值含义
* @throws IOException 说明发生此异常的条件
* @throws NullPointerException 说明发生此异常的条件
*/

  1. 类成员变量和常量注释
    成员变量和常量需要使用java doc形式的注释,以说明当前变量或常量的含义
    /**

    • XXXX含义
      */
  2. 其他注释
    方法内部的注释 如果需要多行 使用/…… /形式,如果为单行是用//……形式的注释。不要再方法内部使用 java doc 形式的注释“/……/”,简单的区分方法是,java doc形式的注释在 eclipse中为蓝色,普通注释为绿色。

  3. XML注释
    规约:如果当前layout 或资源需要被多处调用,或为公共使用的layout(若list_item),则需要在xml写明注释。要求注释清晰易懂。

Android项目编码规范相关推荐

  1. android项目编码规范,Android 项目规范

    Android 项目规范 本文档的目的是定义项目规范.这些应遵循整个 Android 项目以帮助我们保持整洁和统一的代码库.

  2. 【转】Android编码规范建议18条

    转自:http://www.chinaz.com/design/2015/0908/443732.shtml Android编码规范建议18条 适合手机app设计师和android 工程师阅读. 1. ...

  3. android 开发规范1

    Android开发规范 一.Android编码规范 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名.静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为 ...

  4. Android 编程规范与常用技巧

    一.Android编码规范 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名.静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3.常量命名 只能 ...

  5. Android接口一般定义格式,Android开发规范

    原标题:Android开发规范 一.书写规范 1. 编码方式统一用UTF-8. 2. 花括号不要单独一行,和它前面的代码同一行.而且,花括号与前面的代码之间用一个空格隔开. 3. 空格的使用 if.e ...

  6. 开发指南专题三:JEECG微云快速开发平台项目编码规范

    开发指南专题三:JEECG微云快速开发平台项目编码规范 4. 项目编码规范 4.1. 项目编码规范 1. 项目编码格式为UTF-8(包括:java,jsp,css,js) 2. sevice接口命名: ...

  7. Android 命名规范 (提高代码可以读性) 转

    转自:http://blog.csdn.net/vipzjyno1/article/details/23542617 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件 ...

  8. Android学习——android命名规范

    参考博客:http://blog.csdn.net/vipzjyno1/article/details/23542617 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控 ...

  9. android 开发规范

    前言 在开发中,一个良好的开发习惯以及一个开发规范可能会让你少走很多弯路,也会一定程度上的提高代码的可读性,可维护性和可拓展性.当随着需求的不断变更,需要维护项目的时候.当随着项目的代码量的提升,需要 ...

  10. 三天,我通过了Apsara Clouder基础技能认证:阿里巴巴Android开发规范

    花费了三天时间学习了阿里巴巴 Android 开发规范,顺便通过了Apsara Clouder基础技能认证:阿里巴巴Android开发规范.证可能用处不大,但能反向push自己:1.注重代码规范,磨练 ...

最新文章

  1. sqlitepython导入数据_python从sqlite读取并显示数据的方法
  2. Python学习:数据结构
  3. 使用C#体验函数式编程之——Currying(柯里化)
  4. 文本的表示-词嵌入(word embedding)
  5. Jmeter系列之接口依赖
  6. 彻底告别“人工+Excel”低效模式,传统制造业实现“一站式”数据化管理
  7. linux进入超级管理员权限,一直处于超级管理员权限下
  8. java怎么给类中的私有变量赋值_java练习本(原每日一练)(20190430)
  9. 高分GF与环境HJ系列国产卫星遥感影像数据图像免费批量下载方法
  10. 火山引擎发布云操作系统 veLinux
  11. 第一章 公共政策学的学科要素
  12. 如何使用手机作为树莓派的显示屏幕
  13. HTML figcaption 标签
  14. 《2022中国企业数字化办公创新与实践产业研究报告》附下载丨三叠云
  15. linux 4.1内核源码编译
  16. 基于springboot的课堂考勤签到打卡小程序
  17. 计算机重启恢复系统怎么操作,电脑如何恢复出厂设置 电脑开机怎么一键还原...
  18. 计算机指令中的操作部分指的是什么,什么是指令?计算机的指令由哪两部份组成?什么是程序?...
  19. 被偷窥隐私要怎么追责
  20. 用Javascript开发《三国志曹操传》-开源讲座(四)-用地图块拼成大地图

热门文章

  1. 见贤思齐与三人行必有我师
  2. 内存卡格式化的原因有哪些 内存卡格式化怎么恢复
  3. 诗词对仗常用字表(笠翁对韵)
  4. Windows Server2008 Server 安装Telnet服务
  5. python函数题、咖啡名称_使用Python来分析秋天的第一杯咖啡
  6. 2022年第五届全国青少年人工智能创新挑战赛
  7. 计算机右键管理删除,win10系统删除右键菜单中“管理我的手机”的处理方法
  8. 【清华大学】操作系统 陈渝 Part4 ——物理内存管理 之 非连续内存分配
  9. 空降领导(CTO/技术总监)如何安全落地
  10. 程序员工资高,到底程序员的工资有多高?你不了解的程序员!