没有规矩不成方圆
JAVA代码规范
强制性规范:
- 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
- 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
- 类名使用UpperCamelCase 风格,必须遵从驼峰形式。
- 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。
- 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长例如:MAX_STOCK_COUNT。
- 抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类 命名以它要测试的类的名称开始。
- 杜绝不规范的英文缩写:AbstractClass 缩写成AbsClass;condition缩写成condi;此类随意缩写严重降低了代码的可阅读性。
- 如果使用到了设计模式,建议在类名中体现出具体的模式。
Android代码规范
Activity 命名一律使用 模块名+Activity 的方式。例如,LoginActivity、SignupActivity;
Fragment 命名一律使用 模块名+Fragment 的方式;
自定义View:Custom(建议)+功能名+View/ViewGroup(具体的组件名称)。例如:CustomImageScroller、CustomRatingBar。Widget 小组件:ScanWidget、WeatherWidget。
Dialog对话框:功能名+Dialog。例如:LoginDialog、ProgressDialog
尽量在每一个Activity或类中加入TAG,方便我们查看Activity的信息。(Tip : 使用Android Studio提供的快捷键logt可快速生成当前 类的常量)
- 对于使用Intent传递数据,声明一些Key的时候,EXTRA_KEY_+具体Key名称。
- 所有的常量加上注释,且功能相同的排放在一起,不同的进行换行;
Activity中变量采用m开头+类名。例如,mTable、mPerson; - Activity中的控件:m+模块名+控件类型名称。例如,mLoginEditText,mLoginTextView;
资源Res
1.按照资源的类型,分为以下几种
控件Id命名:控件缩写 _模块(module) _功能名(function)
控件类型|ID命名规则
|—|—|
TextView | tv_module_function
EditText | et_module_function
ImageView | iv_module_function
Button | btn_module_function
ListView | lv_module_function
GridView | gv_module_function
CheckBox | check_module_function
RadioButton | radio_module_function
LinearLayout| ll_module_function
RelativeLayout | rl_module_function
FrameLayout | fl_module_function
GridLayout | gl_module_function
Drawable资源命名
| Resources Type | 命名规则 |
|---|---|
launcher icon | ic_launcher。例R.drawable.ic_launcher
normal icon | ic_具体模块_功能。例R.drawable.ic_audio_pause
Toolbar icon | ic_ab_功能名。例如ic_ab_search
selector | selector_模块_功能名。例如 selector_login_button
shape | shape_模块功能名状态。例如 R.drawable.shape_login_button_normal
Layout命名
| 类型 | 命名规则 |
|---|---|
activity | activity_模块名。例如 R.layout.activity_login
fragment | fragment_模块名。例如 R.layout.fragment_login_layout_header
include | layout_模块名_功能名。例如 @layout/layout_login_bottom
adapter | adapter_item_模块名_功能名。例如 R.layout.adapter_item_simple_text
dialog | dialog_模块_功能名。例如 R.layout.dialog_time_picker
list header | header_模块_功能。例如 R.layout.header_main_top_ad
list footer | footer_模块_功能。例如 R.layout.footer_main_bottom_action
widget | widget_模块_功能。例如 R.layout.widget_app_clock
Menu资源命名
Resources Type | 命名规则
|–|–|
menu | menu_模块名。例如 menu_login
Value资源命名
Resources Type | 命名规则
|–|–|
color | 模块名_color。例如 material_design_color
dimens | 模块名_dimens。例如 material_design_dimens
style | 模块名_style。例如 material_design_style
themes | 模块名_themes。例如 material_design_themes