admin 发表于 2016-12-25 12:11:45

Android命名规范与编码风格

欢迎转载,但请务必在明确位置注明文章出处! http://johnnyshieh.github.io/android/2016/12/22/android-coding-standards/在团队开发项目中,统一的命名规范与编码风格非常重要,只有这样才像一个优秀团队开发的产品。而且这样方便阅读其他人的代码,便于后期维护。我觉得 Android 源码的可读性很好,风格统一,而在实际项目中经常看到混乱的风格,缩进有的是 tab 有的是 space ,命名有的是中文拼音有的是英文,看上去非常的乱。相信大家都喜欢简洁整齐的代码,这就需要团队成员稍微牺牲下个性,遵守统一的规范,自己读起来也赏心悦目。下面我根据自己的一些编码规范和网上的一些资料整理出一套 Android 命名规范,至于编码风格是根据 Google 的提供的 Android code style 略微修改而成,直接在 Android Studio 导入即可, 所以下面主要是介绍命名规范内容。1. Android 命名规范下面的命名规范,有些是我个人习惯,有不喜欢的地方可以复制后修改即可,做到简单易记就好,便于团队成员遵守。基本命名方式
[*]大驼峰命名法(UpperCamelCase):所有单词的第一个字母大写
[*]小驼峰命名法(lowerCamelCase):除首单词外,其余所有单词的第一个字母大写
[*]下划线命名法(case1_case2):单词与单词之间用下划线间隔,所有单词小写
一般建议用来命名的单词简单明了,不要用中文拼音,找个词典翻译下还能提高自己英文水平。有些单词可以写成一些约定俗成的缩写,也可以根据团队成员间的约定进行缩写命名。下表是一些常用的缩写:
常用词缩写
Argumentarg
Bufferbuf
Clearclr
Clockclk
Comparecmp
Configurationcfg
Contextctx
Delaydly
Devicedev
Displaydisp
Errorerr
functionfnct
Hexadecimalhex
Initializeinit
Maximummax
Messagemsg
Minimummin
multiplexmux
Parameterparam
Previousprev
Priorityprio
Registerreg
Schedulesched
Synchronizesync
类类名由一个或多个名词组成,采用大驼峰命名法,把类型作为最后一个单词,其他单词尽量避免缩写,除非是众所周知的,例如 HTML,URL,JSON,XML 等
类命名格式示例
ActivityXXX描述 + ActivityHomeActivity
FragmentXXX描述 + FragmentContactsFragment
ServiceXXX描述 + ServicePushService
BroadcastReceiverXXX描述 + ReceiverNetworkReceiver
ContentProviderXXX描述 + ProviderBookmarkProvider
AdapterXXX描述 + AdapterNewsListAdapter
BeanXXX描述 + BeanPersonBean
基础功能类Base + XX父类名BaseActivity
工具类XXX描述 + UtilsBitmapUtils
接口命名方式和类一致,建议再加上 I 前缀,表明这是一个接口,与类有所区分,例如:ILoadListener变量采用小驼峰命名法,同时我觉得为了更好的区分局部变量、成员变量、静态变量,推荐加个前缀,Android 源码中也是这样使用的。
[*]成员变量命名前加 m (member),例如 mWidth,mHeight
[*]静态变量命名前加 s (static),例如静态的单例变量 sInstance
例外,Android 开发中经常有控件变量,如 TextView,ImageView 等,推荐命名方式: m + 控件类型缩写 + 描述, 如登陆按钮命名为 mBtnLogin 。这样可以很清楚知道这是一个 Button 控件类型的局部变量,代码也会整齐简洁。下面列出一些常用控件的缩写
控件缩写
ActionBarab
LinearLayoutll
RelativeLayoutrl
FrameLayoutfl
TextViewtv
ImageViewiv
Buttonbtn
ImageButtonimgBtn
RadioButtonrdoBtn
ToggleButtontglBtn
CheckBoxchk
DatePickerdtPk
TimePickertmPk
EditTextedtTxt
ProgressBarproBar
SeekBarskBar
AutoCompleteTextViewautoTxt
VideoViewvideoVi
WebViewwebVi
Spinnerspn
ScrollViewsclVi
ListViewlv
GridViewgv
RecyclerViewrv
常量全部大写,同时采用下划线命名法,例如 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_loginDrawable 是有多个状态的,也应该在命名中体现出来:
[*]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 StyleMac环境下, Android Studio -> Preferences -> Editor -> Code Style -> 点击 Manage.. -> 在弹框中点击 Import 选择下载的 AndroidStyle.xml 文件即可, 其他环境下也类似。一开始大家的格式肯定会有不统一的时候,特别是之前的代码,可以按重新格式代码的快捷键调整格式,在 Preferences -> Keymap -> 右侧搜索框输入 reformat -> 下面 Reformat Code 对应的快捷键就是了。一般 Mac 下默认的快捷键为 Alt + Command + L 。
捡代码论坛整理。

kaneki880914 发表于 2017-1-6 06:52:49

不错,下载看看,。……来自于捡代码论坛
页: [1]
查看完整版本: Android命名规范与编码风格