国产午夜精品理论片,国产亚洲精品久久久999蜜臀,国产精品久久久久久久久免费,国产卡一卡二卡3卡4乱码,国产精品午夜无码av天美传媒

Android技術(shù)積累:開發(fā)規(guī)范
發(fā)布時(shí)間:2016/1/14 來源:搜數(shù)網(wǎng)絡(luò) 瀏覽:10

書寫規(guī)范

1. 編碼方式統(tǒng)一用UTF-8. Android Studio默認(rèn)已是UTF-8,只要不去改動(dòng)它就可以了。

2. 縮進(jìn)統(tǒng)一為4個(gè)空格,將Tab size設(shè)置為4則可以保證tab鍵按4個(gè)空格縮進(jìn)。另外,不要勾選上Use tab character,可以保證切換到不同tab長(zhǎng)度的環(huán)境時(shí)還能繼續(xù)保持統(tǒng)一的4個(gè)空格的縮進(jìn)樣式。

3. 花括號(hào)不要單獨(dú)一行,和它前面的代碼同一行。而且,花括號(hào)與前面的代碼之間用一個(gè)空格隔開。

public void method() { // Good 

} 

public void method()
{ // Bad
}  

public void method(){ // Bad

} 

4. 空格的使用

if、else、for、switch、while等邏輯關(guān)鍵字與后面的語句留一個(gè)空格隔開。

// Good
if (booleanVariable) {
    // TODO while booleanVariable is true
} else {
    // TODO else
}

// Bad
if(booleanVariable) {
    // TODO while booleanVariable is true
}else {
    // TODO else
}

運(yùn)算符兩邊各用一個(gè)空格隔開。

int result = a + b; //Good, = 和 + 兩邊各用一個(gè)空格隔開
int result=a+b; //Bad,=和+兩邊沒用空格隔開

方法的每個(gè)參數(shù)之間用一個(gè)空格隔開。

public void method(String param1, String param2); // Good,param1后面的逗號(hào)與String之間隔了一個(gè)空格
method(param1, param2); // Good,方法調(diào)用時(shí),param1后面的逗號(hào)與param2之間隔了一個(gè)空格
method(param1,param2); // Bad,沒有用一個(gè)空格隔開

5. 空行的使用

將邏輯相關(guān)的代碼段用空行隔開,以提高可讀性??招幸仓豢找恍?,不要空多行。在以下情況需用一個(gè)空行:

  • 兩個(gè)方法之間
  • 方法內(nèi)的兩個(gè)邏輯段之間
  • 方法內(nèi)的局部變量和方法的第一條邏輯語句之間
  • 常量和變量之間

6. 當(dāng)一個(gè)表達(dá)式無法容納在一行內(nèi)時(shí),可換行顯示,另起的新行用8個(gè)空格縮進(jìn)。

someMethod(longExpression1, longExpression2, longExpression3,  
        longExpression4, longExpression5);

7. 一行聲明一個(gè)變量,不要一行聲明多個(gè)變量,這樣有利于寫注釋。

private String param1; // 參數(shù)1
private String param2; // 參數(shù)2
8. 行寬設(shè)置為100,設(shè)置格式化時(shí)自動(dòng)斷行到行寬位置。

9. 使用快捷鍵進(jìn)行代碼自動(dòng)格式化。

Windows:CTRL+ALT+L
Mac:OPTION+COMMAND+L

10. 一個(gè)方法最多不要超過40行代碼。

11. 范圍型的常量用枚舉類定義,而不要直接用整型或字符,這樣可以減少范圍值的有效性檢查。

// 用枚舉類定義,Good
public enum CouponType {
    // 現(xiàn)金券
    @SerializedName("1")
    CASH,

    // 抵用券
    @SerializedName("2")
    DEBIT,

    // 折扣券
    @SerializedName("3")
    DISCOUNT
}

// 用整型定義,Bad
public static final int TYPE_CASH = 1; // 現(xiàn)金券
public static final int TYPE_DEBIT = 2; // 抵扣券
public static final int TYPE_DISCOUNT = 3; // 折扣券

12. 文字大小的單位統(tǒng)一用sp,元素大小的單位統(tǒng)一用dp。

