欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Android代碼規(guī)范

Android代碼規(guī)范  ——轉(zhuǎn)發(fā)請(qǐng)表明出處《IT藍(lán)豹》:http://itlanbao.com/preview.aspx#1,0

十載的衡東網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整衡東建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“衡東網(wǎng)站設(shè)計(jì)”,“衡東網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

[-]

  1. 一Import的次序

  2. 二縮進(jìn)Indentation

    1. 總則

    2. 示例代碼

    3. 規(guī)則說(shuō)明

  3. 三大括號(hào)Braces的位置

    1.  

    2. 示例代碼

    3. 規(guī)則說(shuō)明

  4. 四空格White Space

    1. 聲明

    2. 申請(qǐng)

    3. 初始化體

    4. 數(shù)組元素的訪問(wèn)

    5. 函數(shù)調(diào)用

    6. 賦值

    7. 操作數(shù)

    8. 加括號(hào)的表達(dá)式

    9. 類型轉(zhuǎn)換

    10. 三元條件表達(dá)式

    11. 程序塊

    12. if else語(yǔ)句

    13. for語(yǔ)句

    14. switch語(yǔ)句

    15. while和dowhile語(yǔ)句

    16. 同步synchronized語(yǔ)句

    17. catch語(yǔ)句

    18. assert語(yǔ)句

    19. return語(yǔ)句

    20. throw語(yǔ)句

    21. 臨時(shí)變量

    22. 構(gòu)造體

    23. 方法

    24. 標(biāo)號(hào)

    25. 注解Annotation

    26. 枚舉Enumtypes

    27. 注解類型Annotationtypes

    28. 聲明

    29. 控制語(yǔ)句

    30. 表達(dá)式

    31. 數(shù)組

    32. 泛型

  5. 五空白行BlankLines

    1. 示例代碼

    2. 規(guī)則說(shuō)明

    3. 七控制語(yǔ)句ControlStatements

    4. 八換行LineWrapping

    5. 九注釋Comments

    6. 十Android中XML文件的格式化

    7. 總結(jié)

    8. 插入新行

    9. 數(shù)組初始化

    10. 空的語(yǔ)句

    11. 注解

    12. 示例代碼

    13. 規(guī)則說(shuō)明

    14. 總則

    15. 注解Annotation

    16. 類聲明

    17. 構(gòu)造體聲明

    18. 方法聲明

    19. 枚舉聲明

    20. 函數(shù)調(diào)用

    21. 表達(dá)式

    22. 語(yǔ)句

    23. 編譯單元之間的空白行

    24. 類內(nèi)部的空白行

    25. 示例代碼

    26. 規(guī)則說(shuō)明

    27. 六插入新行NewLines

 

Google對(duì)Android的編程規(guī)范在Code Style Guidelines for Contributors中做了描述,并在Android源碼中release了import和Java的配置文件android.importorder與android-formatting.xml。本文分析這些配置文件在Eclipse環(huán)境下格式化Android編碼規(guī)范都做了什么,在Java和XML文件中如何具體體現(xiàn)。

Android源碼目錄<android_src_root>/development/ide/eclipse/下有文件android.importorder和android-formatting.xml,可以在Eclipse中導(dǎo)入import次序及Java編碼風(fēng)格:

1)?????打開(kāi)Window > Preferences > Java > Code Style;

2)?????在Organizer Imports中點(diǎn)擊Imports,選擇android.importorder導(dǎo)入;

3)?????在Formatter中點(diǎn)擊Imports,選擇android-formatting.xml導(dǎo)入。

下面講解這些配置都做了什么,在代碼中如何具體體現(xiàn)的。

一、Import的次序

Google推薦的AndroidJava文件開(kāi)頭import的次序(按照先后)是:

  1. com

  2. org

  3. android

  4. java

  5. javax

排列原則:

 

  • ?這個(gè)次序也是根據(jù)看import語(yǔ)句的重要性來(lái)排定的:首先希望看到用了android里的哪些類;然后是其他第三方的;最后才關(guān)注標(biāo)準(zhǔn)Java庫(kù)里的。

  • ?不同的import分組之間是有一個(gè)空白行,在5.2.1?4)中描述。

  • ?同一import分組內(nèi)部按照字母次序排列。

 

二、縮進(jìn)(Indentation)

2.1 總則

縮進(jìn)只用空格,不用制表符(TAB)??s進(jìn)用4個(gè)空格,按下TAB鍵用4個(gè)空格代替。

?

2.2 示例代碼

?

[java]?view plaincopy

  1. /**?

  2. ?*?Indentation?

  3. ?*/??

  4. class?Example?{??

  5. ????int[]?myArray?=?{??

  6. ????????????1,?2,?3,?4,?5,?6??

  7. ????};??

  8. ???

  9. ????int?theInt?=?1;??

  10. ???

  11. ????String?someString?=?"Hello";??

  12. ???

  13. ????double?aDouble?=?3.0;??

  14. ???

  15. ????void?foo(int?a,?int?b,?int?c,?int?d,?int?e,?int?f)?{??

  16. ????????switch?(a)?{??

  17. ????????????case?0:??

  18. ????????????????Other.doFoo();??

  19. ????????????????break;??

  20. ????????????default:??

  21. ????????????????Other.doBaz();??

  22. ????????}??

  23. ????}??

  24. ???

  25. ????void?bar(List?v)?{??

  26. ????????for?(int?i?=?0;?i?<10;?i++)?{??

  27. ????????????v.add(new?Integer(i));??

  28. ????????}??

  29. ????}??

  30. }??

  31. ???

  32. enum?MyEnum?{??

  33. ????UNDEFINED(0)?{??

  34. ????????void?foo()?{??

  35. ????????}??

  36. ????}??

  37. }??

  38. ???

  39. @interface?MyAnnotation?{??

  40. ????int?count()?default?1;??

  41. }??

  42. ???

 

2.3 規(guī)則說(shuō)明

 

1)????? 域不用對(duì)齊

? ? ? ??若對(duì)齊的話,則myArray,theInt, someString和aDouble都在同一列上對(duì)齊。

2)?????類體內(nèi)部的聲明全都縮進(jìn)

? ? ? ??Class Example內(nèi)的定義[#5 ~ #29]相對(duì)class?Example[#4]都有縮進(jìn)

3)?????枚舉的聲明要縮進(jìn)

? ? ? ??UNDEFINED(0) [#33]前面有縮進(jìn)

4)?????枚舉內(nèi)的常量要縮進(jìn)

? ? ? ??void?foo() [#34]前面有縮進(jìn)

5)?注解的聲明要縮進(jìn)

