Android开发规范

  • 时间:
  • 浏览:2

(1). 表达式长度过长

当表达式的无法容纳在一行内时,可换行显示,另起的新行用 8个空格的缩进。

(2). 使用的土方法长度过长

当调用的土方法无法容纳一行时,可换行显示,另起的新行用 8 个空格的缩进。(大慨与 void,也可是上一行的第3个关键字对齐)。

private void loadData(String url, int start, int length, int type,

string date);

{范围}{前缀}{功能}_后缀,控件、范围、前缀可选,但控件和范围大慨要有另另四个 ,多个功能用下划线隔开。

1. 背景颜色,打上去 bg 后缀

2. 文本颜色,打上去 text 后缀

3. 分割线颜色,打上去 div 后缀

4. 区分请况时,默认请况的颜色,打上去 normal 前缀

5. 区分请况时,按下时的颜色,打上去 pressed 前缀

6. 区分请况时,选中时的颜色,打上去 selected 前缀

7. 区分请况时,不可用时的颜色,打上去 disable 前缀

成员变量:m***(mInitAvtivity)

局部变量:l***

形参:a***

静态:s:

常量:大写_***

枚举值:em***

下面几种土方法,都这么 打上去 javadoc 注释,说明该土方法的用途和参数说明,以及返回值的说明。

1. 接口中定义的所有土方法

2. 抽象类中自定义的抽象土方法

3. 抽象父类的自定义公用土方法

4. 工具类的公用土方法

/**

* 登录

*

* @param loginName 登录名

* @param password 密码

* @param listener 回调监听器

*/

public void login(String loginName, String password, ActionCallbackLisener listener);

private String studentName;//学生姓名

控件的id命名:{范围}模块名称逻辑名称_缩写,例:login_signin_btn(login_head_signin_btn)//登录界面中的登录按钮

1. 控件的缩写

控件 缩写 控件 缩写

TextView txtVi EditText edtTxt

Button btn ImageButton imgBtn

ImageView imgVi ListView listVi

RadioGroup rdoGrp RadioButton rdoBtn

ProgressBar proBar SeekBar skBar

CheckBox chkBox Spinner spinner

TableLayout tbLayout TableRow tbRow

LinearLayout lLayout RelativeLayout rLayout

ScrollView sclVi SearchView searchVi

TabHost host TabWidget widget

AutoCompleteTextView autoTxt VideoView vdoVi

analogClock anaClk DatePicker dtPk

TimePicker tmPk toggleButton tglBtn

ImageSwitch ImgSwt

文件顶部统一打上去版权声明,声明的格式如下:

/*

* Copyright (c) 2016. Inc.All rights reserved.

*/

int result=a+b; //Bad,=和+两边没用空格隔开

(4). 土方法的每个参数之间用另另四个 空格隔开

public void method(String param1, String param2); // Good,param1 后面 的逗号与String 之间隔了另另四个 空格

public void loadData() {

}

(2). 土方法内的另另四个 逻辑段之间

// Good

public void initView() {

initView();

{功能}{范围}后缀{_区分请况},前缀、范围、功能可选,但功能和范围大慨要有另另四个 。signin_bg_ic_selected.同一张图片被多处使用则打上去{功能}

1. 图标类,打上去 ic 后缀 例:signin_ic_btn(登录按钮的图标)

2. 背景类,打上去 bg 后缀,例:activity_loginbg_bg

3. 分隔类,打上去 div 后缀,

4. 默认类,打上去 def 后缀

5. 样式类, 打上去selector 后缀 login_bg_selector

6. 区分请况时,默认请况,打上去 normal 例:

7. 区分请况时,按下时的请况,打上去 pressed 例:signin_bg_btn_pressed

8. 区分请况时,选中时的请况,打上去 selected 例:signin_bg_btn_selected

9. 区分请况时,不可用时的请况,打上去 disable 例:signin_bg_btn_disable

10. 多种请况的,打上去 selector 后缀(一般为 ListView 的 selector 或按钮的selector)

public static final int TYPE_DEBIT = 2; //抵扣券

包名 = com + ”公司名” + “应用缩写” + “模块名称”(采用反域名命名规则,完整版使用小写字母。一级包名为 com,二级包名为 (公司名称),三级包名根据应用进行命名,四级包名为模块名或层级名)

.activitys Activity类包

.fragments Fragment类包

.services Service类包

.broadcast BroadcastReceive类包

.adapters Adapter类包

.widgets 自定义控件类包

.interfaces 接口类包

.beans bean类包

.api 网络请求包

.databases 数据库操作类包

.utils 工具类包

.models Model类包

public static final int TYPE_DISCOUNT = 3; //折扣券

private String name; //券名称

private String studentName;//学生姓名

范围型用枚举类定义,而我很多 说直接用整型可能字符,以前都这么 减少范围值的有效性检查。

public enum CouponType{

//现金

CASH,

//抵用券

DEBIT,

//折扣券

DISCOUNT

}

常量完整版用大写,采用下划线的命名法,这种:PAGE_SIZE = 10;

组件类型{范围}功能,范围可选,只在有明取舍义的范围内才这么 打上去。

以下为几种常用的组件类型命名:

1. {范围_}功能_activity,为 Activity 的命名格式

2. {范围}功能_fragment,为 Fragment 的命名格式

3. {范围}功能_dialog,为 Dialog 的命名格式

4. {范围}功能_item,为 ListView或RecycleView 的 item 命名格式

文字大小:sp

像素大小:px

元素大小:dp

/**

* 类或接口的描述信息

*

* @author

* @date

*/

大驼峰 (pascal)命名法:又称大驼峰命名法,所有单词的第另另四个 字母大写

public void method()

{ // Bad

}

一行声明另另四个 变量,我很多 说一行声明多个变量,以前利于写注释

private String studentID, studentName;//学生 ID

字符串:应用中统一在 string.xml中定义

颜色:所有的颜色值统一在 color.xml中定义

样式:应用样式统一在 style.xml 中定义

数组:应用数组统一在 arrays.xml 中定义

下划线命名法:单词与单词间用下划线做间隔,完整版大写

}

