阿里云服务器免费领卷啦。

捡代码论坛-最全的游戏源码下载技术网站!

 找回密码
 立 即 注 册

QQ登录

只需一步,快速开始

搜索
关于源码区的附件失效或欺骗帖, 处理办法
查看: 2195|回复: 1

Android命名规范与编码风格

[复制链接]

4213

主题

210

回帖

12万

积分

管理员

管理员

Rank: 9Rank: 9Rank: 9

积分
127401
QQ
发表于 2016-12-25 12:11:45 | 显示全部楼层 |阅读模式

欢迎转载,但请务必在明确位置注明文章出处! http://johnnyshieh.github.io/and ... d-coding-standards/

在团队开发项目中,统一的命名规范与编码风格非常重要,只有这样才像一个优秀团队开发的产品。而且这样方便阅读其他人的代码,便于后期维护。我觉得 Android 源码的可读性很好,风格统一,而在实际项目中经常看到混乱的风格,缩进有的是 tab 有的是 space ,命名有的是中文拼音有的是英文,看上去非常的乱。相信大家都喜欢简洁整齐的代码,这就需要团队成员稍微牺牲下个性,遵守统一的规范,自己读起来也赏心悦目。下面我根据自己的一些编码规范和网上的一些资料整理出一套 Android 命名规范,至于编码风格是根据 Google 的提供的 Android code style 略微修改而成,直接在 Android Studio 导入即可, 所以下面主要是介绍命名规范内容。

1. Android 命名规范

下面的命名规范,有些是我个人习惯,有不喜欢的地方可以复制后修改即可,做到简单易记就好,便于团队成员遵守。

基本命名方式
  • 大驼峰命名法(UpperCamelCase):所有单词的第一个字母大写
  • 小驼峰命名法(lowerCamelCase):除首单词外,其余所有单词的第一个字母大写
  • 下划线命名法(case1_case2):单词与单词之间用下划线间隔,所有单词小写

一般建议用来命名的单词简单明了,不要用中文拼音,找个词典翻译下还能提高自己英文水平。有些单词可以写成一些约定俗成的缩写,也可以根据团队成员间的约定进行缩写命名。

下表是一些常用的缩写:

常用词
缩写

Argument
arg

Buffer
buf

Clear
clr

Clock
clk

Compare
cmp

Configuration
cfg

Context
ctx

Delay
dly

Device
dev

Display
disp

Error
err

function
fnct

Hexadecimal
hex

Initialize
init

Maximum
max

Message
msg

Minimum
min

multiplex
mux

Parameter
param

Previous
prev

Priority
prio

Register
reg

Schedule
sched

Synchronize
sync

类名由一个或多个名词组成,采用大驼峰命名法,把类型作为最后一个单词,其他单词尽量避免缩写,除非是众所周知的,例如 HTML,URL,JSON,XML 等

命名格式
示例

Activity
XXX描述 + Activity
HomeActivity

Fragment
XXX描述 + Fragment
ContactsFragment

Service
XXX描述 + Service
PushService

BroadcastReceiver
XXX描述 + Receiver
NetworkReceiver

ContentProvider
XXX描述 + Provider
BookmarkProvider

Adapter
XXX描述 + Adapter
NewsListAdapter

Bean
XXX描述 + Bean
PersonBean

基础功能类
Base + XX父类名
BaseActivity

工具类
XXX描述 + Utils
BitmapUtils
接口

命名方式和类一致,建议再加上 I 前缀,表明这是一个接口,与类有所区分,例如:ILoadListener

变量

采用小驼峰命名法,同时我觉得为了更好的区分局部变量、成员变量、静态变量,推荐加个前缀,Android 源码中也是这样使用的。

  • 成员变量命名前加 m (member),例如 mWidth,mHeight
  • 静态变量命名前加 s (static),例如静态的单例变量 sInstance

例外,Android 开发中经常有控件变量,如 TextView,ImageView 等,推荐命名方式: m + 控件类型缩写 + 描述, 如登陆按钮命名为 mBtnLogin 。这样可以很清楚知道这是一个 Button 控件类型的局部变量,代码也会整齐简洁。

下面列出一些常用控件的缩写

控件
缩写

ActionBar
ab

LinearLayout
ll

RelativeLayout
rl

FrameLayout
fl

TextView
tv

ImageView
iv

Button
btn

ImageButton
imgBtn

RadioButton
rdoBtn

ToggleButton
tglBtn

CheckBox
chk

DatePicker
dtPk

TimePicker
tmPk

EditText
edtTxt

ProgressBar
proBar

SeekBar
skBar

AutoCompleteTextView
autoTxt

VideoView
videoVi