? ? ? ??int?count()[#39]前面有縮進(jìn)

6)?????方法/構(gòu)造體內(nèi)的語(yǔ)句要縮進(jìn)

? ? ? ??方法foo和bar內(nèi)的語(yǔ)句[#16 ~ #22, #26 ~ #28]都有縮進(jìn)

7)?????程序塊內(nèi)的語(yǔ)句要縮進(jìn)

? ? ? ??for循環(huán)內(nèi)的v.add(new?Integer(i))[#27]有縮進(jìn)

8)?????switch內(nèi)的語(yǔ)句要縮進(jìn)

? ? ? ? switch內(nèi)的語(yǔ)句[#17 ~ #21]相對(duì)switch有縮進(jìn)

9)?????case內(nèi)的語(yǔ)句要縮進(jìn)

? ? ? ??Other.doFoo()[#18]相對(duì)于case;Other.doBaz()[#21]相對(duì)于default都有縮進(jìn)

10)??break語(yǔ)句要縮進(jìn)

? ? ? ??break[#19]相對(duì)于case有縮進(jìn)

11)??空白行不用縮進(jìn)

? ? ? ??域和方法之間的空白行[#8, #10, #12, #14, #24]是沒(méi)有縮進(jìn)的

三、大括號(hào)(Braces)的位置

 

3.1 示例代碼

[java]?view plaincopy

  1. /**?

  2. ?*?Braces?

  3. ?*/??

  4. interface?Empty?{??

  5. }??

  6. ???

  7. enum?MyEnum?{??

  8. ????UNDEFINED(0)?{??

  9. ????????void?foo()?{??

  10. ????????}??

  11. ????}??

  12. }??

  13. ???

  14. @interfaceSomeAnnotationType?{??

  15. }??

  16. ???

  17. class?Example?{??

  18. ????SomeClass?fField?=?new?SomeClass()?{??

  19. ????};??

  20. ???

  21. ????int[]?myArray?=?{??

  22. ????????????1,?2,?3,?4,?5,?6??

  23. ????};??

  24. ???

  25. ????int[]?emptyArray?=?new?int[]?{};??

  26. ???

  27. ????Example()?{??

  28. ????}??

  29. ???

  30. ????void?bar(int?p)?{??

  31. ????????for?(int?i?=?0;?i?<10;?i++)?{??

  32. ????????}??

  33. ????????switch?(p)?{??

  34. ????????????case?0:??

  35. ????????????????fField.set(0);??

  36. ????????????????break;??

  37. ????????????case?1:?{??

  38. ????????????????break;??

  39. ????????????}??

  40. ????????????default:??

  41. ????????????????fField.reset();??

  42. ????????}??

  43. ????}??

  44. }??

  45. ???


?

3.2? 規(guī)則說(shuō)明

1)類或接口的聲明跟左大括號(hào)在同一行上

#4 Empty以及 #17 Example后面{的位置

2)?????匿名類的聲明跟左大括號(hào)在同一行上

? ? ? ??#18 SomeClass后面{的位置

3)?????構(gòu)造體的聲明跟左大括號(hào)在同一行上

? ? ? ??#27 Example()后面{的位置

4)?????方法的聲明跟左大括號(hào)在同一行上

? ? ? ??#9 foo和#30 bar后面{的位置

5)?????枚舉的聲明跟左大括號(hào)在同一行上

? ? ? ??#7 MyEnum 后面{的位置

6)?????枚舉常量體跟左大括號(hào)在同一行上

? ? ? ??#8 UNDEFINED(0) 后面{的位置

7)?????注解類型的聲明跟左大括號(hào)在同一行上

? ? ? ??#14 SomeAnnotationType后面{的位置

8)?????程序塊跟左大括號(hào)在同一行上

? ? ? ??#31 for后面{的位置

9)?????case語(yǔ)句中的程序塊跟左大括號(hào)在同一行上

? ? ? ??#37 case 1后面{的位置

10)??switch語(yǔ)句跟左大括號(hào)在同一行上

? ? ? ??#33 switch后面{的位置

11)??數(shù)組的初始化常量跟左大括號(hào)在同一行上

? ? ? ? #21和#25 {的位置

?

?

四、空格(White Space)

?

4.1 聲明

?

4.1.1 類

?

[java]?view plaincopy

  1. class?MyClass?implements?I0,?I1,?I2?{??

  2. }??

  3. ???

  4. AnonClass?=?new?AnonClass()?{??

  5. ????void?foo(Some?s)?{??

  6. ????}??

  7. };??

·????????類的左大括號(hào)的前面加空格;

·????????匿名類的左大括號(hào)的前面加空格;

·????????implements語(yǔ)句中逗號(hào)的前面,不加空格;

·????????implements語(yǔ)句中逗號(hào)的后面,加上空格;

?

4.1.2 域

?

[java]?view plaincopy

  1. int?a?=?0,?b?=?1,?c=?2,?d?=?3;??

?

·????????多個(gè)域聲明中逗號(hào)的前面,不加空格;

·????????多個(gè)域聲明中逗號(hào)的后面,加上空格。

?

4.1.3 臨時(shí)變量

?

[java]?view plaincopy

  1. int?a?=?0,?b?=?1,?c=?2,?d?=?3;??

?

·????????多個(gè)臨時(shí)變量聲明中逗號(hào)的前面,不加空格;

·????????多個(gè)臨時(shí)變量聲明中逗號(hào)的后面,加上空格;

?

4.1.4 構(gòu)造體

[java]?view plaincopy

  1. MyClass()?throws?E0,?E1?{??

  2. ????this(0,?0,?0);??

  3. }??

  4. ???

  5. MyClass(int?x,?int?y,?int?z)?throws?E0,?E1?{??

  6. ????super(x,?y,?z,?true);??

  7. }??


·????????左小括號(hào)的前面,不加空格;

·????????左小括號(hào)的后面,不加空格;

·????????右小括號(hào)的前面,不加空格;

·????????小括號(hào)內(nèi)為空,則它們之間不加空格;

·????????左大括號(hào)前面,加上空格;

·????????參數(shù)列表中逗號(hào)之前,不加空格;

·????????參數(shù)列表中逗號(hào)之后,加上空格;

·????????throws語(yǔ)句中逗號(hào)之前,不加空格;

·????????throws語(yǔ)句中逗號(hào)之后,加上空格。

?

4.1.5 方法

?

[java]?view plaincopy

  1. void?foo()?throws?E0,?E1?{??

  2. };??

  3. ???

  4. void?bar(int?x,?int?y)?throws?E0,?E1?{??

  5. }??

  6. ???

  7. void?format(Strings,?Object...?args)?{??

  8. }??

