Android 命名规范 (提高代码可以读性)

in #steemit7 years ago

团队开发,代码一定要遵循一定的编码规范,尤其是命名,如果你还在为你的队友用汉语拼音来命名,那么把这篇文章发给他,学习下命名规范吧


命名规范

命名规范要望文知义,简单明了。
命名规范定制太多,就会让人心烦,反而没人遵守了。
                         ---《APP研发录》

先介绍两种命名规则:

  • 驼峰命名法:又称小驼峰命名法。除了首个单词首字母小写除外,其余所有单词所有首字母都要大写。

  • 帕斯卡命名法:又称大驼峰命名法。所有单词首字母大写。


包的命名规范

包名一律小写

建议采用如下规则:【com】.【公司名/组织名】.【项目名称】.【模块名】

比如:com.hiquanta.mvp.demo。然后在这个目录下根据业务逻辑进行分层。

常见的包分层结构如下:

  • com.xxx.xxx.view –> 自定义view 或者是View接口

  • com.xxx.xxx.activities –> activity类

  • com.xxx.xxx.fragments –> fragment类

  • com.xxx.xxx.adapter –> 适配器相关

  • com.xxx.xxx.utils –> 公共工具类

  • com.xxx.xxx.bean –> 实体类

  • com.xxx.xxx.service –> service服务

  • com.xxx.xxx.broadcast –> 广播接收器

  • com.xxx.xxx.db –> 数据库操作类

  • com.xxx.xxx.persenter –> 中间对象

  • com.xxx.xxx.model –> 数据处理类


类的命名规范

Android中类的命名与JAVA开发采用一致的规范即可。

大驼峰命名法,即所有单词首字母大写。

  • Activity –> xxxActivity.java

  • Application –> xxxApplication.java

  • Fragment –> xxxFragment.java

  • Service –> xxxService.java

  • BroadcastReceiver –> xxxBroReceiver.java

  • ContentProvider –> xxxProvider.java

  • Adapter –> xxxAdapter.java

  • Handler –> xxxHandler.java

  • 接口 –> xxxInter.java

  • 接口实现类 –> xxxImpl.java

  • Persenter –> xxxPersenter.java

  • 公共父类 –> BaseActivity.java、BaseFragment.java、- BaseAdapter.java等

  • util类 –> LogUtil.java

  • 数据库类 –> BaseSQLiteDBHelper.java


变量的命名规范

采用驼峰命名规则。

Java普通变量:

  • resultString

  • userBean

  • loginPresenter

Android控件变量:

  • loginBtn

  • inputPwdEt

  • showNameTv

有些人建议采用【控件缩写】+【控件逻辑名称】的方式,比如btnLogin。不过我个人比较习惯反过来写,比如loginBtn。与类的命名类似,把逻辑名称写在前面。

常用控件的缩写

控件布局文件中缩写代码中缩写
LinearLayoutxxx_layoutxxxLLayout
RelativeLayoutxxx_layoutxxxRLayout
FrameLayoutxxx_layoutxxxFLayout
TextViewxxx_tvxxxTv
EditTextxxx_etxxxEt
Buttonxxx_btnxxxBtn
ImageViewxxx_ivxxxIv
CheckBoxxxx_chkxxxChk
RadioButtonxxx_rbtnxxxRbtn
ProgressBarxxx_pbarxxxPbar
ListViewxxx_lvxxxLv
WebViewxxx_wvxxxWv
GridViewxxx_gvxxxGv

常见单词的缩写:

单词缩写
iconic
backgroundbg
foregroundfg
initialinit
informationinfo
successsucc
failurefail
errorerr
imageimg
librarylib
messagemsg
passwordpwd
lengthlen
bufferbuf
positionpos

常量命名:
全部单词采用大写,每个单词之间用“_”分割。

例如:

public static final String API_URL = "http://apis.baidu.com/heweather/weather/free";

方法的命名规范

与java开发类似,采用驼峰命名规则。首单词首字母小写,其余单词首字母大写。尽量不要使用下划线。

举例:

  • setxxx()

  • getxxx()

  • loginxxx()

  • onCreate()

  • onDestory()

  • isxxx() –> 返回值是boolean类型

  • checkxxx()


方法的命名规范

全部采用小写,单词之间使用下划线分割。

布局文件:

  • activity_login.xml

  • fragment_first_tab.xml

  • item_choose_city.xml

  • dialog_choose_city.xml

  • common_footer.xml

  • popup_xxx.xml

控件ID:

上面【常用控件的缩写】表格中基本列出了常用控件的ID写法。

  • login_btn

  • input_phone_et

  • input_pwd_et

  • login_pbar


drawable目录下的命名规范

全部单词小写,单词之间采用下划线分割。

  • 图标 – > ic_xxx.png –> ic_logo.png

  • 背景图 –> bg_xxx.jpg –> bg_splash.jpg

  • selector –> selector_login_btn.xml

  • shape –> shape_login_btn.xml

  • 图片状态 –> bg_login_btn_pressed.jpg & - bg_login_btn_unpressed.jpg


anim目录下的命名规范

单词全部小写,单词之间采用下划线分割。

  • fade_in.xml

  • fade_out.xml

  • slide_in_from_left.xml

  • slide_in_from_top.xml

  • slide_out_to_right.xml

  • slide_out_to_bottom.xml


编码规范

  • 代码中尽量不要出现中文。注释和除外。代码中通过strings.xml引用来显示中文。

  • 控件声明放在activity级别,这样在activity其他地方可以使用。

  • 在一个View.OnClickListener中处理所有的点击事件逻辑,这样看起来很集中和直观。

  • strings.xml中使用%1sd等实现字符串的通配。

  • 布局文件中的字体大小,都定义在dimens.xml中。

  • 有关margin和padding的值也都放在dimens.xml中。

  • 界面之间传值尽量使用intent方式。少用全局变量。

  • 不建议在布局文件中添加点击事件。

  • 数据类型转换一定要校验。

  • 使用常量代替枚举。

  • 实体不要在不同模块间共享,但是可以在统一模块下的不同页面共享。

  • 建议采用左括号与方法名称在同一行的代码格式来进行代码的编写和格式化。貌似左括号在下一行是C#的形式。

  • 业务稍微复杂一些,都有可能提炼一个BaseActivity或BaseFragment出来做为公共父类。

  • 类注释一定要写,管家的方法也要写方法注释。常量尽量写注释。


项目中的命名规范和编码规范,是一个项目Leader前期需要准备的,也是一项必备技能。

制定好了规范,就要遵守,有了统一的规范,项目才好维护,相互之间才好review代码,便于开发与维护。


参考

《APP研发录》
2dae83289eb1595359375e3e04e3f614.jpg

Sort:  

请作者在以下链接中:
http://blog.csdn.net/crazy1235/article/details/51346027

声明你的steemit ID与CSDN博主为同一人
否则本文将视作抄袭

不好意思,这个没有找到更早于你百度到的博文的记录,应该确实是之前摘抄的文章,我还可以保留吗?

如果确实是您的作品,那么很容易证明的
别说你写篇文章没有发到网上,就被别人抄袭并发布到网上
如果您证实不了,那么会被视作抄袭

虽然不懂,但我觉得很有用,为什么你的文章中每次配图都是性感的小美女呢,害得我总是想入非非~

插图挺有意思的,应该是一位好色的程序员 :)

阿弥陀佛,善哉善哉,看来要走素食主义,小清新路线了

上面这篇文章写的不错,作者应该是很熟悉APP的开发,
不是原创内容,你保存的好文,请加上转发

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 56890.04
ETH 2356.22
USDT 1.00
SBD 2.39