2525
26261 . 尽量使用最新版的 IDE 进行开发;
27272 . 编码格式统一为 ** UTF-8** ;
28- 3 . 编辑完 .java、 .xml 等文件后一定要** 格式化** (基本格式方面使用 AS 默认模板即可);
28+ 3 . 编辑完 ` .java ` 、 ` .xml ` 等文件后一定要 ** 格式化** (基本格式方面使用 AS 默认模板即可);
29294 . 删除多余的 import,减少警告出现,可利用 AS 的 Optimize Imports(Settings -> Keymap -> Optimize Imports)快捷键;
30305 . Android 开发者工具可以参考这里:** [ Android 开发者工具] [ Android 开发者工具 ] ** ;
3131
3434
3535代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。正确的英文拼写和语法可以让阅读者易于理解,避免歧义。
3636
37- > 注意:即使纯拼音命名方式也要避免采用。但 alibaba、 taobao、 youku、 hangzhou 等国际通用的名称,可视同英文。
37+ > 注意:即使纯拼音命名方式也要避免采用。但 ` alibaba ` 、 ` taobao ` 、 ` youku ` 、 ` hangzhou ` 等国际通用的名称,可视同英文。
3838
3939#### 3.1 包名
4040
41- 包名全部小写,连续的单词只是简单地连接起来,不使用下划线,采用反域名命名规则,全部使用小写字母。一级包名是顶级域名,通常为 com、 edu、 gov、 net、 org 等,二级包名为公司名,三级包名根据应用进行命名,后面就是对包名的划分了,关于包名的划分,推荐使用按功能分,一开始我们也是按照层去分包的,很坑爹。按照功能分可能你不是很好区分在哪个功能中,不过也比你按照层区分要好找很多。具体可以参考这篇博文:** [ Package by features, not layers] [ Package by features, not layers ] ** ,当然,我们大谷歌也有相应的 sample :** [ iosched] [ iosched ] ** ,其结构如下所示,很值得学习。
41+ 包名全部小写,连续的单词只是简单地连接起来,不使用下划线,采用反域名命名规则,全部使用小写字母。一级包名是顶级域名,通常为 ` com ` 、 ` edu ` 、 ` gov ` 、 ` net ` 、 ` org ` 等,二级包名为公司名,三级包名根据应用进行命名,后面就是对包名的划分了,关于包名的划分,推荐使用按功能分,一开始我们也是按照层去分包的,很坑爹。按照功能分可能你不是很好区分在哪个功能中,不过也比你按照层区分要好找很多。具体可以参考这篇博文:** [ Package by features, not layers] [ Package by features, not layers ] ** ,当然,我们大谷歌也有相应的 Sample :** [ iosched] [ iosched ] ** ,其结构如下所示,很值得学习。
4242
4343```
4444java
@@ -328,7 +328,7 @@ PBL 中包的大小无限增长是合理的,因为功能越添越多,而 PBF
328328
329329#### 3.2 类名
330330
331- 类名都以 UpperCamelCase 风格编写。
331+ 类名都以 ` UpperCamelCase ` 风格编写。
332332
333333类名通常是名词或名词短语,接口名称有时可能是形容词或形容词短语。现在还没有特定的规则或行之有效的约定来命名注解类型。
334334
@@ -355,7 +355,7 @@ PBL 中包的大小无限增长是合理的,因为功能越添越多,而 PBF
355355
356356#### 3.3 方法名
357357
358- 方法名都以 lowerCamelCase 风格编写。
358+ 方法名都以 ` lowerCamelCase ` 风格编写。
359359
360360方法名通常是动词或动词短语。
361361
@@ -377,7 +377,7 @@ PBL 中包的大小无限增长是合理的,因为功能越添越多,而 PBF
377377
378378#### 3.4 常量名
379379
380- 常量名命名模式为 CONSTANT_CASE,全部字母大写,用下划线分隔单词。那到底什么算是一个常量?
380+ 常量名命名模式为 ` CONSTANT_CASE ` ,全部字母大写,用下划线分隔单词。那到底什么算是一个常量?
381381
382382每个常量都是一个静态 ` final ` 字段,但不是所有静态 ` final ` 字段都是常量。在决定一个字段是否是一个常量时,考虑它是否真的感觉像是一个常量。例如,如果任何一个该实例的观测状态是可变的,则它几乎肯定不会是一个常量。只是永远不打算改变对象一般是不够的,它要真的一直不变才能将它示为常量。
383383
@@ -401,7 +401,7 @@ static final String[] nonEmptyArray = {"these", "can", "change"};
401401
402402#### 3.5 非常量字段名
403403
404- 非常量字段名以 lowerCamelCase 风格的基础上改造为如下风格:基本结构为 scopeVariableNameType。
404+ 非常量字段名以 ` lowerCamelCase ` 风格的基础上改造为如下风格:基本结构为 scopeVariableNameType。
405405
406406** scope:范围**
407407
@@ -457,12 +457,12 @@ public class MyClass {
457457
458458#### 3.6 参数名
459459
460- 参数名以 lowerCamelCase 风格编写,参数应该避免用单个字符命名。
460+ 参数名以 ` lowerCamelCase ` 风格编写,参数应该避免用单个字符命名。
461461
462462
463463#### 3.7 局部变量名
464464
465- 局部变量名以 lowerCamelCase 风格编写,比起其它类型的名称,局部变量名可以有更为宽松的缩写。
465+ 局部变量名以 ` lowerCamelCase ` 风格编写,比起其它类型的名称,局部变量名可以有更为宽松的缩写。
466466
467467虽然缩写更宽松,但还是要避免用单字符进行命名,除了临时变量和循环变量。
468468
@@ -583,15 +583,15 @@ public class MyClass {
583583> 注意:使用 Android Studio 的插件 SelectorChapek 可以快速生成 selector,前提是命名要规范。
584584
585585
586- #### 4.3 动画文件(anim 文件夹下)
586+ #### 4.3 动画文件(` anim ` 文件夹下)
587587
588588全部小写,采用下划线命名法,加前缀区分。
589589
590590具体动画采用以下规则:` 模块名_逻辑名称 ` 。
591591
592592例如:` refresh_progress.xml ` 、` market_cart_add.xml ` 、` market_cart_remove.xml ` 。
593593
594- 普通的 tween 动画采用如下表格中的命名方式:` 动画类型_方向 `
594+ 普通的 ` tween ` 动画采用如下表格中的命名方式:` 动画类型_方向 `
595595
596596| 名称 | 说明 |
597597| ----------------- | ------- |
@@ -606,7 +606,7 @@ public class MyClass {
606606| ` shrink_to_middle ` | 中间缩小 |
607607
608608
609- #### 4.4 values 中 name 命名
609+ #### 4.4 ` values ` 中 name 命名
610610
611611##### 4.4.1 ` colors.xml `
612612
@@ -722,9 +722,9 @@ public class MyClass {
722722 />
723723```
724724
725- 你或许需要为按钮控件做同样的事情,不要停止在那里。将一组相关的和重复 ` android:**** ` 的属性放到一个通用的 ` style ` 中。
725+ 你或许需要为按钮控件做同样的事情,不要停止在那里。将一组相关的和重复 ` android:xxxx ` 的属性放到一个通用的 ` style ` 中。
726726
727- ** 将一个大的 ` styles.xml ` 文件分割成多个文件** , 你可以有多个 ` styles.xml ` 文件。Android SDK 支持其它文件,` styles.xml ` 这个文件名称并没有作用,起作用的是在文件里的 ` <style> ` 标签。因此你可以有多个 style 文件,如 ` styles.xml ` 、` styles_home.xml ` 、` styles_item_details.xml ` 、` styles_forms.xml ` 。不同于资源文件路径需要为系统构建起的有意义,在 ` res/values ` 目录下的文件可以任意命名。
727+ ** 将一个大的 ` styles.xml ` 文件分割成多个文件** , 你可以有多个 ` styles.xml ` 文件。Android SDK 支持其它文件,` styles.xml ` 这个文件名称并没有作用,起作用的是在文件里的 ` <style> ` 标签。因此你可以有多个 ` style ` 文件,如 ` styles.xml ` 、` styles_home.xml ` 、` styles_item_details.xml ` 、` styles_forms.xml ` 。不同于资源文件路径需要为系统构建起的有意义,在 ` res/values ` 目录下的文件可以任意命名。
728728
729729
730730#### 4.5 layout 中的 id 命名
@@ -747,9 +747,9 @@ Android 开发存在着众多版本的不同,比如 `compileSdkVersion`、`min
747747
748748别再闭门造车了,用用最新最火的技术吧,安利一波:** [ Android 流行框架查速表] [ Android 流行框架查速表 ] ** ,顺便带上自己的干货:** [ Android 开发人员不得不收集的代码] [ Android 开发人员不得不收集的代码 ] ** 。
749749
750- 希望 Team 能用时下较新的技术,对开源库的选取,一般都需要选择比较稳定的版本,作者在维护的项目,要考虑作者对issue的解决 ,以及开发者的知名度等各方面。选取之后,一定的封装是必要的。
750+ 希望 Team 能用时下较新的技术,对开源库的选取,一般都需要选择比较稳定的版本,作者在维护的项目,要考虑作者对 issue 的解决 ,以及开发者的知名度等各方面。选取之后,一定的封装是必要的。
751751
752- 个人推荐Team可使用如下优秀轮子 :
752+ 个人推荐 Team 可使用如下优秀轮子 :
753753
754754* ** [ Retrofit] [ Retrofit ] **
755755* ** [ RxAndroid] [ RxAndroid ] **
@@ -903,7 +903,7 @@ AS 已帮你集成了一些注释模板,我们只需要直接使用即可,
903903
90490411 . 项目引入 ` RxAndroid ` 响应式编程,可以极大的减少逻辑代码;
905905
906- 12 . 通过引入事件总线,如:` EventBus ` 、` AndroidEventBus ` 、` RxBus ` ,它允许我们在 ` DataLayer ` 中发送事件,以便` ViewLayer ` 中的多个组件都能够订阅到这些事件,减少回调;
906+ 12 . 通过引入事件总线,如:` EventBus ` 、` AndroidEventBus ` 、` RxBus ` ,它允许我们在 ` DataLayer ` 中发送事件,以便 ` ViewLayer ` 中的多个组件都能够订阅到这些事件,减少回调;
907907
90890813 . 尽可能使用局部变量;
909909
@@ -957,11 +957,11 @@ AS 已帮你集成了一些注释模板,我们只需要直接使用即可,
957957
958958 使用单例可以减轻加载的负担、缩短加载的时间、提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:
959959
960- (1)控制资源的使用,通过线程同步来控制资源的并发访问
960+ (1)控制资源的使用,通过线程同步来控制资源的并发访问。
961961
962- (2)控制实例的产生,以达到节约资源的目的
962+ (2)控制实例的产生,以达到节约资源的目的。
963963
964- (3)控制数据的共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信
964+ (3)控制数据的共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。
965965
96696621 . 把一个基本数据类型转为字符串,` 基本数据类型.toString() ` 是最快的方式,` String.valueOf(数据) ` 次之,` 数据 + "" ` 最慢;
967967
@@ -1055,7 +1055,8 @@ AS 已帮你集成了一些注释模板,我们只需要直接使用即可,
10551055
10561056## 版本日志
10571057
1058- * 17/03/06: 发布初版 ;
1058+ * 17/11/29: 格式化中英混排;
1059+ * 17/03/06: 发布初版;
10591060* 17/03/07: 修订目录排版,完善某些细节;
10601061* 17/03/08: 规范排版,修复typor及新增一些规范;
10611062* 17/03/13: 新增其他注释;
@@ -1067,7 +1068,7 @@ AS 已帮你集成了一些注释模板,我们只需要直接使用即可,
10671068[ iosched ] : https://github.com/google/iosched
10681069[ 安卓开发规范(updating) ] : https://github.com/Blankj/AndroidStandardDevelop
10691070[ Android 开发者工具 ] : http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2017/0526/7973.html
1070- [ Android Studio下对资源进行分包 ] : http://www.jianshu.com/p/8e893581b9c7
1071+ [ Android Studio 下对资源进行分包 ] : http://www.jianshu.com/p/8e893581b9c7
10711072[ Android 开发之版本统一规范 ] : http://www.jianshu.com/p/db6ef4cfa5d1
10721073[ Android 流行框架查速表 ] : http://www.ctolib.com/cheatsheets-Android-ch.html
10731074[ Android 开发人员不得不收集的代码 ] : https://github.com/Blankj/AndroidUtilCode
0 commit comments