·????????左小括號(hào)的前面,不加空格;

·????????左小括號(hào)的后面,不加空格;

·????????右小括號(hào)的前面,不加空格;

·????????小括號(hào)內(nèi)為空,則它們之間不加空格;

·????????左大括號(hào)前面,加上空格;

·????????參數(shù)列表中逗號(hào)之前,不加空格;

·????????參數(shù)列表中逗號(hào)之后,加上空格;

·????????可變參數(shù)列表省略號(hào)之前,不加空格;

·????????可變參數(shù)列表省略號(hào)之后,加上空格;

·????????throws語(yǔ)句中逗號(hào)之前,不加空格;

·????????throws語(yǔ)句中逗號(hào)之后,加上空格。

?

4.1.6 標(biāo)號(hào)

?

[java]?view plaincopy

  1. label:?for?(int?i?=?0;?i?<?list.length;?i++)?{??

  2. ????for?(int?j?=?0;?j?<?list[i].length;?j++)??

  3. ????????continue?label;??

  4. }??

·????????冒號(hào)之前,不加空格;

·????????冒號(hào)之后,加上空格

?

4.1.7 注解/Annotation

?

[java]?view plaincopy

  1. @Annot(x?=?23,?y?=?-3)??

  2. public?class?A?{??

  3. }??

·????????‘@’之后,不加空格;

·????????左小括號(hào)的前面,不加空格;

·????????左小括號(hào)的后面,不加空格;

·????????逗號(hào)前面,不加空格;

·????????逗號(hào)后面,加上空格;

·????????右小括號(hào)的前面,不加空格

?

4.1.8 枚舉/Enumtypes

?

[java]?view plaincopy

  1. enum?MyEnum?{??

  2. ????GREEN(0,?1),?RED()?{??

  3. ????????void?process()?{??

  4. ????????}??

  5. ????}??

  6. }??

