代码规范

没有规矩不成方圆

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


当然这只是一部分,更多的请移步

这可能是史上最全的Android代码规范
阿里Java开发手册

-------------本文结束感谢您的阅读-------------