13. 應(yīng)用中的字符串統(tǒng)一在strings.xml中定義,然后在代碼和布局文件中引用。

14. 顏色值統(tǒng)一在colors.xml中定義,然后在代碼和布局文件中引用。另外,不要在代碼和布局文件中引用系統(tǒng)的顏色,除了透明。

命名規(guī)范

1. 包命名

域名反寫+項(xiàng)目名稱+模塊名稱,全部單詞用小寫字母。
例如,我的KAndroid項(xiàng)目的Model模塊包名如下:

me.keeganlee.kandroid.model

2. 類和接口命名

使用大駝峰規(guī)則,用名詞或名詞詞組命名,每個(gè)單詞的首字母大寫。
以下為幾種常用類的命名:

  • activity類,命名以Activity為后綴,如:LoginActivity
  • fragment類,命名以Fragment為后綴,如:ShareDialogFragment
  • service類,命名以Service為后綴,如:DownloadService
  • adapter類,命名以Adapter為后綴,如:CouponListAdapter
  • 工具類,命名以Util為后綴,如:EncryptUtil
  • 模型類,命名以BO為后綴,如:CouponBO
  • 接口實(shí)現(xiàn)類,命名以Impl為后綴,如:ApiImpl

3. 方法命名

使用小駝峰規(guī)則,用動(dòng)詞命名,第一個(gè)單詞的首字母小寫,其他單詞的首字母大寫。
以下為幾種常用方法的命名:

  • 初始化方法,命名以init開頭,例:initView
  • 按鈕點(diǎn)擊方法,命名以to開頭,例:toLogin
  • 設(shè)置方法,命名以set開頭,例:setData
  • 具有返回值的獲取方法,命名以get開頭,例:getData
  • 通過異步加載數(shù)據(jù)的方法,命名以load開頭,例:loadData
  • 布爾型的判斷方法,命名以is或has,或具有邏輯意義的單詞如equals,例:isEmpty

4. 控件縮寫

控件 縮寫 控件 縮寫
TextView txt EditText edt
Button btn ImageButton ibtn
ImageView img ListView list
RadioGroup group RadioButton rbtn
ProgressBar progress SeekBar seek
CheckBox chk Spinner spinner
TableLayout table TableRow row
LinearLayout llayout RelativeLayout rlayout
ScrollView scroll SearchView search
TabHost host TabWidget widget

5. 常量命名

全部為大寫單詞,單詞之間用下劃線分開。

public final static int PAGE_SIZE = 20;

6. 變量命名

{范圍描述+}意義描述+類型描述的組合,用駝峰式,首字母小寫。

private TextView headerTitleTxt; // 標(biāo)題欄的標(biāo)題
private Button loginBtn; // 登錄按鈕
private CouponBO couponBO; // 券實(shí)例

7. 控件id命名

控件縮寫_{范圍_}意義,范圍可選,只在有明確定義的范圍內(nèi)才需要加上。


<TextView
    android:id="@+id/txt_header_title"
    ... />


<Button
    android:id="@+id/btn_login"
    ... />

8. layout命名

組件類型_{范圍_}功能,范圍可選,只在有明確定義的范圍內(nèi)才需要加上。
以下為幾種常用的組件類型命名:

  • activity_{范圍_}功能,為Activity的命名格式
  • fragment_{范圍_}功能,為Fragment的命名格式
  • dialog_{范圍_}功能,為Dialog的命名格式
  • item_list_{范圍_}功能,為L(zhǎng)istView的item命名格式
  • item_grid_{范圍_}功能,為GridView的item命名格式
  • header_list_{范圍_}功能,為L(zhǎng)istView的HeaderView命名格式
  • footer_list_{范圍_}功能,為L(zhǎng)istView的FooterView命名格式

9. strings的命名

類型_{范圍_}功能,范圍可選。
以下為幾種常用的命名:

  • 頁面標(biāo)題,命名格式為:title_頁面
  • 按鈕文字,命名格式為:btn_按鈕事件
  • 標(biāo)簽文字,命名格式為:label_標(biāo)簽文字
  • 選項(xiàng)卡文字,命名格式為:tab_選項(xiàng)卡文字
  • 消息框文字,命名格式為:toast_消息
  • 編輯框的提示文字,命名格式為:hint_提示信息
  • 圖片的描述文字,命名格式為:desc_圖片文字
  • 對(duì)話框的文字,命名格式為:dialog_文字
  • menu的item文字,命名格式為:action_文字