·????????聲明中左大括號(hào)的前面[#1],加上空格;

·????????常量之間的逗號(hào)[#2 RED前]前面,不加空格;

·????????常量之間的逗號(hào)[#2 RED前]后面,加上空格;

·????????常量參數(shù)的左小括號(hào)[#2 GREEN后]前面,不加空格;

·????????常量參數(shù)的左小括號(hào)[#2 GREEN后]后面,不加空格;

·????????常量參數(shù)的小括號(hào)[#2 RED后]中間為空,括號(hào)之間不加空格;

·????????常量參數(shù)之間的逗號(hào)[#2 GREEN()里面]前面,不加空格;

·????????常量參數(shù)之間的逗號(hào)[#2 GREEN()里面]后面,加上空格;

·????????常量參數(shù)的右小括號(hào)[#2 GREEN()后]前面,不加空格;

·????????常量體左大括號(hào)[#2 RED后]前面,加上空格。

?

4.1.9 注解類型/Annotationtypes

?

[java]?view plaincopy

  1. @interface?MyAnnotation?{??

  2. ????String?value();??

  3. }??

  4. ???

  5. @interface?OtherAnnotation?{??

  6. }??

·????????‘@’之前,不加空格;

·????????‘@’之后,不加空格

·????????左大括號(hào)的前面,加上空格;

·????????注解類型成員的左小括號(hào)的前面,不加空格;

·????????注解類型成員的小括號(hào)的之間,不加空格;

?

4.2 控制語(yǔ)句

?

4.2.1 程序塊

?

[java]?view plaincopy

  1. if?(true)?{??

  2. ????return?1;??

  3. }?else?{??

  4. ????return?2;??

  5. }??

·????????左大括號(hào)前面,加上空格;

·????????右大括號(hào)后面,加上空格。

?

4.2.2 if else語(yǔ)句

?

[java]?view plaincopy

  1. if?(condition)?{??

  2. ????return?foo;??

  3. }?else?{??

  4. ????return?bar;??

  5. }??

·????????左小括號(hào)前加上空格;

·????????左小括號(hào)后不加空格;

·????????右小括號(hào)前不加空格【左大括號(hào)前的空格是規(guī)則#4.2.1】

?

4.2.3 for語(yǔ)句

?

[java]?view plaincopy

  1. for?(int?i?=?0,?j?=?array.length;?i?<?array.length;?i++,?j--)?{??

  2. }??

  3. for?(String?s?:?names)?{??

  4. }??

·????????左小括號(hào)前加上空格;

·????????左小括號(hào)后不加空格;

·????????右小括號(hào)前不加空格【左大括號(hào)前的空格是規(guī)則#4.2.1】

·????????初始化語(yǔ)句的逗號(hào)前不加空格;

·????????初始化語(yǔ)句的逗號(hào)后加上空格

·????????增量語(yǔ)句的逗號(hào)前不加空格;

·????????增量語(yǔ)句的逗號(hào)后加上空格

·????????語(yǔ)句之間的分號(hào)前不加空格;

·????????語(yǔ)句之間的分號(hào)后加上空格;

·????????冒號(hào)前面加上空格;

·????????冒號(hào)后面加上空格。

?

4.2.4 switch語(yǔ)句

?

[java]?view plaincopy

  1. switch?(number)?{??

  2. ????case?RED:??

  3. ????????return?GREEN;??

  4. ????case?GREEN:??

  5. ????????return?BLUE;??

  6. ????case?BLUE:??

  7. ????????return?RED;??

  8. ????default:??

  9. ????????return?BLACK;??

  10. }??

· ? ? ? ?case和default的冒號(hào)(‘:’)前不加空格;

·????????左括號(hào)(‘(’)和左大括號(hào)(‘{’)前都加上空格;

·????????左括號(hào)(‘(’)后和右括號(hào)(‘)’)前都不加空格。

?

4.2.5 while和dowhile語(yǔ)句

?

[java]?view plaincopy

  1. while?(condition)?{??

  2. }??

  3. ;??

  4. do?{??

  5. }?while?(condition);??

·????????左括號(hào)前加上空格;

·????????左括號(hào)后不加空格;

·????????右括號(hào)前不加空格【#1左大括號(hào)前的空格是規(guī)則#4.2.1】

?

4.2.6 同步(synchronized)語(yǔ)句

?

[java]?view plaincopy

  1. synchronized?(list)?{??

  2. ????list.add(element);??

  3. }??

·????????左括號(hào)前加上空格;

·????????左括號(hào)后不加空格;

·????????右括號(hào)前不加空格【左大括號(hào)前的空格是規(guī)則#4.2.1】

?

4.2.7 catch語(yǔ)句

?

[java]?view plaincopy

  1. try?{??

  2. ????number?=?Integer.parseInt(value);??

  3. }?catch?(NumberFormatException?e)?{??

  4. }??

·????????左括號(hào)前加上空格;

·????????左括號(hào)后不加空格;

·????????右括號(hào)前不加空格【左大括號(hào)前的空格是規(guī)則#4.2.1】

?

4.2.8 assert語(yǔ)句

?

[java]?view plaincopy

  1. assert?condition?:?reportError();??

?

冒號(hào)前后都加上空格

?

4.2.9 return語(yǔ)句

?

[java]?view plaincopy

  1. return?(o);??

?

括號(hào)表達(dá)式前加上空格

?

4.2.10 throw語(yǔ)句

?

[java]?view plaincopy

  1. throw?(e);??

?

括號(hào)表達(dá)式前加上空格

?

4.3 表達(dá)式

?

4.2.1 函數(shù)調(diào)用

?

[java]?view plaincopy

  1. foo();??

  2. bar(x,?y);??

  3. ???

  4. String?str?=?new?String();??

  5. Point?point?=?new?Point(x,?y);??

  6. ???

  7. MyClass()?throws?E0,?E1?{??

  8. ????this(0,?0,?0);??

  9. }??

  10. ???

  11. MyClass(int?x,?int?y,?int?z)?throws?E0,?E1?{??

  12. ????super(x,?y,?z,?true);??

  13. }??

·????????左括號(hào)的前后都不加空格;

·????????右括號(hào)前不加空格;

·????????空的參數(shù)的左右括號(hào)之間不加空格;

·????????方法調(diào)用時(shí)多個(gè)參數(shù)之間分割的逗號(hào)前面不加空格,逗號(hào)后面加空格;

·????????對(duì)象申請(qǐng)時(shí)多個(gè)參數(shù)之間分割的逗號(hào)前面不加空格,逗號(hào)后面加空格;

·????????顯示調(diào)用構(gòu)造函數(shù)時(shí)多個(gè)參數(shù)之間分割的逗號(hào)前面不加空格,逗號(hào)后面加空格;

?

4.3.2 賦值

?

[java]?view plaincopy

  1. List?list?=?new?ArrayList();??

  2. int?a?=?-4?+?-9;??

  3. b?=?a++?/?--number;??

  4. c?+=?4;??

  5. boolean?value?=?true?&&?false;??

賦值操作(=)前后都加上空格。【注意:‘+=’是一個(gè)操作數(shù)】

?

4.3.3 操作數(shù)

?

[java]?view plaincopy

  1. List?list?=?new?ArrayList();??

  2. int?a?=?-4?+?-9;??

  3. b?=?a++?/?--number;??

  4. c?+=?4;??

  5. boolean?value?=?true?&&?false;??

·????????二元操作(#2的‘+’;#3的‘/’;#5的‘&&’)前后都加上空格;

·????????一元操作(#2 ‘4’和‘9’前面的‘-’)前后都不加空格【示例中‘-’前的空格不是這個(gè)規(guī)則里的】;

·????????前置操作的(#3的‘--number’)前后都不加空格【示例中‘--’前的空格不是這個(gè)規(guī)則里的】;

·????????后置操作的(#3的‘a(chǎn)++’)前后都不加空格【示例中‘++’后的空格不是這個(gè)規(guī)則里的】。

?

4.3.4 加括號(hào)的表達(dá)式

?

[java]?view plaincopy

  1. result?=?(a?*?(b?+?c?+?d)?*?(e?+?f));??

?

左括號(hào)前,左括號(hào)后和右括號(hào)前都不加空格【示例中左括號(hào)前的空格不是這個(gè)規(guī)則里的】

?

4.3.5 類型轉(zhuǎn)換

?

[java]?view plaincopy

  1. String?s?=?((String)?object);??

?

·????????右括號(hào)后加上空格;

·????????左括號(hào)后和右括號(hào)前都不加空格。

?

4.3.6 三元條件表達(dá)式

?

[java]?view plaincopy

  1. String?value?=?condition???TRUE?:?FALSE;??

?

問(wèn)號(hào)前,問(wèn)號(hào)后,冒號(hào)前,冒號(hào)后都要加上空格

?

4.4 數(shù)組

?

?

[java]?view plaincopy

  1. int[]?array0?=?new?int[]?{};??

  2. int[]?array1?=?new?int[]?{??

  3. ????????1,?2,?3??

  4. };??

  5. int[]?array2?=?new?int[3];??

  6. ???

  7. array[i].foo();??

?

4.4.1 聲明

·????????左中括號(hào)前不加空格;

·????????左右中括號(hào)中間不加空格

示例中:arrayX前的‘[]’

?

4.4.2 申請(qǐng)

·????????左中括號(hào)前后都不加空格;

·????????右中括號(hào)前不加空格;

·????????空的左右中括號(hào)中間不加空格;

示例中:等號(hào)‘=’后面的‘[]’

?

4.4.3 初始化體

·????????左大括號(hào)前后都加上空格;

·????????右大括號(hào)前加上空格;

·????????逗號(hào)前不加空格;

·????????逗號(hào)后加上空格;

·????????空的大括號(hào)中間不加空格

?

4.4.4 數(shù)組元素的訪問(wèn)

·????????左中括號(hào)前后都不加空格;

·????????右中括號(hào)前面不加空格

?

4.5 泛型

?

[java]?view plaincopy

  1. Map<String,?Element>?map?=?newHashMap<String,?Element>();??

  2. ???

  3. x.<String,?Element>?foo();??

  4. ???

  5. classMyGenericType<S,?T?extends?Element?&?List>?{??

  6. }??

  7. ???

  8. Map<X<?>,?Y<??extendsK,???super?V>>?t;??

?

?

五、空白行(BlankLines)

?

5.1 示例代碼

?

[java]?view plaincopy

  1. /**?

  2. ?*?Blank?Lines?

  3. ?*/??

  4. ???

  5. package?foo.bar.baz;??

  6. ???

  7. import?java.util.List;??

  8. import?java.util.Vector;??

  9. ???

  10. import?java.net.Socket;??

  11. ???

  12. public?class?Another?{??

  13. }??

  14. ???

  15. public?class?Example?{??

  16. ????public?static?class?Pair?{??

  17. ????????public?String?first;??

  18. ???

  19. ????????public?String?second;??

  20. ????????//?Between?here...??

  21. ???

  22. ????????//?...and?here?are?10?blank?lines??

  23. ????};??

  24. ???

  25. ????private?LinkedList?fList;??

  26. ???

  27. ????public?int?counter;??

  28. ???

  29. ????publicExample(LinkedList?list)?{??

  30. ????????fList?=?list;??

  31. ????????counter?=?0;??

  32. ????}??

  33. ???

  34. ????public?void?push(Pair?p)?{??

  35. ????????fList.add(p);??

  36. ????????++counter;??

  37. ????}??

  38. ???

  39. ????public?Object?pop()?{??

  40. ????????--counter;??

  41. ????????return?(Pair)fList.getLast();??

  42. ????}??

  43. }??

  44. ???


?

5.2 規(guī)則說(shuō)明

?

5.2.1 編譯單元之間的空白行

1)?????包聲明之前有一空白行[#4]

2)?????包聲明之后有一空白行[#6]

3)?????import聲明之前有一空白行[#6]

4)?????import各個(gè)分組之間有一空白行[#9]

5)?????import聲明之后有一空白行[#11]

6)?????類聲明之間有一空白行[#14]

?

5.2.2 類內(nèi)部的空白行

1)?????第一個(gè)聲明之間無(wú)空白行[#15 & #16之間]

2)?????相同分類聲明之前有一空白行[#24, #28]

3)?????成員類聲明之前有一空白行

4)?????域聲明之前有一空白行[#18, #24, #26]

5)????? 方法聲明之前有一空白行[#28,#33, #38]??????????

6)????? 方法內(nèi)的開(kāi)始處沒(méi)有空白行[#29和#30之間;#34與#35之間;#39與#40之間]

?

?

六、插入新行(NewLines)

?

6.1 示例代碼

?

[java]?view plaincopy

  1. /**?

  2. ?*?New?Lines?

  3. ?*/??

  4. public?class?Empty?{??

  5. }??

  6. ???

  7. class?Example?{??

  8. ????static?int[]?fArray?=?{??

  9. ????????????1,?2,?3,?4,?5??

  10. ????};??

  11. ???

  12. ????Listener?fListener?=?new?Listener()?{??

  13. ????};??

  14. ???

  15. ????@Deprecated??

  16. ????@Override??

  17. ????public?void?bar(@SuppressWarnings("unused")?int?i)?{??

  18. ????????@SuppressWarnings("unused")??

  19. ????????int?k;??

  20. ????}??

  21. ???

  22. ????void?foo()?{??

  23. ????????;??

  24. ????????;??

  25. ????????label:?do?{??

  26. ????????}?while?(false);??

  27. ????????for?(;;)?{??

  28. ????????}??

  29. ????}??

  30. }??

  31. ???

  32. enum?MyEnum?{??

  33. ????UNDEFINED(0)?{??

  34. ????}??

  35. }??

  36. ???

  37. enum?EmptyEnum?{??

  38. }??

  39. ???

  40. @interface?EmptyAnnotation{??

  41. }??

  42. ???

?

6.2 規(guī)則說(shuō)明

?

6.2.1 插入新行

1)?????類體內(nèi)為空,插入新行[#5是另起的一行]

2)?????匿名類體內(nèi)為空,插入新行[#13是另起的一行]

3)?????方法內(nèi)為空,插入新行

4)?????空的程序塊,插入新行[#26是另起的一行;#28是另起的一行]

5)?????標(biāo)號(hào)后面不插入新行[#25 do與label在同一行]

6)?????在空的枚舉聲明中,插入新行[#38是另起的一行]

7)?????在空的枚舉常量體中,插入新行[#34是另起的一行]

8)?????在空的注解體中,插入新行[#41是另起的一行]

9)?????在文件結(jié)尾,插入新行[#42是另起的一行]

?

6.2.2 數(shù)組初始化

1)?????數(shù)組初始化體的左大括號(hào)后,插入新行[#9是另起的一行]

2)?????數(shù)組初始化體的右大括號(hào)前,插入新行[#10是另起的一行]

?

6.2.3 空的語(yǔ)句

空的語(yǔ)句放在新行上[#24是另起的一行]

?

6.2.4 注解

1)?????對(duì)成員的注解之后,插入新行[#16 & #17都是另起的一行]

2)?????對(duì)參數(shù)的注解之后,不插入新行[#17 int i與@SuppressWarnings("unused")在同一行]

3)?????對(duì)臨時(shí)變量的注解之后,插入新行[#19是另起的一行]

?

?

七、控制語(yǔ)句(ControlStatements)

?

7.1 示例代碼

?

[java]?view plaincopy

  1. /**?

  2. ?*?If...else?

  3. ?*/??

  4. class?Example?{??

  5. ????void?bar()?{??

  6. ????????do?{??

  7. ????????}?while?(true);??

  8. ????????try?{??

  9. ????????}?catch?(Exception?e)?{??

  10. ????????}?finally?{??

  11. ????????}??

  12. ????}??

  13. ???

  14. ????void?foo2()?{??

  15. ????????if?(true)?{??

  16. ????????????return;??

  17. ????????}??

  18. ????????if?(true)?{??

  19. ????????????return;??

  20. ????????}?else?if?(false)?{??

  21. ????????????return;??

  22. ????????}?else?{??

  23. ????????????return;??

  24. ????????}??

  25. ????}??

  26. ???

  27. ????void?foo(int?state)?{??

  28. ????????if?(true)??

  29. ????????????return;??

  30. ????????if?(true)??

  31. ????????????return;??

  32. ????????else?if?(false)??

  33. ????????????return;??

  34. ????????else??

  35. ????????????return;??

  36. ????}??

  37. }??

  38. ???

?

7.2 規(guī)則說(shuō)明

?

1)?????if語(yǔ)句的else之前,不插入新行[#20& #22的else與‘}’在同一行]

2)?????try語(yǔ)句的catch之前,不插入新行[#9的catch與‘}’在同一行]

3)?????try語(yǔ)句的finally之前,不插入新行[#10的finally與‘}’在同一行]

4)?????do語(yǔ)句的while之前,不插入新行[#7的while與‘}’在同一行]

5)?????#29的‘then’語(yǔ)句與#28的if在不同行,#31的‘then’語(yǔ)句與#30的if在不同行;

6)?????#35的else語(yǔ)句與#34的else在不同行;

7)?????#20和#32的else if中‘else與‘if’在同一行;

8)?????‘return’或‘throw’語(yǔ)句不需要在一行上[#16與#15在兩行上]

?

?

八、換行(LineWrapping)

?

8.1 總則

  • ?每行最多100個(gè)字符;

  • ?超過(guò)100個(gè)字符的行要換行,新行缺省縮進(jìn)2個(gè)縮進(jìn)單位。一個(gè)縮進(jìn)單位是4個(gè)空格,所以這里總共縮進(jìn)8個(gè)空格。

  • ?缺省數(shù)組初始化值缺省縮進(jìn)2個(gè)縮進(jìn)單位。

?

8.2 注解(Annotation)

[java]?view plaincopy

  1. /**?

  2. ?*?Element-value?pairs?

  3. ?*/??

  4. @MyAnnotation(value1?=?"this?isan?example",?value2?=?"of?an?annotation",?value3?=?"withseveral?arguments",?value4?=?"by?Haili?TIAN?(haili.tian@gmail.com)")??

  5. class?Example?{??

  6. }??

注解不換行:value1、value2、value3和value4都在同一行上。

?

8.3 類聲明

?

[java]?view plaincopy

  1. /**?

  2. ?*?'extends'?clause?

  3. ?*/??

  4. class?Example?extends??

  5. ????????OtherClass?{??

  6. }??

  7. ???

  8. /**?

  9. ?*?'implements'?clause?

  10. ?*/??

  11. class?Example?implements?I1,??

  12. ????????I2,?I3?{??

  13. }??

  14. ???

  • ?extends子句在需要換行的地方,用缺省換行方式換行:#5OtherClass處換行,且OtherClass相對(duì)class縮進(jìn)了8個(gè)空格;

  • ?implements子句在需要換行的地方,用缺省換行方式換行:#12I2處換行,且I2相對(duì)class縮進(jìn)了8個(gè)空格。

?

?

8.4 構(gòu)造體聲明

?

[java]?view plaincopy

  1. /**?

  2. ?*?Parameters?

  3. ?*/??

  4. class?Example?{??

  5. ????Example(int?arg1,?int?arg2,??

  6. ????????????int?arg3,?int?arg4,??

  7. ????????????int?arg5,?int?arg6)?{??

  8. ????????this();??

  9. ????}??

  10. ???

  11. ????Example()?{??

  12. ????}??

  13. }??

  14. ???

  15. /**?

  16. ?*?'throws'?clause?

  17. ?*/??

  18. class?Example?{??

  19. ????Example()?throws?FirstException,??

  20. ????????????SecondException,??

  21. ????????????ThirdException?{??

  22. ????????returnOther.doSomething();??

  23. ????}??

  24. }??

  25. ???

  • ?構(gòu)造體的參數(shù)在需要換行的地方,用缺省換行方式換行:參數(shù)[#6 &#7]相對(duì)Example[#5]縮進(jìn)了8個(gè)空格;

  • ?構(gòu)造體throws子句在需要換行的地方,用缺省換行方式換行:子句[#20& #21]相對(duì)Example[#19]縮進(jìn)了8個(gè)空格。

?

?

8.5 方法聲明

?

[java]?view plaincopy

  1. /**?

  2. ?*?Declaration?

  3. ?*/??

  4. class?Example?{??

  5. ????public?final?synchronizedjava.lang.String?a_method_with_a_long_name()?{??

  6. ????}??

  7. }??

  8. ???

  9. /**?

  10. ?*?Parameters?

  11. ?*/??

  12. class?Example?{??

  13. ????void?foo(int?arg1,?int?arg2,??

  14. ????????????int?arg3,?int?arg4,??

  15. ????????????int?arg5,?int?arg6)?{??

  16. ????}??

  17. }??

  18. ???

  19. /**?

  20. ?*?'throws'?clause?

  21. ?*/??

  22. class?Example?{??

  23. ????int?foo()?throws?FirstException,??

  24. ????????????SecondException,??

  25. ????????????ThirdException?{??

  26. ????????returnOther.doSomething();??

  27. ????}??

  28. }??

  29. ???

  • ?方法聲明處不換行:#5 很長(zhǎng),但不分行;

  • ?方法聲明處的參數(shù)在需要換行的地方,用缺省換行方式換行:參數(shù)[#14& #15]相對(duì)voidfoo [#13]縮進(jìn)了8個(gè)空格;

  • ?方法聲明處的throws子句在需要換行的地方,用缺省換行方式換行:子句[#24& #25]相對(duì)intfoo [#23]縮進(jìn)了8個(gè)空格。

?

?

8.6 枚舉聲明

?

[java]?view plaincopy

  1. /**?

  2. ?*?Constants?

  3. ?*/??

  4. enum?Example?{??

  5. ????CANCELLED,?RUNNING,?WAITING,?FINISHED??

  6. }??

  7. ???

  8. enum?Example?{??

  9. ????GREEN(0,?255,?0),?RED(??

  10. ????????????255,?0,?0)??

  11. }??

  12. ???

  13. /**?

  14. ?*?'implements'?clause?

  15. ?*/??

  16. enum?Example?implements?A,?B,??

  17. ????????C?{??

  18. }??

  19. ???

  20. /**?

  21. ?*?Constant?arguments?

  22. ?*/??

  23. enum?Example?{??

  24. ????GREEN(0,?255,?0),?RED(??

  25. ????????????255,?0,?0)??

  26. }??

  27. ???

  • ?枚舉常量定義的地方,不換行:#5不換行;

  • ?implements子句在需要換行的地方,用缺省換行方式換行:#17 C處換行,且C相對(duì)enum縮進(jìn)了8個(gè)空格;

  • ?常量參數(shù)在需要換行的地方,用缺省換行方式換行:#10 和#25處換行,且相對(duì)GREEN縮進(jìn)了8個(gè)空格。

?

?

8.7 函數(shù)調(diào)用

?

[java]?view plaincopy

  1. /**?

  2. ?*?Arguments?

  3. ?*/??

  4. class?Example?{??

  5. ????void?foo()?{??

  6. ????????Other.bar(??

  7. ????????????????100,??

  8. ????????????????nested(200,?300,?400,??

  9. ????????????????????????500,?600,?700,??

  10. ????????????????????????800,?900));??

  11. ????}??

  12. }??

  13. ???

  14. /**?

  15. ?*?Qualified?invocations?

  16. ?*/??

  17. class?Example?{??

  18. ????int?foo(Some?a)?{??

  19. ????????return?a.getFirst();??

  20. ????}??

  21. }??

  22. ???

  23. /**?

  24. ?*?Explicit?constructor?invocations?

  25. ?*/??

  26. class?Example?extends?AnotherClass?{??

  27. ????Example()?{??

  28. ????????super(100,?200,?300,400,?500,??

  29. ????????????????600,?700);??

  30. ????}??

  31. }??

  32. ???

  33. /**?

  34. ?*?Object?allocation?arguments?

  35. ?*/??

  36. class?Example?{??

  37. ????SomeClass?foo()?{??

  38. ????????return?new?SomeClass(100,200,??

  39. ????????????????300,?400,?500,?600,??

  40. ????????????????700,?800,?900);??

  41. ????}??

  42. }??

  43. ???

  44. /**?

  45. ?*?Qualified?object?allocation?arguments?

  46. ?*/??

  47. class?Example?{??

  48. ????SomeClass?foo()?{??

  49. ????????return?SomeOtherClass.new?SomeClass(??

  50. ????????????????100,?200,?300,?400,?500);??

  51. ????}??

  52. }??

  53. ???

  • ?函數(shù)調(diào)用參數(shù)處,在需要換行的地方,用缺省換行方式換行:#7, #8和#9, #10處換行,且#7,#8相對(duì)Other.bar縮進(jìn)了8個(gè)空格, #9, #10相對(duì)nested縮進(jìn)了8個(gè)空格;

  • ?對(duì)象的方法調(diào)用處,在需要換行的地方,用缺省換行方式換行:#19這個(gè)例子不太好,如果這句很長(zhǎng),可以在a和getFirst之間換行,且.放在getFirst前;

  • ?顯示的構(gòu)造函數(shù)調(diào)用處,在需要換行的地方,用缺省換行方式換行:#29處換行,且相對(duì)#30的super縮進(jìn)8個(gè)空格;

  • ?對(duì)象創(chuàng)建參數(shù)處,在需要換行的地方,用缺省換行方式換行:#39, #40處換行,且相對(duì)#38的return縮進(jìn)8個(gè)空格;

  • ?對(duì)象方法構(gòu)造對(duì)象參數(shù)處,在需要換行的地方,用缺省換行方式換行:#50處換行,且相對(duì)#49的return縮進(jìn)8個(gè)空格.

?

?

8.8 表達(dá)式

?

[java]?view plaincopy

  1. /**?

  2. ?*?Binary?expressions?

  3. ?*/??

  4. class?Example?extends?AnotherClass?{??

  5. ????int?foo()?{??

  6. ????????int?sum?=?100?+?200?+?300?+?400??

  7. ????????????????+?500?+?600?+?700?+?800;??

  8. ????????int?product?=?1?*?2?*?3?*?4?*?5??

  9. ????????????????*?6?*?7?*?8?*?9?*?10;??

  10. ????????boolean?val?=?true?&&?false??

  11. ????????????????&&?true?&&?false??

  12. ????????????????&&?true;??

  13. ????????return?product?/?sum;??

  14. ????}??

  15. }??

  16. ???

  17. /**?

  18. ?*?Conditionals?

  19. ?*/??

  20. class?Example?extends?AnotherClass?{??

  21. ????int?Example(boolean?Argument)?{??

  22. ????????return?argument??100000??

  23. ????????????????:?200000;??

  24. ????}??

  25. }??

  26. ???

  27. /**?

  28. ?*?Array?initializers?

  29. ?*/??

  30. class?Example?{??

  31. ????int[]?fArray?=?{??

  32. ????????????1,?2,?3,?4,?5,?6,?7,?8,?9,??

  33. ????????????10,?11,?12??

  34. ????};??

  35. }??

  36. ???

  37. /**?

  38. ?*?Assignments?

  39. ?*/??

  40. class?Example?{??

  41. ????private?static?final?String?string?="TextTextText";??

  42. ???

  43. ????void?foo()?{??

  44. ????????for?(int?i?=?0;?i?<10;?i++)?{??

  45. ????????}??

  46. ????????String?s;??

  47. ????????s?=?"TextTextText";??

  48. ????}??

  49. }??

  50. ???

  • ?二元表達(dá)式,在需要換行的地方,用缺省換行方式換行:#7, #9和#11,#12處換行,且#7相對(duì)int?sum縮進(jìn)了8個(gè)空格,且#9相對(duì)int?product縮進(jìn)了8個(gè)空格,且#11& #12相對(duì)boolean?val縮進(jìn)了8個(gè)空格;

  • ?三元條件表達(dá)式,除了第一個(gè)元素,用缺省換行方式換行所有其他元素:#22& #23;

  • ?數(shù)組初始化體,在需要換行的地方,用缺省換行方式換行:#32 &#33處換行,且#32& #33相對(duì)int[] fArray縮進(jìn)了8個(gè)空格;

  • ?賦值語(yǔ)句,不需要換行:#41行很長(zhǎng)也不需要換行。

?

?

8.9 語(yǔ)句

?

[java]?view plaincopy

  1. /**?

  2. ?*?Compact?'if?else'?

  3. ?*/??

  4. class?Example?{??

  5. ????int?foo(int?argument)?{??

  6. ????????if?(argument?==?0)??

  7. ????????????return?0;??

  8. ????????if?(argument?==?1)??

  9. ????????????return?42;??

  10. ????????else??

  11. ????????????return?43;??

  12. ????}??

  13. }??

  14. ???

配置起什么用,沒(méi)看懂!

?

?

九、注釋(Comments)

?

?

[java]?view plaincopy

  1. ??

[java]?view plaincopy

  1. /**?

  2. ?*?An?example?for?comment?formatting.?This?example?is?meant?to?illustrate?the?various?possibilities?offered?by?<i>Haili?TIAN</i>?in?order?to?format?comments.?

  3. ?*/??

  4. ???

  5. package?mypackage;??

  6. ???

  7. /**?

  8. ?*?This?is?the?comment?for?the?example?interface.?

  9. ?*/??

  10. interface?Example?{??

  11. ????//?This?is?a?long?comment?with?white?space?that?should?be?split?in?multiple??

  12. ????//?line?comments?in?case?the?linecomment?formatting?is?enabled??

  13. ????int?foo3();??

  14. ?????

  15. //????void?commented()?{??

  16. //????????System.out.println("indented");??

  17. //????}??

  18. ???

  19. ????//?void?indentedCommented()?{??

  20. ????//?System.out.println("indented");??

  21. ????//?}??

  22. ???

  23. ????/*?block?comment?on?first?column?*/??

  24. ????int?bar();??

  25. ???

  26. ????/*?

  27. ?????*?These?possibilities?include:<ul><li>Formatting?of?header?

  28. ?????*?comments.</li><li>Formatting?of?Javadoc?tags</li></ul>?

  29. ?????*/??

  30. ????int?bar2();?//?This?is?along?comment?that?should?be?split?in?multiple?line??

  31. ????????????????//?comments?in?case?the?linecomment?formatting?is?enabled??

  32. ???

  33. ????/**?

  34. ?????*?The?following?is?some?sample?code?whichillustrates?source?formatting?

  35. ?????*?within?javadoc?comments:?

  36. ?????*?

  37. ?????*?<pre>?

  38. ?????*?public?class?Example?{?

  39. ?????*????final?int?a?=?1;?

  40. ?????*?

  41. ?????*????final?boolean?b?=?true;?

  42. ?????*?}?

  43. ?????*?</pre>?

  44. ?????*?

  45. ?????*?Descriptions?of?parameters?and?returnvalues?are?best?appended?at?end?of?

  46. ?????*?the?javadoc?comment.?

  47. ?????*?

  48. ?????*?@param?a?The?first?parameter.?For?an?optimum?result,?this?should?be?an?

  49. ?????*????????????odd?number?between?0?and?100.?

  50. ?????*?@param?b?The?second?parameter.?

  51. ?????*?@return?The?result?of?the?foo?operation,?usually?within?0?and?1000.?

  52. ?????*/??

  53. ????int?foo(int?a,?int?b);??

  54. }??

  • ?注釋每行長(zhǎng)度是80個(gè)字符;

  • ?開(kāi)啟對(duì)Javadoc注釋的格式化;

    • ? 用html的TAG;

    • ? 開(kāi)啟對(duì)‘pre’TAG里的Java代碼片段進(jìn)行格式化;

?

#37 ~ #43

?

  • ? Javadoc TAG前面插入空白行;

?

#47是插入的行

?

  • ? Javadoc Tag縮進(jìn)

    • §?‘@param’TAG后面的描述縮進(jìn)

?

#49的odd相對(duì)#48的a縮進(jìn)了4個(gè)空格。

?

  • ? 不對(duì)‘@param’TAG插入新行;

?

#48和#50的描述與參數(shù)在同一行。

?

  • ? ‘/**’和‘*/’在不同的行;

  • ? 移除空白行;

?

Javadoc注釋形式見(jiàn)#33~ #52

?

  • ?開(kāi)啟對(duì)塊注釋的格式化;

    • ? ‘/*’和‘*/’在不同的行;

    • ? 移除空白行;

?

塊注釋形式見(jiàn)#26~ #29

?

  • ?開(kāi)啟對(duì)行注釋的格式化;

    • ? 注釋在行的第一列

?

#15, #16 和#17是行注釋,且‘//’與原程序之間的空格仍舊保持。

?

  • ?關(guān)閉對(duì)頭注釋的格式化;

?

#1, #2和#3的頭注釋保持不變。

?

  • ?關(guān)閉對(duì)塊注釋縮進(jìn)到第一列;

?

#23是塊注釋,與程序有相同的縮進(jìn),不是縮進(jìn)到第一列。

?

  • ?關(guān)閉對(duì)行注釋縮進(jìn)到第一列;

?

注:筆者對(duì)行注釋驗(yàn)證,發(fā)現(xiàn)Eclipse中無(wú)論如何設(shè)置,基本不會(huì)改變其行為。

?

?

十、Android中XML文件的格式化

?

前面講了那么多都是針對(duì)Java程序的,Android中有大量的XML文件。對(duì)XML的格式也要進(jìn)行排版格式化。

打開(kāi)Window> Preferences,可以通過(guò)兩個(gè)地方對(duì)XML文件進(jìn)行格式化:

1)?????XML > XML Files > Editor

對(duì)其中的各項(xiàng)設(shè)置進(jìn)行配置

2)?????Android > Editors

對(duì)其中的各項(xiàng)設(shè)置進(jìn)行配置

?

?

總結(jié)

 本文分析了Android編碼風(fēng)格在Eclipse環(huán)境中具體實(shí)施,通過(guò)對(duì)Eclipse環(huán)境的配置可以方便的格式化Android程序:Java文件和XML文件,特別是Java文件,其配置是基于JDT實(shí)現(xiàn)的,所以對(duì)Java的方方面面的配置都覆蓋了。

? ? ? ? 但是,只有這些還不夠,對(duì)一般的Java設(shè)計(jì)編碼原則和Android中推薦的風(fēng)格還不能完全自動(dòng)執(zhí)行,還需要人的參與,依賴于團(tuán)隊(duì)風(fēng)格規(guī)范的制定,成員的設(shè)計(jì)能力和領(lǐng)悟執(zhí)行能力。下面是這些工具所不能解決的風(fēng)格和原則:

?

  • ?對(duì)Exception的處理;

  • ?寫短小的方法;

  • ?域的命名規(guī)則;

  • ?程序塊內(nèi)的邏輯分組;

  • ?等等。

文章來(lái)源《IT藍(lán)豹》

當(dāng)前題目:Android代碼規(guī)范
分享URL:http://aaarwkj.com/article32/peiosc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)、用戶體驗(yàn)、企業(yè)建站關(guān)鍵詞優(yōu)化、標(biāo)簽優(yōu)化小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
国产av专区久久伊人亚洲| 蜜桃久久国产精品一区二区| 亚洲免费观看视频一区二区三区 | 日韩高清有码一区二区| 老熟女露脸吞精一二三四区| 午夜男女激情在线观看| av中文字幕一区二区三区| 亚洲成人不卡一区二区三区| 国产超碰久久久久久精品| 日本黄色三级三级三级| 清纯唯美校园春色亚洲激情| 天堂av在线观看播放| 亚洲黄色片一区二区三区| 亚洲欧美日韩综合一区| 国家成人午夜在线观看| 欧美日韩亚洲中文二区| 美女后入式在线观看| 漂亮人妻被中出中文字幕| 美女少妇性高潮的视频| 国产欧美日韩精品国产| 九九九热精品在线视频观看| 精品偷拍污视频一区二区| 国产精品久久久天美传媒| 欧美日韩亚洲视频二区| 国产剧情av网址观看免费| 精品一区精品二区国产日韩| 97视频观看免费观看| 日韩中字伦理熟妇人妻| 国产亚洲精品久久久闺蜜| 欧美亚洲一区二区三区精品| 中文字幕人妻中文av不卡专区| 国产av午夜精品福利| 国产青青草成人在线视频| 激情欧美一区二区三区精品| 国产午夜福利诱惑在线观看| 中文字幕久久熟女蜜桃| 欧美日韩国产精品久久乐播| 亚洲丰满一区二区三区在线| 国产情侣自拍在线观看| 亚洲中文字幕高清乱码毛片| 熟女人妻丰满视频中文字幕|