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.activityActivity类
com.xxx.xxx.fragmentFragment类
com.xxx.xxx.adapter适配器类
com.xxx.xxx.utils工具类
com.xxx.xxx.vo界面显示的数据对象
com.xxx.xxx.serviceService服务
com.xxx.xxx.receiverBroadcastReceiver类
com.xxx.xxx.db数据库操作类
com.xxx.xxx.persenter中间对象
com.xxx.xxx.model模型类
类的命名

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

示例
ActivityxxxActivity.java
ServicexxxService.java
FragmentxxxFragment.java
BroadcastReceiverxxxReceiver.java
ContentProviderxxxProvider.java
AdapterxxxAdapter.java
PersenterxxxPersenter.java
HandlerxxxHandler.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保持一致。

常用控件的缩写:

控件缩写示例
LinearLayoutllllFriend
RelativeLayoutrlrlMessage
FrameLayoutflflCart
TableLayouttltlCourse
TextViewtvtvName
EditTextetetAddress
ButtonbtnbtnLogin
ImageViewivivAvatar
ListViewlvlvGoods
RecyclerViewrvrvStudent
GridViewgvgvPhoto
ImageButtonibtnibtnPlay
CheckBoxchkchkHobby
RadioButtonrbrbSex
ProgressBarpbpbLoading
WebViewwvwvNews
ToggleButtontbtbXXX
SpinnerspnspnXXX
MenumnumnuXXX
资源的命名

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

控件ID的命名

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

drawable的命名

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

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

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

类型格式示例
共用布局common_xxxcommon_date.xml
嵌入布局inc_xxxinc_topbar.xml
Activity布局activity_xxxactivity_main.xml
Fragment布局fragment_xxxfragment_settings.xml
Dialog布局dialog_xxxdialog_update.xml
PopupWindow布局ppw_xxxppw _info.xml
ListView的Item布局item_list_xxxitem_list_house.xml
GridView的Item布局item_grid_xxxitem_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的命名

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值