10. colors的命名

前綴{_控件}{_范圍}{_后綴},控件、范圍、后綴可選,但控件和范圍至少要有一個(gè)。

  • 背景顏色,添加bg前綴
  • 文本顏色,添加text前綴
  • 分割線顏色,添加div前綴
  • 區(qū)分狀態(tài)時(shí),默認(rèn)狀態(tài)的顏色,添加normal后綴
  • 區(qū)分狀態(tài)時(shí),按下時(shí)的顏色,添加pressed后綴
  • 區(qū)分狀態(tài)時(shí),選中時(shí)的顏色,添加selected后綴
  • 區(qū)分狀態(tài)時(shí),不可用時(shí)的顏色,添加disable后綴

11. drawable的命名

前綴{_控件}{_范圍}{_后綴},控件、范圍、后綴可選,但控件和范圍至少要有一個(gè)。

  • 圖標(biāo)類,添加ic前綴
  • 背景類,添加bg前綴
  • 分隔類,添加div前綴
  • 默認(rèn)類,添加def前綴
  • 區(qū)分狀態(tài)時(shí),默認(rèn)狀態(tài),添加normal后綴
  • 區(qū)分狀態(tài)時(shí),按下時(shí)的狀態(tài),添加pressed后綴
  • 區(qū)分狀態(tài)時(shí),選中時(shí)的狀態(tài),添加selected后綴
  • 區(qū)分狀態(tài)時(shí),不可用時(shí)的狀態(tài),添加disable后綴
  • 多種狀態(tài)的,添加selector后綴(一般為L(zhǎng)istView的selector或按鈕的selector)

12. 動(dòng)畫文件命名

動(dòng)畫類型_動(dòng)畫方向。

  • fade_in,淡入
  • fade_out,淡出
  • push_down_in,從下方推入
  • push_down_out,從下方推出
  • slide_in_from_top,從頭部滑動(dòng)進(jìn)入
  • zoom_enter,變形進(jìn)入
  • shrink_to_middle,中間縮小

注釋規(guī)范

1. 文件頭注釋

文件頂部統(tǒng)一添加版權(quán)聲明,聲明的格式如下:

/**
 * Copyright (c) 2015. Keegan小鋼 Inc. All rights reserved.
 */

2. 類和接口注釋

類和接口統(tǒng)一添加javadoc注釋,格式如下:

/**
 * 類或接口的描述信息
 *
 * @author ${USER}
 * @date ${DATE}
 */

3. 方法注釋

下面幾種方法,都必須添加javadoc注釋,說明該方法的用途和參數(shù)說明,以及返回值的說明。

  • 接口中定義的所有方法
  • 抽象類中自定義的抽象方法
  • 抽象父類的自定義公用方法
  • 工具類的公用方法
/**
 * 登錄
 *
 * @param loginName 登錄名
 * @param password  密碼
 * @param listener  回調(diào)監(jiān)聽器
 */
public void login(String loginName, String password, ActionCallbackListener<Void> listener);

4. 變量和常量注釋

下面幾種情況下的常量和變量,都要添加注釋說明,優(yōu)先采用右側(cè)//來注釋,若注釋說明太長(zhǎng)則在上方添加注釋。

  • 接口中定義的所有常量
  • 公有類的公有常量
  • 枚舉類定義的所有枚舉常量
  • 實(shí)體類的所有屬性變量
public static final int TYPE_CASH = 1; // 現(xiàn)金券
public static final int TYPE_DEBIT = 2; // 抵扣券
public static final int TYPE_DISCOUNT = 3; // 折扣券

private int id;                // 券id
private String name;           // 券名稱
private String introduce;      // 券簡(jiǎn)介

結(jié)束語

這份開發(fā)規(guī)范說明比較細(xì),也許還不是非常完整,但里面提到的每一條規(guī)范都很有用。按照此規(guī)范嚴(yán)格執(zhí)行,將大大提高代碼的可讀性和維護(hù)性。

返回