[关闭]
@linux1s1s 2020-12-02T18:59:50.000000Z 字数 2123 阅读 704

Android 编码规范

Tips


请务必按照以下约束严格要求

提交规范

  1. // 添加滚动条目,下面代码放入AS,会有黄色波浪线,请修改完再提交
  2. private fun addScrollitem(
  3. rowNumber: Int,
  4. dataBeans: ArrayList<HotBannerDataBean>,
  5. listStyle: Int
  6. ) {...}
  1. // 下面代码放入AS,var会有黄色块,建议修改为val
  2. var layoutparams: RelativeLayout.LayoutParams = img.layoutParams as RelativeLayout.LayoutParams

命名规则

包和类名称

比如 com.yonghui.yhd.xxx,不鼓励使用多个词,如果使用多个词,请全部小写,比如 cn.yonghui.hyd.category.business.newcategory

  1. open class DeclarationProcessor { ... }
  2. object EmptyDeclarationProcessor : DeclarationProcessor() { ... }

方法和属性名称

  1. fun processDeclarations() { ... }

Good

  1. private var toolbarTitle: Int = 0

Bad

  1. fun setData(products: ArrayList<HotSuggestProductDataBean>?, mCartView: View?){...}

如何选择方法名称或者类名称

格式

新增类或者方法,请使用ktlint插件格式化

  1. if (string.isEmpty()) return
  2. val value = if (a == b) 0 else 1
  3. when (value) {
  4. 0 -> return
  5. // …
  6. }

Good

  1. val myValue = if (condition) {
  2. 0
  3. } else {
  4. 1
  5. }

Bad

  1. val myValue = if (condition)
  2. 0
  3. else
  4. 1

类布局

通常,一个类的内容按以下顺序排列:

不要按字母顺序或者可见性对方法声明排序,也不要将常规方法与扩展方法分开。而是要把相关的东西放在一起,这样从上到下阅读类的人就能够跟进所发生事情的逻辑。选择一个顺序(高级别优先,或者相反)并坚持下去。

将嵌套类放在紧挨使用这些类的代码之后。如果打算在外部使用嵌套类,而且类中并没有引用这些类,那么把它们放到末尾,在伴生对象之后。

安全性和可读性

  1. class MyFragment : Fragment() {
  2. // Good
  3. (context as? Activity)?.finish()
  4. // Not Good
  5. (context as Activity).finish()
  6. }
  1. private val lazyImmutableValue: String by lazy {
  2. "Hello"
  3. }
  4. private val lazyImmutableValueNoThreadSafe: String by lazy(LazyThreadSafetyMode.NONE) {
  5. "Hello"
  6. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注