[最新] Android 代码规范大全(Android开发速看)

PBF 可能不是很好区分在哪个功能中,不过也比 PBL 要好找很多,且 PBF 与 PBL 相比较有如下优势:

  • package 内高内聚,package 间低耦合

哪块要添新功能,只改某一个 package 下的东西,而PBL 需要改多个 package,非常麻烦。

  • package 有私有作用域(package-private scope)

原则上一个 package 下的不允许其他类访问都是不应该加上 public 的。

  • 很容易删除功能

统计发现新功能没人用,这个版本那块功能得去掉。如果是 PBL,得从功能入口到整个业务流程把受到牵连的所有能删的代码和 class 都揪出来删掉,一不小心就完蛋。如果是 PBF,好说,先删掉对应包,再删掉功能入口(删掉包后入口肯定报错了),完事。

  • 高度抽象

解决问题的一般方法是从抽象到具体,PBF 包名是对功能模块的抽象,包内的 class 是实现细节,符合从抽象到具体,而 PBL 弄反了。PBF 从确定 AppName 开始,根据功能模块划分 package,再考虑每块的具体实现细节,而 PBL 从一开始就要考虑要不要 dao 层,要不要 com 层等等。

  • 只通过 class 来分离逻辑代码

PBL 既分离 class 又分离 package,而 PBF 只通过 class 来分离逻辑代码。

  • package 的大小有意义了

PBL 中包的大小无限增长是合理的,因为功能越添越多,而 PBF 中包太大(包里 class 太多)表示这块需要重构(划分子包)。

3. Android 的命名规范

====================================================================================

代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。正确的英文拼写和语法可以让阅读者易于理解,避免歧义。

注意:即使纯拼音命名方式也要避免采用。但国际通用的名称,可视同英文,比如 toutiaodouyin 等。

3.1 包名


Android 里面有 package 的概念,所以需要约定一下包名命名规范。

包名全部小写,不允许出现中文、大写字母或者下划线,前面为子模块命名,再根据 PBF 方式进行命名。

3.2 类名


类名都以 UpperCamelCase 风格编写。

类名通常是名词或名词短语,接口名称有时可能是形容词或形容词短语。现在还没有特定的规则或行之有效的约定来命名注解类型。

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

| 类 | 描述 | 例如 |

| — | — | — |

| Activity 类 | 模块名 + Activity | 闪屏页类 SplashActivity |

| Fragment 类 | 模块名 + Fragment | 主页类 HomeFragment |

| Service 类 | 模块名 + Service | 时间服务 TimeService |

| BroadcastReceiver 类 | 功能名 + Receiver | 推送接收 JPushReceiver |

| ContentProvider 类 | 功能名 + Provider | ShareProvider |

| 自定义 View | 功能名 + View/ViewGroup(组件名称) | ShapeButton |

| Dialog对话框 | 功能名+Dialog | ImagePickerDialog |

| Adapter 类 | 模块名 + Adapter | 课程详情适配器 LessonDetailAdapter |

| 解析类 | 功能名 + Parser | 首页解析类 HomePosterParser |

| 工具方法类 | 功能名 + UtilsManager | 线程池管理类:ThreadPoolManager |

日志工具类:LogUtilsLogger 也可)

打印工具类:PrinterUtils |

| 数据库类 | 功能名 + DBHelper | 新闻数据库:NewsDBHelper |

| 自定义的共享基础类 | Base + 基础 | BaseActivity, BaseFragment |

| 抽象类 | Base / Abstract 开头 | AbstractLogin |

| 异常类 | Exception 结尾 | LoginException |

| 接口 | able / ible 结尾 / I 开头 | Runnable, AccessibleILoginView |

测试类的命名以它要测试的类的名称开始,以 Test 结束。例如:HashTestHashIntegrationTest

接口(interface):命名规则与类一样采用大驼峰命名法,多以 able 或 ible 结尾,如 interface Runnableinterface Accessible

注意:如果项目采用 MVP,所有 Model、View、Presenter 的接口都以 I 为前缀,不加后缀,其他的接口采用上述命名规则。

3.3 方法名


方法名都以 lowerCamelCase 风格编写。

方法名通常是动词或动词短语。

| 方法 | 说明 |

| — | — |

| initXX() | 初始化相关方法,使用 init 为前缀标识,如初始化布局 initView() |

| isXX(), checkXX() | 方法返回值为 boolean 型的请使用 is/check 为前缀标识 |

| getXX() | 返回某个值的方法,使用 get 为前缀标识 |

| setXX() | 设置某个属性值 |

| handleXX(), processXX() | 对数据进行处理的方法 |

| displayXX(), showXX() | 弹出提示框和提示信息,使用 display/show 为前缀标识 |

| updateXX() | 更新数据 |

| saveXX(), insertXX() | 保存或插入数据 |

| resetXX() | 重置数据 |

| clearXX() | 清除数据 |

| removeXX(), deleteXX() | 移除数据或者视图等,如 removeView() |

| drawXX() | 绘制数据或效果相关的,使用 draw 前缀标识 |

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值