WebView
webVi

Spinner
spn

ScrollView
sclVi

ListView
lv

GridView
gv

RecyclerView
rv
常量

全部大写,同时采用下划线命名法,例如 MAX_THREAD_NUM

方法

采用小驼峰命名法,一般用动词或动名词

命名格式
说明

initXX()
初始化相关方法,如初始化布局 initLayout()

isXX()
是否满足某些条件,如是否连接WIFI:isWIFIConnected()

processXX()
处理一些数据或过程

showXX()
显示XX信息

hideXX()
隐藏XX信息

saveXX()
保存XX

resetXX()
重置XX

addXX() / insertXX()
添加XX

deleteXX() / removeXX()
删除XX

updateXX()
更新XX

searchXX() / findXX() / queryXX()
查找XX

drawXX()
绘制XX

onXX()
一些状态回调,如加载成功 onLoadSuccess()
资源文件

资源文件的命名基本规则是: 类型 + 描述, 采用下划线命名法

1.layout 目录下文件命名

布局文件的命名需要与相应的组件对应,这样方便查找和维护,例如创建一个主页的 Activity 布局文件,命名为 activity_home.xml

下面是一些常见布局命名:

布局类型
命名方式

Activity 的布局
activity_XX

Fragment 的布局
fragment_XX

Dialog 的布局
dialog_XX

可include 的布局
include_XX

RecyclerView 的布局
recycler_item_XX

2.drawable 命名

Drawable的命名以使用的控件作为前缀,后面再加上描述,中间以下划线分隔。

ActionBar 使用 ab_

Divider 使用 divider_

Icon 使用 ic_

Menu 使用 menu_

Button 使用 btn_login

Drawable 是有多个状态的,也应该在命名中体现出来:

  • Normal 对应 _normal 后缀, 例如 btn_click_normal.png
  • Pressed 对应 _pressed 后缀
  • Focused 对应 _focused 后缀
  • Disabled 对应 _disabled 后缀
  • Selected 对应 _selected 后缀

3.stings 和 colors 资源文件

也是一样使用下划线命名法,可以按模块来划分为多个strings文件,编译打包时会自动把同类文件进行合并

例如有 moudleA,moudleB, moudleCommon, 则分为 strings_moudle_a , strings_moudle_b , strings_common 。

colors 资源文件的命名也类似,在文件内部具体某个 color 值的命名可以按使用界面作为前缀,例如 主页中分隔线的颜色 命名为 home_fragment_divider

控件ID

控件ID采用下划线命名法,全部都是小写。控件的ID的命名我觉得最好与之前控件命名相对应,例如之前登陆的按钮命名为 mBtnLogin,那么对应的ID命名为 btn_login

在代码中就是 Button mBtnLogin = (Button) findViewById(R.id.btn_login); ,非常清晰明了

2. Android 编码风格

编码风格的话,当然是以 Google 官方推荐的为标准,想要了解详细规则的请看 Android Code Style

在实际项目中,团队成员只需要用统一的 code style 即可,Google Android 团队使用的文件是 AndroidStyle.xml ,也可以直接使用我的 code style ,在官方的风格上稍微修改了下,地址为 https://github.com/JohnnyShieh/CodeStyles/blob/master/Android/intellij/codestyles/AndroidStyle.xml

导入 Code Style

Mac环境下, Android Studio -> Preferences -> Editor -> Code Style -> 点击 Manage.. -> 在弹框中点击 Import 选择下载的 AndroidStyle.xml 文件即可, 其他环境下也类似。

一开始大家的格式肯定会有不统一的时候,特别是之前的代码,可以按重新格式代码的快捷键调整格式,在 Preferences -> Keymap -> 右侧搜索框输入 reformat -> 下面 Reformat Code 对应的快捷键就是了。一般 Mac 下默认的快捷键为 Alt + Command + L 。


捡代码论坛整理。



捡代码论坛-最全的游戏源码下载技术网站! - 论坛版权郑重声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与捡代码论坛-最全的游戏源码下载技术网站!享有帖子相关版权
3、捡代码论坛版权,详细了解请点击。
4、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
5、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
6、如无法链接失效或侵犯版权,请给我们来信:jiandaima@foxmail.com

回复

使用道具 举报

0

主题

69

回帖

635

积分

高级会员

Rank: 4

积分
635
发表于 2017-1-6 06:52:49 | 显示全部楼层
登录可见评论
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立 即 注 册

本版积分规则

技术支持
在线咨询
QQ咨询
3351529868

QQ|手机版|小黑屋|捡代码论坛-专业源码分享下载 ( 陕ICP备15015195号-1|网站地图

GMT+8, 2025-2-22 16:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表