[转载]最佳实践之Android代码规范

命名规范

包命名规范

采用反域名命名规则,包名全部小写,连续的单词只是简单地连接起来,不使用下划线,一级包名为com,二级包名为xxx(可以是公司域名或者个人命名),三级包名根据应用进行命名,四级包名为模块名或层级名。如:

com.isa.crm.activity |
com.isa.crm.adapter

JAVA类命名规范

采用大驼峰式命名法,尽量避免缩写,除非该缩写是众所周知的,比如HTML,URL,如果类名称包含单词缩写,则单词缩写的每个字母均应大写。如:

Product | ProductManager |
ProductListActivity | ProductListAdapter | JsonHTTPSRequest

接口命名规范

命名规则与类一样采用大驼峰命名法,多以ableible结尾。例如:

interface Runable | interface Accessible

成员变量命名规范

采用小驼峰命名法

临时变量命名

使用标准的Java命名方法,不推荐使用Google的m命名法。例如:

private String userName; 而不推荐使用 private String mUserName;

常量命名

常量使用全大写字母加下划线的方式命名。例如:

public static final String TAG = "tag";

控件实例命名

类中控件名称必须与xml布局id保持一致(可以去掉{module_name})。例如:

在布局文件中 Button 的id为: android:id="@+id/btn_pay"

private Button btn_pay;

方法命名规范

动词或动名词,采用小驼峰命名法。例如:

run(); | onCreate(); | syncProducts();

布局文件(Layout)命名规范

全部小写,采用下划线命名法。其中{module_name}为业务模块或是功能模块等模块化的名称或简称。

activity layout: {module_name}_activity_{名称} 例如:

crm_activity_main.xml | crm_activity_shopping.xml

fragment layout:{module_name}_fragment_{名称} 例如:

crm_fragment_main.xml | crm_fragment_shopping.xml

Dialog layout{module_name}_dialog_{名称} 例如:

crm_dialog_loading.xml

列表项布局命名{module_name}_list_item_{名称} 例如:

crm_listitem_customer.xml

包含项布局命名include_{名称} 例如:

include_head.xml

adapter的子布局: {module_name}_item_{名称} 例如:

qz_item_order.xml

widget layout: {module_name}_widget_{名称} 例如:

crm_widget_shopping_detail.xml

资源id命名规范

命名模式为:{view缩写}_{module_name}_{view的逻辑名称},如:

顾客管理CRM模块布局 LinearLayout 的布局id –> ll_crm_content

模块简称为qz的 ImageView 的布局id –> iv_qz_photo

常见控件View与其缩写对照参考表如下:

这里写图片描述

图片资源文件命名规范

图标命名{module_name}_ic_{名称} 例如:

crm_ic_app.png

背景图片命名: {module_name}_bg_{名称} 例如:

crm_bg_navbar_highlight_normal.9.png

按钮Button命名: {module_name}_btn_{名称} 例如:

crm_btn_login_normal.9.png

按钮checkbox图片命名{module_name}_checkbox_{名称} 例如:

crm_checkbox_cart_true.png

其他图片命名{module_name}_icon_{名称} 例如:

qz_icon_blue_circle.png

代码风格

大括号问题

风格一

1
2
3
4
5
6
7
8
if (hasMoney())
{
 
}
else
{
 
}

风格二

1
2
3
4
5
if (hasMoney()) {
 
else {
 
}

空格问题

if else | while | 运算符两端 等后面需用空格隔开。例如:

规范的编写方式:

1
2
3
4
5
6
7
8
9
if (hasMoney()) {
 
else {
 
}
 
for ( int i =  0 ; i <  10 ; i++) {
 
}

不规范的编写方式:

1
2
3
4
5
6
7
8
9
if (hasMoney()){
 
} else {
 
}
 
for ( int i= 0 ; i< 10 ;i++){
 
}

方法参数

当方法参数数量过多时,需进行换行处理.

注释

必须要对所有实例变量、类常量进行注释说明 例如:

1
2
// 用户姓名
private String userName

必须对所有的类、接口进行注释说明 例如:

1
2
3
4
5
6
7
8
/**
* Activity基类
*
*/
public class BaseActivity  extends Activity
{
 
}

必须对所有的方法进行注释说明 例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* 请求
*
* @param path 路径
* @param generalParams 基本参数
* @param businessParams 业务参数
* @return 请求结果
* @throws ApiException 请求错误则返回该异常
*/
public Map<String, Object> request (String path,
               Map<String, Object> generalParams,
               Map<String, Object> businessParams)  throws ApiException {
 
    return null ;
}

更多详细也可以参考:
[Google Java编程风格指南](http://hawstein.com/posts/google-java-style.html)

驼峰式命名法(CamelCase)

  • 大驼峰式命名法(UpperCamelCase):
    每个单词的第一个字母都大写 如:XmlHttpRequest
  • 小驼峰式命名法(lowerCamelCase):
    除了第一个单词,每个单词的第一个字母都大写 如:xmlHttpRequest

说明

该篇介绍为Android项目开发过程中的一些常用的命名规范|代码编写风格规范,该规范来源于个人资料整理(参考网络技术博客)、个人项目实践。参考这些规范有助于 项目的协同开发,项目代码的风格统一、在项目的后期维护中更方便、快捷的查找、理解和修改别人的代码。如朋友们有更好的规范要求、欢迎分享出来、一起讨论。

本篇参考文章列表:

转载请注明:Android开发中文站 » 最佳实践之Android代码规范


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值