Android编码规范

来源:互联网 发布:网络视频存储方案 编辑:程序博客网 时间:2024/06/06 01:39

1.命名规范

1.0 名词解释

①大驼峰式(big camel-case):每一个单词的首字母都大写。eg:String FirstName = string.Empty;

②小驼峰式(little camel-case):第一个单词首字母小写,后面其它单词首字母大写。eg:String firstName = string.Empty;

③匈牙利命名:开头字母用变量类型的缩写,其余部分用变量的英文货英文的缩写,要求单词首字母大写。eg:long lSum = 0;

1.1 包命名规范

包(package):采用反域名命名规则,全部使用小写字母。一级包名为com(cn/im),二级包名为公司域名,三级包名根据应用名称的含义进行命名,四级包名为核心公共包名和业务包名,五级包名模块名或层级名。

1.2 类命名规范

类(class):采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的,eg:HTML,URL等,如果类名称包含单词缩写,则单词缩写的每个字母均应大写。

类 描述 例如 Application类 Application为后缀标识 XXXApplication Activity类 Activity为后缀标识 闪屏页面类:SplashActivity Fragment类 Fragment为后缀标识 闪屏页面类:SplashFragment Service类 Service为后缀标识 播放服务:PlayService BroadcaseReceiver类 Receiver为后缀标识 时间通知:TimeReceiver ContentProvider类 Provider为后缀标识 单词内容提供者:DictProvider 工具类 Utils为后缀标识 图片处理工具:BitmapUtils 管理类 Manager为后缀标识 播放器管理器:AudioManager 工厂类 Factory为后缀标识 Fragment工厂:FragmentFactory

1.3 变量命名规范

变量(variable):

普通类型:采用小驼峰命名法。

控件类型:类中控件名称必须与xml布局id保持一致。

公开的常量:定义为静态final,名称全部大写。

eg: public static final String ACTION_MAIN = ”android.intent.action.MAIN”;

1.4 接口命名规范

接口(interface):命名规则与类一样采用大驼峰命名法,多以able或ible结尾,eg:interface Runable; interface Accessible;

1.5 方法命名规范

方法(methods):动词或动名词,采用小驼峰命名法,eg:onCreate(),run();

方法 说明 initXX() 初始化相关方法,使用init为前缀标识,如初始化布局initView() isXX()/checkXX() 返回值为boolean型的,请使用is或check为前缀标识 getXX() 返回某个值的方法,使用get为前缀标识 processXX() 对数据进行处理的方法,使用process为前缀标识 showXX() 弹出提示信息,使用show或display为前缀标识 saveXX() 与保存数据相关的方法,使用save为前缀标识 resetXX() 与数据重组相关的方法,使用reset为前缀标识 clearXX() 清除数据相关的方法,使用clear为前缀标识 removeXX() 移除view相关的方法,使用remove为前缀标识 drawXX() 绘制数据或效果相关的,使用draw前缀标识

1.6 布局文件命名规范

全部小写,采用下划线命名法

① contentview命名, Activity默认布局:act_功能模块.xml。eg:activity_main.xml、activity_more.xml

② Dialog命名:dialog_描述.xml。eg:dlg_hint.xml

③ PopupWindow命名:ppw_描述.xml。eg:ppw_info.xml

④ 列表项adapter子布局命名:listitem_功能模块_描述.xml。eg:listitem_task_city.xml

⑤ 包含项:include_模块.xml。eg:include_head.xml、include_bottom.xml

1.7 资源id命名规范

命名模式为:view缩写[模块名称][业务名称]_view的逻辑名称,eg:ll_main_content,imgBtn_main_right。
java中的控件名称和布局中id名称一致。

view缩写如下:

