编码规范对于程序员尤其重要,能够有效的帮助咱们进行code review
,提升代码的可读性,让其余人更快的理解代码。
一个软件的生命周期中,80%的花费都在于维护以及新功能的迭代,不少的时候都须要阅读代码,读本身之前写的代码,读别人写的代码,这样规范代码的优点就显示出来了,符合规范的代码可让人简单快速的理解理解代码的意图。
代码规范先从命名规范开始,Android的命名规范主要涉及:html
先从Java源代码开始提及,要说Java源代码不得不先说下包名的命名规范。java
Android包名的命名规则,Andorid的包名通常采用域名的反转,单词全小写。
好比域名为www.example.com
的包名为com.example
,省略www。
包名开始是一个顶级域名,好比com,cn,org等,包名使用.
作为分隔符。第二位通常是二级域名,也能够根据不一样机构各自的命名。
后面的命名能够用部门,项目等进行区分(也能够没有),例如:android
com.example.projectgit
在项目内能够根据功能不一样,按照模块划分不一样的包名,com.example.project.user
表示用户模块。
也能够根据层级的不一样而划分不一样的包名,好比:com.example.prokect.activity
,就是Acitivity相关的包。
固然也能够在不一样层级里面再按照模块划分包名,好比:com.example.project.activity.user
,表示和用户有关的Activity。程序员
总结,包名通常是以反转域名开始,后面跟有项目名称(缩写,也能够没有)。
后面能够采用的区分包名方式:github
com.example.project.user
com.example.project.activity
com.example.project.activity.user
类名是一个或多个单词组成,采用大驼峰命名,尽可能要使类名简洁且利于描述,例如:SignInActivity
,类名规则以下:数组
名词+动词
的方式命名: LocationManage
XMLManage
一个类若是继承了Android的组件,需在使用该组件的名称做为后缀,这样容易区分该类的做用,好比:SgnInActivity
,UserInfoFragment
,FileUploadService
...
接口通常使用I开头,采用大驼峰命名规则,好比:IPullToRefresh
。app
Android变量分为三种:成员变量,静态变量和常量。ide
成员变量通常采用小驼峰命名规则,第一单词的首字母小写,其后的首字母大写。变量名通常不使用_和$开头。例如:布局
private Intent cropIntent;
变量名应简短且易于描述,选用规则尽可能简单,易于记忆和联想。
尽可能避免单个字符的变量名,除非是用于一次性的临时变量,临时的整形变量通常命名为 i,j,k,m,n。字符型的变量通常使用c,d,e。
对于View
变量的命名规则,若是View
是一个单词的,采用第一个单词小写的方式+对应View的描述进行,例如:
private View viewUserInfo;
若是是两个单词组成的View,好比:TextView
,通常采用缩写的方式,例如:
private TextView tvUserName;
通常状况下Button
缩写为:btn。
为了能够很方便的区分静态变量,静态变量的命名通常采用小写的s开头,后面单词的命名规则和成员变量
保持一致,例如:
private static Map
sCacheStrings;
常量命名规则通常是全部的单词都是大写,中间使用_(下划线)分割,例如:
private static final float SCALE_RATE = 1.25f;
代码中不容许出现单独的字符串或数字常量,好比xx.equals("1")
,单独的字符串或数字不利于理解和后期的维护。若是须要使用数据或字符,请按照他们的含义封装成静态常量,或者使用枚举,for语句除外。
方法命名规则采用小驼峰命名法例如:onCreate(),onRun(),方法名通常采用动词或者动名词。
通常使用的方法名前缀。
另外对于方法的其余一些规范:
Collections.emptyList()
Layout的命名规则须要和使用他们的组件对应,方便查找和维护,好比咱们在建立一个用户信息的UserInfoActivity
,对应的Layout的命名就应该是activity_user_info.xml
。
对应Andorid组件的Layout
命名规则:
activity_user_info.xml
fragment_sign_up.xml
dialog_change_password.xml
item_user.xml
partial_stats_bar.xml
项目中使用的string和color的值原则上都是必须放在strings.xml
和colors.xml
中,不要放在Java代码中,这样的好处是可复用,提升维护性,减小非必要的代码。xml
的资源命名,字母所有小写,多个单词之间使用_(下划线)分割.
好比:
example
建议color的命名中体现其ARGB
值,好比:
#feb749
这样的写法对于代码提示更加的友好,有利于对照标注图查找颜色值。
##id命名
layout中使用的id
的单词要所有小写,单词之间使用下划线分割,使用名词或者名词词组,应该经过id的命名能够直接理解当前的View
要实现的功能.
例如:
@+id/tv_user_name_show
id命名的第一个单词使用View的缩写,若是View只是一个单词,缩写就是当前单词。通常Button
的缩写为:btn。
Drawable
的命名规则根据使用的控件来命名,控件的缩写在前面,后面使用表示其功能的一个或者多个单词,中间使用使用_下划线分割。好比:
ab_
,好比:ab_stacked.png
btn_
dialog_
divider_
ic_
menu_
notification_
tab_
Drawable
是有多个状态的,在命名中体现出状态的不一样,好比:
_normal
结尾,好比btn_order_normal.9.png
_pressed
结尾_focused
结尾_disabled
结尾_selected
结尾其余资源文件的命名须要遵照Android的规范便可,好比arrays.xml
数组文件,dimens.xml
分辨的配置,style.xml
样式的配置,资源文件的ID命名规则都是字母小写,使用下划线分割的原则。
参考:
github.com/ribot/andro…
source.android.com/source/code…
google.github.io/styleguide/…