每个程序员又有自己的习惯和代码风格,当工程比较小,或者合作的人比较少的时候都还好说,但碰见大工程,需要大家一起奋斗的时候,统一的命名规范重要性就体现出来了。
恩,学习Android一年多了,命名一直不太规范,今天特意转载了这篇命名规则,留作备忘。原文请戳Android命名规则。
本文在原作者基础上稍有改动, 添加了一些个人爱好。还请见谅。

标识符命名法最要有四种:

  1. 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。
  2. 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写
  3. 下划线命名法:单词与单词间用下划线做间隔。
  4. 匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。

下面为常见的英文单词缩写:

名称 缩写
icon ic (主要用在app的图标)
color cl(主要用于颜色值)
divider di(主要用于分隔线,不仅包括Listview中的divider,还包括普通布局中的线)
selector sl(主要用于某一view多种状态,不仅包括Listview中的selector,还包括按钮的selector)
average avg
background Bg(主要用于布局和子布局的背景)
buffer buf
control ctrl
delete del
document doc
error err
escape esc
increment inc
infomation info
initial init
image img
Internationalization I18N
length len
library lib
message msg
password pwd
position pos
server srv
string str
temp tmp
window wnd(win)

程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的。

命名规范:

1 包(packages): 采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名

包名 此包中包含
com.xx.应用名称缩写.activities 页面用到的Activity类 (activities层级名用户界面层)
com.xx.应用名称缩写.base 页面中每个Activity类共享的可以写成一个i额BaseActivity类 (基础共享的类)
com.xx.应用名称缩写.adapter 页面用到的Adapter类 (适配器的类)
com.xx.应用名称缩写.tools 此包中包含:公共工具方法类(tools模块名)
com.xx.应用名称缩写.bean(或则 com.xx.应用名称缩写.enity ) 此包中包含:元素类
com.xx.应用名称缩写.db 数据库操作类
com.xx.应用名称缩写.view(或则 com.xx.应用名称缩写.ui ) 自定义的View类等
com.xx.应用名称缩写.service Service服务
com.xx.应用名称缩写.broadcast Broadcast服务

2 类(classes):名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。

描述 例如
activity 类 Aty或者Activity为后缀标识 欢迎页面类WelcomeAty.或者WelcomeActivity
Adapter类 Adp或者Adapter 为后缀标识 新闻详情适配器NewtDetailAdp或则直接 NewDetailAdapter
解析类 Hlr为后缀标识 首页解析类HomePosterHlr
公共方法类 Tools或Manager为后缀标识 线程池管理类:ThreadPoolManager 日志工具类:LogTools
数据库类 以DBHelper后缀标识 新闻数据库:NewDBHelper
Service类 以Service为后缀标识 时间服务TimeService
BroadcastReceive类 以Broadcast为后缀标识 时间通知TimeBroadcast
ContentProvider 以Provider为后缀标识
直接写的共享基础类 以Base开头 BaseActivity,BaseFragment

3 接口(interface):命名规则与类一样采用大驼峰命名法,多以
able或ible结尾,如interface Runnable;
interface Accessible

4 方法(methods):动词或动名词,采用小驼峰命名法
例如:onCreate(),run()

方法 说明
initXX() 初始化相关方法,使用init为前缀标识,如初始化布局initView()
isXX() checkXX()方法返回值为boolean型的请使用is或check为前缀标识
getXX() 返回某个值的方法,使用get为前缀标识processXX()对数据进行处理的方法,尽量使用process为前缀标识
displayXX() 弹出提示框和提示信息,使用display为前缀标识
saveXX() 与保存数据相关的,使用sav为e前缀标识resetXX()对数据重组的,使用reset前缀标识
clearXX() 清除数据相关的
removeXXX() 清除数据相关的
drawXXX() 绘制数据或效果相关的,使用draw前缀标识

7 资源文件(图片drawable文件夹下):

如果有多种形态如按钮等除外如btn_xx.xml(selector)

名称 功能
btn_xx 按钮图片使用btn_整体效果
btn_xx_normal 按钮图片使用btn_正常情况效果
btn_xx_press 按钮图片使用btn_点击时候效果
bg_head 背景图片使用bg功能说明
def_search_cell 默认图片使用def功能说明
icon_more_help 图标图片使用icon功能说明
seg_list_line 具有分隔特征的图片使用seg功能说明
sel_ok 选择图标使用sel功能说明

