1.命名基本原则
    在面向对象编程中,对于类,对象,方法,变量等方面的命名应该本着描述性以及唯一标识性这两大特征来命名,才能保证资源之间不冲突,并且每一个都便于记忆。

命名原则是:使名称足够长以便有一定的意义,并且足够短以避免冗长。

2.命名基本规范

2.1.编程基本命名规范

(1)避免难懂的名称,如属性名xxK8,这样的名称会导致多义性。   
(2) 在面向对象的语言中,在类属性的名称中包含类名是多余的,如Book.BookTitle,而是应该使用Book.Title。   
(3)在允许函数重载的语言中,所有重载都应该执行相似的函数。

(4)使用动词-名词的方法来命名对给定对象执行特定操作的例程,如CalculateInvoiceTotal()。(例程是某个系统对外提供的功能接口或服务的集合)

(5)只要合适,在变量名的末尾或开头加计算限定符(Avg、Sum、Min、Max、Index)。 
(6)在变量名中使用互补对,如min/max、begin/end和open/close。

(7)布尔变量名应该包含Is,这意味着Yes/No 或 True/False 值,如 fileIsFound。

(8)即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名  称。仅对于短循环索引使用单字母变量名,如 i 或 j。

(9)为了帮助区分变量和例程,对例程名称使用Pascal大小写处理 (CalculateInvoiceTotal),其中每个单词的第一个字母都是大写的。对于变量名,使用 camel大小写处理 (documentFormatType),其中除了第一个单词外每个单词的第一个字母都是大写的。

(10)不要使用原义数字或原义字符串,而是使用命名常数,NUM_DAYS_IN_WEEK ,以便于维护和理解。

2.2.分类命名规范

(1)包的命名  

  Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。

  例如: net.frontfree.javagroup

(2)类的命名

   类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。   

  例如: Circle

(3)方法的命名

  方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。

  例如: sendMessge

(4).常量的命名

  常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。

  例如: MAX_VALUE

(5)参数的命名

  参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可能明确。

(6)Javadoc注释

  Java除了可以采用我们常见的注释方式之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,它是用来记录我们代码中的API的。Javadoc注释是一种多行注释,以/**开头,而以*/结束,注释可以包含一些HTML标记符和专门的关键词。使用Javadoc注释的好处是编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。

  例如:

/**

* This is an example of

* Javadoc

*

* @author darchon

* @version 0.1, 10/11/2002

*/

  在每个程序的最开始部分,一般都用Javadoc注释对程序的总体描述以及版权信息,之后在主程序中可以为每个类、接口、方法、字段添加Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟随更加详细的描述段落。在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这些段落将在生成文档中以特定方式显示。

虽然为一个设计低劣的程序添加注释不会使其变成好的程序,但是如果按照编程规范编写程序并且为程序添加良好的注释却可以帮助你编写出设计完美,运行效率高且易于理解的程序,尤其是在多人合作完成同一项目时编程规范就变得更加重要。俗话说“磨刀不误砍柴工”,花费一点时间去适应一下Java编程规范是有好处的。

3.分类命名规范

3.1.基本数据类型命名规范

Integer:int+描述          Char:chr+描述          Boolean:bln+描述

Long:lng+描述           Short:shr +描述         Double:dbl+描述

String:str+描述           Float:flt+描述          Single:sng+描述

DataTime:dt+描述         Array:arr+描述        Object:obj+描述

如:String  srtName;

3.2.控件命名规范

TextView :txt_+描述

Button :btn_+描述

ImageButton :ib_+描述

ImageView :img_+描述

CheckBox :chk_+描述

RadioButton :rb_+描述

AnalogClock :ac_+描述

DigitalClock :dc_+描述

DatePicker :dp_+描述

TimePicker :tp _+描述

ToggleButton :tb_+描述

EditText:edit_+描述

ProgressBar:pb_+描述

SeekBar:sb _+描述

AutoCompleteTextView:autotxt_+描述

MultiAutoCompleteTextView:mlautotxt_+描述

ZoomControls:zc_+描述

Include:ind_+描述

VideoView:vv_+描述

WebView:wv_+描述

RatingBar:ratbr_+描述

Tab:tab__+描述

Spinner:spin_+描述

Chronometer:chro_+描述

ScrollView:sv_+描述

TextSwitcher:tswi_+描述

Gallery:gal_+描述

ImageSwitcher:imgswi_+描述

GridView:gv_+描述

ListView:lv_+描述

ExpandableList: exl_+描述

MapView: mv_+描述

控件说明如下:

• TextView - 文本显示控件

• Button - 按钮控件

• ImageButton - 图片按钮控件

• ImageView - 图片显示控件

