Android命名规范
1.1 包命名规范(Package)
采⽤反域名规则,包名全部⼩写,连续的单词只是简单的连接起来,不适⽤下划线,⼀级包名为com,⼆级包名为companyname(⼀般⽤公司域名或者个⼈命名),三级包名为appname(⼀般根据应⽤命名),四级包名为模块名或层次名,五级包名可选(可以⽤具体的功能或者位置命名),如:
包名此包中包含
companyname.appname.adapter所有的adapter类
companyname.appname.api提供给其他团队调⽤的接⼝类汇总
companyname.appname.data所有的元素/数据类
fig配置类
companyname.appname.download下载相关的类
companyname.appname.fragment所有页⾯⽤到的fragment
companyname.appname.providers所有的provider类以及相应的Helper类
ivers⼴播接收相关类
companyname.appnamework⽹络请求相关类
companyname.appname.statistics发送统计需要⽤到的相关类
companyname.appname.util⼯具类
companyname.appname.viewholder列表展⽰⽤到的相应ViewHolder类
companyname.appname.view⾃定义View类
companyname.appname.listener回调接⼝类
2.1 Java类命名规范(Class)
类名以UpperCamelCase风格编写。
采⽤⼤驼峰式命名法,所有单词的⾸字母均⼤写,尽量避免缩写,除⾮该缩写是众所周知的,⽐如HTML,URL,如果类名称包含单词缩写,则单词缩写的每个字母均应⼤写。如:
类描述例如Activity类Activity为后缀标识GameCenterHomeActivity Fragment类Fragment为后缀标识GameHomeFragment
Adapter Adapter为后缀标识GameRankAdapter
公共⽅法类Manager或Tools为后缀标识DownloadManager
Service类Service为后缀标识DownloadingService BroadcastReceive类Receiver为后缀标识NetworkStateChangeReceiver 公共基础类Base为前缀,可放在Game之后GameBaseActivity ContentProvider Provider为后缀标识GameCenterProvider 辅助类Helper为后缀,这些类主要⽤于为某些类(如⾃定义View)提供⼀些集成的操作⽅法GameJsInterfaceHelper
Dialog类Dialog为后缀标识GameDialog 类描述例如
bean元素类Info为后缀标识GameInfo 状态类,多为枚举类Status为后缀标识GameInfoStatus ⾃定义View类View为后缀GameTagView
ViewHolder类Viewholder为后缀GameHomeBannerItemViewholder ⼯具类Utils为后缀标识FileUtils
测试类的命名以它要测试的类的名称开始,以Test结束。例如,HashTest或HashIntegrationTest。
3.1 接⼝命名规范(interface)
采⽤⼤驼峰命名法。
在⾮主线程⽤到的接⼝名称多以able或ible结尾,如:
interface Runnable | interface Accessible
在主线程⽤到的接⼝名称以OnNameListener风格编写,On为前缀,Listener为后缀。
4.1 ⽅法命名规范(method)
⽅法名都以lowerCamelCase风格编写。
采⽤⼩驼峰,除⾸字母⼩写外,其他⾸字母⼤写,通常是动词或动词短语,如:
onCreate() | run()
注意:接⼝类中的⽅法名全部以on为前缀标识
5.1 成员变量命名
以lowerCamelCase风格编写。
采⽤⼩驼峰法。
5.1.1 成员变量命名
以mLowerCamelCase风格编写,使⽤Google的m命名法,在成员变量名加上m前缀。例如:accessible反义词前缀
private String mUserName;
5.1.2 常量命名
常量名命名模式为CONSTANT_CASE,全部字母⼤写,⽤下划线分隔单词。常量是指⽤static final关键字定义的,⼀直不变的值。
5.1.3 参数名
参数名以lowerCamelCase风格编写。
参数应该避免⽤单个字符命名。
5.1.4 类型变量名
类型变量可⽤以下两种风格之⼀进⾏命名:
单个的⼤写字母,后⾯可以跟⼀个数字(如:E, T, X, T2)。
以类命名⽅式(2.1节),后⾯加个⼤写的T(如:RequestT, FooBarT)。
5.1.5 控件实例命名
类中控件名称必须与xml布局id保持⼀致(可以去掉{module_name}),并与5.1.2节中的临时成员变量命名保持⼀致,以m为前缀,以⾸字母⼤写代替下划线分割。例如:
在布局⽂件中Button的id为:android:id="@+id/btn_{module_name}_pay"
在类中控件实例命名为: private Button mBtnPay;
6.1 布局⽂件(Layout)命名规范
全部⼩写,采⽤下划线命名法。其中{module_name}为业务模块或是功能模块等模块化的名称或简称。
Layout格式例⼦
activity layout activity_{module_name}_{名称}l
fragment layout fragment_{module_name}_{名称}l
Dialog layout dialog_{module_name}_{名称}l
列表项布局命名(ListView中⽤到的item项)listitem_{module_name}_{名称}l
包含项布局命名include_{名称}game_l
⾮ListView中的adapter的⼦布局item_{module_name}_{名称}l
⾃定义View的布局widget_{module_name}_{名称}widget_l 7.1 资源id命名规范
命名模式为:{view缩写}_{module_name}_{view的逻辑名称},如:
⾸页布局 LinearLayout 的布局id –> ll_home_content
简称为as模块的 ImageView 的布局id –> iv_as_photo
常见控件View与其缩写对照参考表如下:
控件缩写
LinearLayout ll
RelativeLayout rl
FrameLayout fl
TextView tv
Button btn
ImageButton ibtn
ImageView img
CheckBox cb
RadioButton rb
EditText et
ProgressBar pbar
WebView webv
ScrollView sclv
ListView lv
RatingBar ratbar
SeekBar skbar
控件缩写
8.1 图⽚资源⽂件命名规范(drawable⽂件夹下)
以{前缀}_{module_name}_{名称}风格命名,全部⼩写,采⽤下划线命名法。
前缀说明
ic–icon图标
bg–
background
背景图⽚
btn–button 主要⽤于按钮的表⽰,有时我们会在ic和btn之间犹豫,简单的区分即是功能视图,如果⼀个view执⾏的是back或者confirm或者cancel的
功能,则命名上则应该使⽤btn
di–divider分割线,不仅包括Listview中的还包括普通布局中的线
sl–selector主要⽤于某⼀view多种状态,listview 按钮等
cl–color主要⽤于颜⾊值
ps: 不知道⽤什么前缀的话,可以暂时⽤ic
9.1 字符串命名(string)
最好不要跟title、dialog、button等东西关系起来,直接⽤相同英⽂含义就可以了(可以以game_为前缀,防⽌与其他⼯程中的资源重名),如下:
<string name="ok">确定</string>
<string name="welcome_to_use">欢迎使⽤</string>
再举⼀些不好的例⼦,如下
<string name="menu_ok ">确定</string>
本篇参考⽂章列表:
最佳实践之代码规范-
hawstein分享的
Android命名规范-
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论