命名后缀:

后缀 说明
nor 图片的状态,代表普通状态
hl 图片的状态,代表高亮状态
press 图片的状态,代表按下状态
select 图片的状态,代表其所占的view被选中
unselect 图片的状态,代表其所占的view没有被选中

8 资源布局文件(XML文件(layout布局文件)):

全部小写,采用下划线命名法
1).contentview命名, Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀:
例如:activity_main.xml、activity_more.xml

2).Dialog命名:dialog_描述.xml
例如:dlg_hint.xml

2).PopupWindow命名:ppw_描述.xml
例如:ppw _info.xml

3). 列表项命名listitem_描述.xml
例如:listitem_city.xml

4).包含项:include_模块.xml
例如:include_head.xml、include_bottom.xml

5).adapter的子布局:功能模块_item.xml
例如:main_item.xml、

9 动画文件(anim文件夹下):全部小写,采用下划线命名法,加前缀区分。

//前面为动画的类型,后面为方向

动画命名例子 规范写法
fade_in 淡入
fade_out 淡出
push_down_in 从下方推入
push_down_out 从下方推出
push_left 推向左方
slide_in_from_top 从头部滑动进入
zoom_enter 变形进入
slide_in 滑动进入
shrink_to_middle 中间缩小

10 资源ID(resourcesid):大小写规范与方法名一致,采用小驼峰命名法。命名规范为“资源控件的缩写 名”+“变量名”。注意:页面控件名称应该和控件id名保持一致
strings.xml,colors.xml等中的id命名:
strings.xml中,使用activity名称注释,将文件内容区分开来

11 layout中的id命名
命名模式为:view缩写_模块名称_view的逻辑名称
view的缩写详情如下:

控件 缩 写
LayoutView lv
RelativeView rv
TextView tv
Button btn
ImageButton imgBtn
ImageView mgView 或者 iv
CheckBox chk
RadioButton rdoBtn
analogClock anaClk
DigtalClock dgtClk
DatePicker dtPk
EditText edtTxt
TimePicker tmPk
toggleButton tglBtn
ProgressBar proBar
SeekBar skBar
AutoCompleteTextView autoTxt
ZoomControls zmCtl
VideoView vdoVi
WdbView webVi
RantingBar ratBar
Tab tab
Spinner spn
Chronometer cmt
ScollView sclVi
TextSwitch txtSwt
ImageSwitch imgSwt
listView lVi 或则lv
ExpandableList epdLt
MapView mapVi

12.activity中的view变量命名

命名模式为:逻辑名称+view缩写

建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view

13.styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中;
常用控件的缩写

控件 布局文件中缩写 代码中缩写
LinearLayout xxx_layout xxxLLayout
RelativeLayout xxx_layout xxxRLayout
FrameLayout xxx_layout xxxFLayout
TextView xxx_tvxxx Tv
EditText xxx_etxxx Et
Button xxx_btn xxxBtn
ImageView xxx_iv xxxIv
CheckBox xxx_chk xxxChk
RadioButton xxx_rbtn xxxRbtn
ProgressBar xxx_pbar xxxPbar
ListView xxx_lv xxxLv
WebView xxx_wv xxxWv
GridView xxx_gv xxxGv

编码规范
* 代码中尽量不要出现中文。注释和除外。代码中通过strings.xml引用来显示中文。
* 控件声明放在activity级别,这样在activity其他地方可以使用。
* 在一个View.OnClickListener中处理所有的点击事件逻辑,这样看起来很集中和直观。
* strings.xml中使用%1sd等实现字符串的通配。
* 布局文件中的字体大小,都定义在dimens.xml中。
* 有关margin和padding的值也都放在dimens.xml中。
* 界面之间传值尽量使用intent方式。少用全局变量。
* 不建议在布局文件中添加点击事件。
* 数据类型转换一定要校验。
* 使用常量代替枚举。
* 实体不要在不同模块间共享,但是可以在统一模块下的不同页面共享
* 类注释一定要写,管家的方法也要写方法注释。常量尽量写注释。