• CheckBox - 复选框控件

• RadioButton - 单选框控件

• AnalogClock - 钟表(带表盘的那种)控件

• DigitalClock - 电子表控件

• DatePicker - 日期选择控件

• TimePicker - 时间选择控件

• ToggleButton - 双状态按钮控件

• EditText - 可编辑文本控件

• ProgressBar - 进度条控件

• SeekBar - 可拖动的进度条控件

• AutoCompleteTextView - 支持自动完成功能的可编辑文本控件

• MultiAutoCompleteTextView - 支持自动完成功能的可编辑文本控件,允许输入多值(多值之间会自动地用指定的分隔符    分开)

• ZoomControls - 放大/缩小按钮控件

• Include - 整合控件

• VideoView - 视频播放控件

• WebView - 浏览器控件

• RatingBar - 评分控件

• Tab - 选项卡控件

• Spinner - 下拉框控件

• Chronometer - 计时器控件

• ScrollView - 滚动条控件

• TextSwitcher - 文字转换器控件(改变文字时增加一些动画效果)

• Gallery –画廊控件

• ImageSwitcher - 图片转换器控件(改变图片时增加一些动画效果)

• GridView - 网格控件

• ListView - 列表控件

• ExpandableList - 支持展开/收缩功能的列表控件

3.3.变量命名规范

变量命名:前缀+类型描述+意义描述

前缀:

成员变量:m_***             局部变量:l_***          形参:a_***

常量:大写_***                  枚举值:em_***

3.4.程序规范

工程的命名为:描述

应用程序名的命名为:描述+App

4.代码书写规范

(1)java代码中不出现中文,最多注释中可以出现中文

(2)使用shape和selector

(3)图片尽量分拆成多个可重用的图片

(4)服务端可以实现的,就不要放在客户端

(5)引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大

(6)处理应用全局异常和错误,将错误以邮件的形式发送给服务端

(7)使用静态变量方式实现界面间共享要慎重

(8)不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致message.what冲突

(9)strings.xml中使用%1$s实现字符串的通配

(10)复杂布局使用RelativeLayout

(11)自适应屏幕,使用dp替代pix

(12)使用animation-list制作动画效果

(13))建立标准的缩进大小(如四个空格),并一致地使用此标准。用规定的缩进对齐代码节。

(14)在发布源代码的硬拷贝版本时使用特定的字体以及字号(新宋体、小五号)。

(15)在括号对对齐的位置垂直对齐左括号和右括号,如:   
   for   (i=0; i<100; i++) 
   { 
         ; 
   }

(16)沿逻辑结构行缩进代码使代码更易于阅读和理解,如:   
   if(expression) 
         { 
         if(expression ) 
          { 
            // 
            //此处填写你的代码块; 
            // 
          } 
         else 
          { 
            // 
            //此处填写你的代码块; 
            // 
          } 
         }

(17)为注释和代码建立最大的行长度,以避免不得不滚动源代码编辑器,并且可以提供整齐的硬拷贝表示形式。

(18)当一行内容太长而必须换行时,在后面换行代码中要使用缩进格式,如下: 
    string   inserString =”Insert   Into   TableName(username,password,email,sex,address) ” 
    +”Values( ‘Soholife ’, ‘chenyp ’, ‘soholife@sina.com ’, ‘male ’, ’深圳福田 ‘) ”;

(19)每一行上放置的语句避免超过一条。特殊循环如for(i =0;i<100;i++)等除外。

(20)编写SQL语句时,对于关键字使用全部大写,对于数据库元素(如表、列和视图)使用大小写混合。

(21)

例如SELECT * FROM Table1;

将每个主要的SQL子句放在不同的行上,这样更容易阅读和编辑语句,例如:

SELECT   FirstName,   LastName 
   FROM     Customers 
   WHERE   State   =   ‘WA ’

(22)在物理文件之间在逻辑上划分源代码

(23)使用空白为源代码提供结构线索。这样做会创建代码“段”,有助于读者理解软件的逻辑分段

(24)将大的复杂代码段分为较小的、易于理解的模块。

5.注释 
     软件文档以两种形式存在:外部的和内部的。外部文档(如规范、帮助文件和设计文档)在源代码的外部维护。内部文档由开发人员在开发时在源代码中编写的注释组成。 
     不考虑外部文档的可用性,由于硬拷贝文档可能会放错地方,源代码清单应该能够独立存在。外部文档应该由规范、设计文档、更改请求、错误历史记录和使用的编码标准组成。   以下几点是规范的注释方法:

(1)一个工程应有一个统一的头文件注释,以说明整个工程的信息、创建日期、版本等等

(2)对重要的程序加注释进行说明

