Android编程风格以及命名规范

编程风格

  • 代码中尽量不要出现中文。注释和除外。代码中通过strings.xml引用来显示中文
  • 控件声明放在activity级别,这样在activity其他地方可以使用
  • 不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致message.what冲突
  • 在一个View.OnClickListener中处理所有的点击事件逻辑,这样看起来很集中和直观
  • strings.xml中使用%1$s等实现字符串的通配
  • 布局文件中的字体大小,都定义在dimens.xml中
  • 有关margin和padding的值也都放在dimens.xml中
  • 界面之间传值尽量使用intent方式。少用全局变量
  • 不建议在布局文件中添加点击事件
  • 数据类型转换一定要校验
  • 使用常量代替枚举
  • 实体不要在不同模块间共享,但是可以在统一模块下的不同页面共享
  • 建议采用左括号与方法名称在同一行的代码格式来进行代码的编写和格式化。
  • 业务稍微复杂一些,都有可能提炼一个BaseActivity或BaseFragment出来做为公共父类
  • 类注释一定要写,重要的方法也要写方法注释。常量尽量写注释
  • 编写SQL语句时,对于关键字使用全部大写。对于数据库元素(如表、列和视图)使用大小写混合。例如SELECT * FROM Table1
  • 一个方法尽量不要超过30行,如果方法太长,说明当前方法业务逻辑已经非常复杂,那么就需要进行方法拆分,保证每个方法只做一件事。
  • 一个方法的参数尽可能的不要超过4个
  • 如果一个方法返回的是一个错误码,请使用异常,尽可能不要使用null,替代为异常或者使用空变量。如返回List则可以使用Collections.emptyList()
  • 代码中不允许出现单独的数字,字符。如果需要使用数字或字符,则将它们按照含义封装为静态常量(for语句中除外)。
  • 判断中如有常量,则应将常量置于判断式的右侧。如:if(true == isAdmin())
  • 按钮要避免重复点击
  • 使用静态变量方式实现界面间共享要慎重
  • 尽量使用shape和selector
  • 复杂布局使用RelativeLayout
  • 自适应屏幕,使用dp替代px
  • 使用animation-list制作动画效果
  • 图片尽量分拆成多个可重用的图片

命名规范

驼峰命名法:除了首个单词首字母小写除外,其余所有单词所有首字母都要大写。

包的命名

包名一律小写, 少用缩写和长名。
规则:[com].[公司名/组织名].[项目名].[模块名/层级名称]
例如:com.google.gson

包名 描述
com.xxx.xxx.base 基础共享的类
com.xxx.xxx.view/widget 自定义的View类等
com.xxx.xxx.activity Activity类
com.xxx.xxx.fragment Fragment类
com.xxx.xxx.adapter 适配器类
com.xxx.xxx.utils 工具类
com.xxx.xxx.vo 界面显示的数据对象
com.xxx.xxx.service Service服务
com.xxx.xxx.receiver BroadcastReceiver类
com.xxx.xxx.db 数据库操作类
com.xxx.xxx.persenter 中间对象
com.xxx.xxx.model 模型类

类的命名

Android中类的命名与JAVA开发采用相同的规范。采用大驼峰命名法,所有单词的首字母大写。

示例
Activity xxxActivity.java
Service xxxService.java
Fragment xxxFragment.java
BroadcastReceiver xxxReceiver.java
ContentProvider xxxProvider.java
Adapter xxxAdapter.java
Persenter xxxPersenter.java
Handler xxxHandler.java
公共父类 BaseXxx.java
接口 xxxInter.java
接口实现类 xxxImpl.java
工具类 xxxUtil.java或xxxManager.hava
数据库类 xxxDBHelper.java
解析类 xxxParser.java

接口的命名

接口名称以 I 为前缀或者以 able,ible,er 为后缀,如果有多个单词,每个单词首字母大写。例如:IBinder

事件监听器命名

On 开头,如果有多个单词,每个单词首字母大写。例如:OnClickListener

方法的命名

方法名通常是动词或动词短语。第一个单词的首字母小写,其后单词的首字母大写。

方法 描述
initXX() 初始化相关方法
isXX()/checkXX() 方法返回值为boolean型的请使用is或check为前缀标识
getXX() 返回某个值的方法
handleXX() 对数据进行处理的方法
displayXX()/showXX() 弹出提示框和提示信息
saveXX() 与保存数据相关的
resetXX() 对数据重置的
clearXX() 清除数据相关的
removeXX() 移除数据相关的
drawXX() 绘制数据或效果相关的

