类的组织结构
1.类成员区顺序
类成员顺序对代码的可读性是有很大帮助的,从上到下的排列顺序为:
常量区
UI控件变量区
普通变量区
生命周期区
重载方法区
私有方法区
内部类区
2.类成员划分
按照发生的先后顺序排列
常量按照使用先后排列
UI控件成员变量按照layout文件中的先后顺序排列
普通成员变量按照使用的先后顺序排列
方法基本上都按照调用的先后顺序在各自区块中排列
命名规范
1.包名
包名一般采用域名的反转,全部小写,连续的单词只是简单地连接起来,不使用下划线。例如:com.shuidi.huzhu
2.类和接口
类名=功能+类型后缀
类名都以大驼峰(UpperCamelCase)风格编写。类名通常是名词或名词短语。
activity类,命名以Activity为后缀,如:LoginActivity
fragment类,命名以Fragment为后缀,如:ShareDialogFragment
service类,命名以Service为后缀,如:DownloadService
adapter类,命名以Adapter为后缀,如:CouponListAdapter
工具类,命名以Util为后缀,如:EncryptUtil
3.变量
a.成员变量:
成员变量采用小驼峰命名规则,第一单词的首字母小写,其后的首字母大写。例如:
private Intent cropIntent;
b.静态变量:
为了可以很方便的区分静态变量,静态变量的命名一般采用小写的s开头,后面单词的命名规则和成员变量保持一致,例如:
private static Map<String, String> sCacheStrings;
c.常量
常量命名规则一般是所有的单词都是大写,中间使用_(下划线)分割,例如:
private static final float SCALE_RATE = 1.25f;
4.方法
方法命名规则采用小驼峰命名法例如:onCreate(),onRun(),方法名一般采用动词或者动名词。一般使用的方法名前缀。
getXX()返回某个值的方法
initXX() 初始化相关方法,比如初始化布局:initView()
checkXX()和isXX() 方法为boolean值的时候使用is或者check为前缀
saveXX() 保存数据
clearXX()和removeXX() 清除数据
updateXX() 更新数据
processXX() 对数据进行处理
dispalyXX() 显示某某信息
drawXX() 绘制数据或者效果
资源文件命名规范
注意:项目中使用的string、color、dimen的值原则上都是必须放在strings.xml、colors.xml、dimens.xml中,不要放在Java代码中,这样的好处是可复用,提高维护性,减少非必要的代码。
1.控件类型
控件类型(或缩写)+意义描述,用驼峰式,首字母小,如:
private TextView tvHeaderTitle; // 标题栏的标题
private Button btnLogin; // 登录按钮
2.控件ID命名
<!-- 这是标题栏的标题 -->
<TextView android:id="@+id/txt_header_title" ... />
<!-- 这是登录按钮 -->
<Button android:id="@+id/btn_login" ... />
3.Layout
Layout的命名规则需要和使用他们的组件对应,方便查找和维护,比如我们在创建一个用户信息的UserInfoActivity,对应的Layout的命名就应该是activity_user_info.xml
activity_功能描述,为Activity的命名格式 , 如:activity_user_info.xml
fragment_功能描述,为Fragment的命名格式,如:fragment_sign_up.xml
dialog_功能描述,为Dialog的命名格式 ,如:dialog_change_password.xml
item_功能描述,为列表的item命名格式,如:item_user.xml
include_功能描述,include layout复用命名格式,如:include_title
widget_功能描述,为自定义控件类命名格式
header_功能描述,为列表的HeaderView命名格式
footer_功能描述,为列表的FooterView命名格式
4.string的命名
a.跟业务有关的:业务_描述或业务_控件类型_描述,如:
按钮文字: login_cancel
页面标题: info_title
选项卡文字:info_tab_选项卡文字
b.某类型控件通用的:控件类型_描述,如:
消息框文字:toast_描述
编辑框的提示文字:hint_提示描述
对话框的文字:dialog_描述
c.通用的文字,直播描述表示就可以,如:
<string name="search">搜索</string>
5.colors的命名
a.跟业务有关的,业务_{描述}颜色类型,如:
登录页面背景颜色:login_bg
登录页面取消按钮颜色:login_cancel_btn_bg
资讯页面标题文字颜色: info_title_txt
资讯页面标题背景颜色: info_title_bg
设置页面分割线颜色:setting_div_bg
b.某类型控件通用的,控件类型_颜色类型,如:
列表的背景色:listview_bg
按钮的文件颜色:btn_txt
c.通用的颜色,颜色类型_描述,如:
背景颜色,添加bg前缀,如:bg_red
文字颜色,添加text前缀,text_red
分割线颜色,添加div前缀,div_red
另外:
区分状态时,默认状态的颜色,添加normal后缀
区分状态时,按下时的颜色,添加pressed后缀
区分状态时,选中时的颜色,添加selected后缀
区分状态时,不可用时的颜色,添加disable后缀
6.dimens的命名
a.跟业务有关的,业务_控件_尺寸类型,如:
登录按钮的宽度:login_btn_width
登录按钮的高度:login_btn_heigth
登录按钮的文字大小:login_btn_size
b.某类型控件通用的,控件_尺寸类型,如:
列表的分隔线的高度:listview_div_height
7.drawable的命名
注意:图片添加img前缀,shape添加shape前缀,selector添加selector前缀,其它的则直接描述命名即可。
图片-图标类,添加ic后缀,格式:img_描述_ic,如:img_msg_icon
背景类,添加bg后缀,格式:img_描述_bg,如:img_search_bg
分隔类,添加div后缀,格式:img_描述_div,如:img_listview_div
shape背景,如:shape_bg_radius
selector,如:selector_list_item
区分状态时,默认状态,添加normal后缀
区分状态时,按下时的状态,添加pressed后缀
区分状态时,选中时的状态,添加selected后缀
区分状态时,不可用时的状态,添加disable
8.动画文件命名
动画类型_动画方向
fade_in,淡入
fade_out,淡出
push_down_in,从下方推入
push_down_out,从下方推出
slide_in_from_top,从头部滑动进入
zoom_enter,变形进入
shrink_to_middle,中间缩小