Android:规范命名,让合作更加愉快相关推荐

  1. Android资源命名规范

    Android资源命名规范 最近几个月,大量涉及android资源的相关工作.对于复杂的应用而言,资源命名的规范很有必要.除了开发人员之外,UI设计人员(或者切图相关人员)也需要对资源使用的位置非常清 ...

  2. android icon命名规则,安卓手机的APP图标尺寸规范和图标命名规范

    安卓手机的APP图标尺寸规范和图标命名规范 点击查看原文 android图标包括:程序启动图标.底部菜单图标.弹出对话框顶部图标.长列表内部列表项图标.底部和底部tab标签图标. 1.安卓程序启动图标 ...

  3. Android代码命名规范

    目录 目录 1.为什么 规范 Android 代码命名? 2.Android需要命名的代码(对象)有哪些? 3.具体命名规范 3.1.包 3.2.类 3.3.变量 3.4.方法 3.5.参数名 3.6 ...

  4. 百度android代码命名规范

    代码规范 1.     简介 A.    目的 本文提供一整套编写高效可靠的 Java 代码的标准.约定和指南.它们以安全可靠的软件工程原则为基础,使代码易于理解.维护和增强.而且,通过遵循这些程序设 ...

  5. bat文件刷屏,请规范命名

    bat文件执行数据导出(exp)的刷屏现象oracle 今天批量导出指定表的数据时,写成了一个bat文件,文件名为exp.bat.双击bat文件后,屏幕出现刷屏现象,数据无法导出. bat文件如下: ...

  6. C语言初学者编程规范—命名规则

    原文地址:C语言初学者编程规范-命名规则 C是一门朴素的语言,你使用的命名也应该这样.与Modula-2和Pascal程序员不同,C程序员不使用诸如"ThisVariableIsATempo ...

  7. android 层进菜单,iOS和Android规范解析——底部浮层(下)

    上次的文章(点击查看),介绍了Android MD设计规范中对于"底板(Bottom Sheets)"的定义,这次的文章来跟大家介绍一下iOS设计规范中的底部浮层. 在iOS规范中 ...

  8. android 开发 命名规范

    转自:http://www.cnblogs.com/ycxyyzw/p/4103284.html 标识符命名法 标识符命名法最要有四种: 1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其 ...

  9. android 控件资源命名规范,Android 资源命名规范整理

    参考结合官方.各厂.各博客标准命名规范,整理出的符合 Android 风格的资源命名规则. 布局文件(Layout)命名 _ eg1.activity_home eg2.item_countrylis ...

最新文章

  1. SAP WM中阶Storage Type的Capacity Check – Check based on maximum quantity per bin in storage type.
  2. 世安杯CTF writeup
  3. Python urllib与requests、XML和HTMLParser
  4. spring+springMvc+mybatis 调用oracle 存储过程
  5. Java命令行界面(第17部分):jw-options
  6. mel滤波器组频率响应曲线_了解二阶滤波器的奈奎斯特图
  7. netsh 禁用端口
  8. 77种互联网盈利创新模式(7)
  9. 反编译object文件c语言,能不能通过反编译程序看.sys文件的源代码!
  10. 电磁场关于静电场和恒定磁场的思维导图及引申时变电磁场
  11. NC6 转库单、采购入库单、库存委托入库单签字后自动生成调拨订单
  12. 中文字符集与字符编码的基础知识
  13. python35安装教程_【邢不行量化小讲堂35-python量化入门】建议收藏|Windows下安装TA-Lib终极教程(下)...
  14. 三维图看法亲身经验.
  15. 怎样在Edge浏览器中开启IE兼容模式
  16. 2019网易校招笔试题 瞌睡
  17. linux下登录不上oracle,Oracle特定用户登录失败案例 ORA-20001
  18. The server returned the following error: 无法与服务器建立连接(0x80072EFD)
  19. 【老九】【Python】函数与模块
  20. Noisy machines: understanding noisy NNs and enhancing robustness to analog hardware errors

热门文章

  1. 历届试题 大臣的旅费 java
  2. Warshall算法C语言实现
  3. 很强大,并且易于使用,更重要的是免费的一个分区工具:分区助手
  4. 人工神经网络的应用实例,人工神经网络简单例题
  5. 两个步骤解决 SQL Server 登录报错 通过端口 1433 连接到主机 的 TCP/IP 连接失败。 错误:“connect timed out”
  6. 使用python脚本将word文档转txt
  7. 树莓派从零开始快速入门系列汇总
  8. 什么是库存周转率周转天数?
  9. 【数据结构算法】小结
  10. 小程序:下载图片文件(wx.downloadFile)并保存到手机相册(wx.saveImageToPhotosAlbum)