变量的命名

只在代码块的开始处声明变量;
变量名不应以下划线或美元符号开头;
尽量避免单个字符的变量名;
集合类型变量,例如数组和矢量,应采用复数命名或使用表示该集合的名词作后缀。

成员变量

以小写字母 m 开头,其余所有单词首字母都要大写,例如:mFile

静态变量

以小写字母 s 开头,其余所有单词首字母都要大写,例如:sInstance

局部变量

指方法中的变量和方法的参数。第一个单词的首字母小写,其后单词的首字母大写,即使局部变量是final类型的,也不应该把它视为常量,自然也不能用常量的规则去命名。

临时变量

临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型

常量的命名

全部采用大写,单词之间用下划线连接,例如:MAX_SIZE

控件的命名

控件缩写+控件逻辑,控件逻辑首字母大写。类中控件名称必须与xml布局id保持一致。

常用控件的缩写:

控件 缩写 示例
LinearLayout ll llFriend
RelativeLayout rl rlMessage
FrameLayout fl flCart
TableLayout tl tlCourse
TextView tv tvName
EditText et etAddress
Button btn btnLogin
ImageView iv ivAvatar
ListView lv lvGoods
RecyclerView rv rvStudent
GridView gv gvPhoto
ImageButton ibtn ibtnPlay
CheckBox chk chkHobby
RadioButton rb rbSex
ProgressBar pb pbLoading
WebView wv wvNews
ToggleButton tb tbXXX
Spinner spn spnXXX
Menu mnu mnuXXX

资源的命名

全部采用小写,单词之间使用下划线分割。

控件ID的命名

采用控件缩写_控件功能的格式。例如:btn_login

drawable的命名

采用前缀_逻辑名称{_后缀}的格式。以下为常用的命名格式:

  • 图标类,使用 ic 前缀。例如:ic_logo.png
  • 背景类,使用 bg 前缀。例如:bg_splash.png
  • 分隔类,使用 div 前缀。
  • 默认类,使用 def 前缀。
  • 选择器类,使用 selector 前缀。
    • 默认状态,使用 normal 后缀。
    • 按下状态,使用 pressed 后缀
    • 选中状态,使用 selected 后缀。
    • 禁用状态,使用 disable 后缀。
layout的命名

采用组件类型_功能的格式。以下为常用的命名格式:

类型 格式 示例
共用布局 common_xxx common_date.xml
嵌入布局 inc_xxx inc_topbar.xml
Activity布局 activity_xxx activity_main.xml
Fragment布局 fragment_xxx fragment_settings.xml
Dialog布局 dialog_xxx dialog_update.xml
PopupWindow布局 ppw_xxx ppw _info.xml
ListView的Item布局 item_list_xxx item_list_house.xml
GridView的Item布局 item_grid_xxx item_grid_photo.xml
ListView的HeaderView布局 header_list_xxx
ListView的FooterView布局 footer_list_xxx
colors的命名

采用前缀_逻辑名称{_后缀}的格式。以下为常用的命名格式:

  • 背景颜色,使用 bg 前缀
  • 文本颜色,使用 text 前缀
  • 分隔线颜色,使用 div 前缀
  • 多种状态下
    • 默认状态颜色,使用 normal 后缀
    • 按下状态颜色,使用 pressed 后缀
    • 选中状态颜色,使用 selected 后缀
    • 禁用状态颜色,使用 disabled 后缀
strings的命名

采用类型_逻辑名称的格式。

类型 格式 示例
界面标题 title_页面 title_settings
按钮文字 btn_按钮事件 btn_login
标签文字 label_标签文字 label_password
选项卡文字 tab_选项卡文字 label_login
消息框文字 toast_消息 toast_exit
编辑框提示文字 hint_提示信息 hint_password
图片描述文字 desc_描述 desc_avatar
对话框文字 dialog_文字 dialog_info
Menu的Item文字 action_文字
anim的命名

采用动画类型_动画方向的格式。

  • fade_in,淡入
  • fade_out,淡出
  • push_down_in,从下方推入
  • push_down_out,从下方推出
  • slide_in_from_top,从头部滑入
  • zoom_enter,变形进入
  • push_left,推向左方
  • shrink_to_middle,中间缩小
styles的命名

采用大驼峰命名法。每个单词首字母大写。

以上为个人习惯整理出来的规范,并不适用于每个人,如需转载请标明原文出处!

你可能感兴趣的:(Android)