(3)修改代码或删除时,将原代码用注释的方法屏蔽,同时要加开发者自身对修改操作的注释。格式为:

//原代码

//Added/(Modified/ Deleted) by 开发者姓名 年-月-日;

//因为业务原因修改的,要注明修改或删除原因)

新代码
(4)使用XML文档格式,如下面方法的注释: 
  ///   <summary> 
 ///   得到某人的年龄 
 ///   </summary> 
 ///   <param   name= “userName ”> 用户名 </param> 
 ///   <returns> 用户年龄 </returns> 
public   int   GetUserAge(string   userName) 

     // 
    //此处写你的程序代码 
    // 
}

(5)避免杂乱的注释,而是应该使用空白将注释同代码分开。   
(6)移除所有临时或无关的注释,以避免在日后的维护工作中产生混乱。   
(7)注释应对代码进行准确的说明,不应存在歧义。   
(8)在整个应用程序中,使用具有一致的标点和结构的统一样式来构造注释。

转载:原文链接

【Android】开发规范相关推荐

  1. android 开发规范1

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

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

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

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

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

  4. Android开发规范[Java+android]

    说明:该文档由阿里<Java开发规范>和<Android开发规范>整理而来  [强制]必须遵守,违反本约定或将会引起严重的后果:  [推荐]尽量遵守,长期遵守有助于系统稳定 ...

  5. Android开发规范:API接口安全设计规范

    公众号[国民程序员]回馈粉丝福利: 现金红包和送书活动火热进行中,点击参与! 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买. 书籍详情请 ...

  6. Android 开发规范(完结版)

    点击上方蓝字关注公众号 码个蛋第270次推文 长文干货 作者:Blankj 博客:https://www.jianshu.com/u/46702d5c6978 文章目录 前言 AS 规范 命名规范 代 ...

  7. 阿里Android开发规范:安全与其他

    以下内容摘自 阿里巴巴Android开发手册 我们的目标是: 防患未然,提升质量意识,降低故障率和维护成本: 标准统一,提升协作效率: 追求卓越的工匠精神,打磨精品代码. [强制]必须遵守,违反本约定 ...

  8. android 开发规范

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

  9. Android开发规范

    API接口规范 API接口安全设计规范 App的数据来源就是API接口,所以API接口对APP的重要性不言而语.设计API接口需要考虑的就是安全机制. 防篡改 防篡改就是防止请求的URL参数值发送至服 ...

  10. Android开发规范,flutter生成二维码

    变量命名要做到足够长有一定意义,同时又足够短以避免冗长. 关于携带Android控件的变量,个人建议规则:[控件逻辑名称]+[控件缩写] 如mLoginBtn, mBottomLayout, mTit ...

最新文章

  1. 机器学习笔记 soft-DTW(论文笔记 A differentiable loss function for time-series)
  2. Tar打包、压缩与解压缩到指定目录的方法
  3. Android studio之如何快速查看页面的布局
  4. 使用Git前的准备工作
  5. XM7 FOR ANDROID,视频剪辑制作app-视频剪辑制作xm8.0安卓版-蜻蜓手游网
  6. kingbase自带的驱动在哪_为什么别人家的广告语都能自带BUG?
  7. C++异常 调用abort()
  8. 排序算法之 插入排序
  9. Swap in C C++ C# Java
  10. Excel数据透视表中的值计算
  11. GPS模块数据分析 -- linux
  12. 【软件工具使用】Ubuntu下高效工作工具使用(持续更新)
  13. windows10 快速切换网络适配器
  14. 建立KMS服务器,激活WIN、office
  15. canvas画简单的横向流程图
  16. php一句话木马调用cmd命令,一句话木马(webshell)是如何执行命令的
  17. Mac OSX 好用的解压软件
  18. MySQL 确定哪些是叶节点、分子节点、根节点
  19. json 大括号 转意_json字符串中的大括号转义传到后台_JSON 序列化中的转义和 Unicode 编码...
  20. 推荐python入门进阶到大神的书籍

热门文章

  1. 解决项目版本冲突——maven-shade插件使用
  2. 2.算法的时间和空间复杂性度量
  3. Android 扫描二维码(Scan Kit)
  4. 机器视觉标定(calibration)关键尝试(标定的重要意义度量衡)(A)
  5. 嵌入式文件系统:NTFS和EXFAT比较
  6. Android 电子罗盘开发。
  7. SpringBoot Elasticsearch
  8. Qt的下载与安装说明(超全!)
  9. 5 个可以加速开发的 VueUse 函数库
  10. 【三年面试五年模拟】算法工程师的独孤九剑秘籍(前六式汇总篇)V1版