控件 缩写 控件 缩写 View view LinearLayout ll RelativeLayout rl FrameLayout fl Button btn ImageButton ib CheckBox cb RadioButton rb RadioGroup rg DatePicker date_pk EditText et TextView tv TimePicker time_pk ProgressBar pro_bar SeekBar sk_bar AutoCompleteTextView auto_tv ZoomControls zm_ctl VideoView vdo_vi WebView web_vi Tab tab Spinner spn Chronometer cmt ScrollView scl_vi TextSwitch txt_swt ImageSwitch img_swt ListView lv ExpandableList epd_list MapView map_vi ViewPager vi_pg ImageView iv

1.8 动画文件命名

动画文件(anim文件夹下):全部小写,采用下划线命名法,加前缀区分,前面为动画的类型,后面为方向。

例子 规范写法 fade_in 淡入 fade_out 淡出 push_down_in 从下方推入 push_down_out 从下方推出 push_left 推向左方 slide_in_from_top 从头部滑动进入 zoom_in 变形进入 slide_in 滑动进入 shrink_middle 中间缩小

1.9 图片资源文件命名

全部小写,采用下划线命名法。

前缀/后缀 说明 ic 图标类(不具备点击功能) bg 背景类 btn 按钮类(具备点击功能) div 分隔类 selector 多种状态时,选择资源前缀 shape 自绘资源图形资源前缀 normal 区分状态时,默认状态后缀 pressed 按下时的状态后缀 selected 选中时的状态后缀 disable 不可用时的状态后缀

1.10 values中资源命名规范

全部小写,采用下划线命名法。

color:

正常颜色:color_000000

半透明颜色:color_000000_88

dimens:

布局控件:layout_10

字号:text_size_10

strings:

模块名称_业务名称_功能名称_字符 eg. mine_message_content_title

2.注释规范

类文件必须添加注释,说明本类处理的功能。注释格式如下:

/**
* Description: 类说明
* Created by ${USER} on ${YEAR}-${MONTH}-${DAY} ${TIME}. Updated
* Author: YourName
* Email: YourEmail
* Version: V1.0
*/

复杂逻辑方法、抽象方法必须添加注释,说明本方法处理的逻辑功能。
复杂逻辑方法需添加内部注释,说明方法内部业务流程和代码行意义。

3.编码规范

3.1 类成员区顺序

  1. 常量区
  2. UI控件变量区
  3. 普通变量区
  4. 生命周期方法区
  5. 重载方法区
  6. 普通方法区

3.2 格式规范

3.2.1 大括号

1.使用大括号(即使是可选的)

大括号与if、else、for、do、while语句一起使用,即使只有一条语句(或是空),也应该把大括号写上。

2.非空块

对于非空块和块状结构,大括号遵循 Kernighan 和 Ritchie 风格 (Egyptian brackets):

左大括号前不换行;

左大括号后换行;

右大括号前换行;

如果右大括号是一个语句、函数体或类的终止,则右大括号后换行; 否则不换行。

3.空块

可以使用简洁版本

一个空的块状结构里什么也不包含,大括号可以简洁地写成{},不需要换行。

例外:如果它是一个多块语句的一部分(if/else 或 try/catch/finally) ,即使大括号内没内容,右大括号也要换行。

3.2.2 变量声明

1.每次只声明一个变量

不使用组合声明,如int a, b;

2.需要时才声明,并尽快进行初始化

不要在一个代码块的开头把局部变量一次性都声明了(这是c语言的做法),而是在第一次需要使用它时才声明。 局部变量在声明时最好就进行初始化,或者声明后尽快进行初始化。

3.数组

非C风格的数组声明

中括号是类型的一部分:String[] args, 而非 String args[]

4.switch语句

每个switch语句都包含一个default语句组,即使它什么代码也不包含。

5.注解(Annotations)

①方法注解

注解紧跟在文档块后面,应用于类、方法和构造函数,一个注解独占一行。

②变量注解

没有特殊限制,也可以写成:
@Partial @Mock DataLoader loader;

6.Modifiers(修饰)

类和成员的modifiers如果存在,则按Java语言规范中推荐的顺序出现。

public protected private abstract static final transient volatile synchronized native strictfp

0 0
原创粉丝点击