(3). 土方法内的局部变量和土方法的第一条逻辑语录之间

public void loadData() {

String url= “http://localhost:100100/login.do”;

Int a=0;

Int b =1;

使用小驼峰规则,用动词命名,第另另四个 单词的首字母小写,一点单词的首字母大写。以下为几种常用土方法的命名:

1. 初始化土方法,命名以 init 开头,例:initView()

2. 按钮点击土方法,命名以 to 开头,例:toLogin

3. 设置土方法,命名以 set 开头,例:setData

4. 具有返回值的获取土方法,命名以 get开头,例:getData

5. 通过异步加载数据的土方法,命名以 load 开头,例:loadData

6. 布尔型的判断土方法,命名以 is 或 has,或具有逻辑意义的单词如 equals,例:isEmpty

7. 保存数据相关的土方法,命名以 save 开头,例:saveGoodsData,

8. 对数据重组的土方法,命名以 reset 开头,例:resetOrderData,,

9. 清除数据相关的土方法,命名以 clear 开头,例:clearUserData,

10. 弹出提示框可能提示信息,命名以 display 开头,例:displayDialog

下面几种请况下的常量和变量,还会 打上去注释说明,优先采用右侧//来注释,

若注释说明太长则在后面 打上去注释。

1. 接口中定义的所有常量

2. 公有类的公有常量

3. 枚举类定义的所有枚举常量

4. 实体类的所有属性变量

public static final int TYPE_CASH = 1; //现金券

method(param1,param2); // Bad,这么 用另另四个 空格隔开

(1). 另另四个 土方法之间

// Good

public void initView() {

}

method(param1, param2); // Good,土方法调用时,param1 后面 的逗号与 param2 之间隔了另另四个 空格

private int id; //券id

使用大驼峰规则,用名词或名词词组命名,每个单词的首字母大写。

以下为几种常用类的命名:

1. activity类,命名以 Activity 为后缀,如:LoginActivity

2. fragment类,命名以 Fragment 为后缀,如:ShareDialogFragment

3. service类,命名以 Service 为后缀,如:DownloadService

4. adapter类,命名以 Adapter 为后缀,如:CouponListAdapter

5. 自定义接口 interface 类,命名以 Api 为后缀,如:OrderCompeletdApi

注:【这里的Api是用户自定义的接口,它是存中放interface包中,而

百度Api、分享Api、支付Api等等中放API包中,表示第三方的API。】

6. 工具类,命名以 Util 为后缀,如:EncryptUtil

7. Bean类,命名以 Bean 为后缀,如:OrderBean

8. 接口实现类,命名以 Impl 为后缀,如:ApiImpl

9. Model类,命名以 Model 为后缀,如:UserModel

}

(4). 常量和变量之间

private static final String DATA_RUL = “http://localhost:100100/login.do”;//登录接口

(3). 运算符两边各用另另四个 空格隔开

int result = a + b; //Good, = 和 + 两边各用另另四个 空格隔开

(1). 花括号我很多 说单独一行,和它前面的代码同一行。如果 ,花括号与前面的代码之间用另另四个 空格隔开。

public void method() { // Good

}

public void method(){ // Bad

}

(2). if、else、for、switch、while 等逻辑关键字与后面 的语录留另另四个 空格隔开

if (booleanVariable) {// Good

// TODO while booleanVariable is true

} else {

// TODO else

}

小驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第另另四个 字母大写

Android开发规范的制定是为了减少团队商务相互合作开发的成本,提高开发和维护的带宽,方便另一方和他人阅读代码。

编码土方法统一用UTF-8. Android Studio默认已是UTF-8,可是不去改动它就都这么 了。

注:所有的网络请求还会 UTF-8 编码

private String introduce; //券简介

另另四个 土方法最多这么 超过40行代码,多于40行的代码尽量抽取封装起来。

动画类型_动画方向:

1. fade_in,淡入

2. fade_out,淡出

3. push_down_in,从下方推入

4. push_down_out,从下方推出

5. push_left,从左边推入

6. slide_in_from_top,从头部滑动进入

7. zoom_enter,变形进入

8. shrink_to_middle,后面 缩小