一個好的開發規范,就是團隊合作的基石
Java 文件
采用駝峰命名法
文件頭
/**
* @author gmf (可以寫固定的名稱或者使用計算機用戶名 ${USER})
* @description
* @date ${DATE}.
*/
Activity
以 Activity
作為后綴,如:LoginActivity
Fragment
以 Fragment
作為后綴,如:UserFragment
Adapter
以 Adapter
作為后綴,如:CollectAdapter
常量
全部大寫,單詞之間用下劃線分開,如:
private final String CACHE_PATH = "cache_path";
靜態變量
首字母小寫,加前綴s,如:
private static String sName;
成員變量
首字母小寫,加前綴m,如:
private int mAge;
局部變量
首字母小寫,不用加前綴,如:
int age;
控件變量
Android的控件變量,采用“邏輯功能+控件縮寫”的形式,如:登陸按鈕 loginBtn
常見的控件縮寫對照表
組件名稱 | 縮寫 |
---|---|
TextView | Tv (tv) |
ListView | Lv (lv) |
EditText | Edt (edt) |
CheckBox | Chk (chk) |
Button | Btn (btn) |
ImageButton | Ibtn (ibtn) |
ToggleButton | Tbtn (tbtn) |
RadioButton | Rbtn (rbtn) |
ImageView | Iv (iv) |
ProgressBar | Pbar (pbar) |
ScrollView | Sclv (sclv) |
LinearLayout | Llyt (llyt) |
RelativeLayout | Rlyt (rlyt) |
TableLayout | Tlyt (tlyt) |
FrameLayout | Flyt (flyt) |
這里有個小細節,變量聲明一般這樣,static 變量放在最前面,控件變量放中間,普通成員變量放在后面,示例如下:
// static 變量
private static final String PHOTO = "photo";
// 控件變量
private ImageView mPhotoIv;
private FloatingActionButton mEditFbtn;
private EditText mDescriptionEdt;
private EditText mAddressEdt;
private EditText mTimeEdt;
private EditText mCategoryEdt;
// 普通成員變量
private Photo mPhoto;
Android 資源文件
layout
1. 布局文件
格式:界面類型_模塊.xml / 界面類型_模塊_描述.xml
如:activity_login.xml
, fragment_login.xml
, dialog_login.xml
2. 列表項
格式:item_控件類型_功能描述 / item_控件類型_模塊_功能描述
如:item_lv_order.xml
, item_gv_main_photo.xml
3. 包含項
格式:包含類型_模塊_描述 / 包含類型_控件類型_描述
如: merge_detail_footer.xml
, include_refreshview_header.xml
4. 控件id
格式:模塊名_控件類型_描述
activity_category.xml 文件下顯示姓名的 TextView,其命名為 android:id="@+id/category_tv_name"
drawable
1. 靜態圖片
格式:
類型_common_描述:多個模塊共用
類型_模塊_描述:單個模塊共用
類型_模塊_描述_狀態:配合動態風格使用
ic_common_delete.png (刪除按鈕,多個模塊共用)
ic_accont_head.png(賬戶模塊下的頭像)
ic_theme_add_nomal.png (添加主題按鈕的正常狀態)
ic_theme_add_pressed.png (添加主題按鈕的被按下狀態)
2. 動態風格
格式:
common_描述:多個模塊共用
模塊_描述:單個某塊共用
common_delete.xml (共用)
theme_add.xml (添加主題按鈕)
string.xml
Java 文件和布局文件中,除了注釋可以是中文,其他文字性說明都要放入 string.xml 中統一管理,它們在 string.xml 中的命名規范如下:
1. xml
格式:
控件id:控件有聲明 id
模塊_描述:控件無聲明 id
<string name=”account_btn_login”>登錄</string>
<string name=”account_forget_pwd”>忘記密碼</string>
2. Java
格式:模塊_描述
新聞詳情頁,用戶點擊收藏時提示「已收藏」:
ToastUtil.show(getString(R.string.detail_collected));
colors.xml
只定義顏色表,colors.xml文件中只是映射顏色的一個RGBA值,而沒有其它的
糟糕的例子
<resources>
<color name="listview_divider">#cfcfd2</color>
<color name="listview_normal">#ffffff</color>
<color name="listview_selected">#fafafa</color>
<color name="actionbar_item_normal">#20699f</color>
<color name="actionbar_item_selected">#105085</color>
</resources>
使用這種格式,你會非常容易的開始重復定義RGBA值,這使如果需要改變基本色變的很復雜。同時,這些定義是跟一些環境關聯起來的,如 button, 應該放到一個按鈕風格中,而不是在color.xml文件中。
好的例子
<resources>
<!-- grayscale -->
<color name="white">#FFFFFF</color>
<color name="gray_light">#DBDBDB</color>
<color name="gray">#939393</color>
<color name="gray_dark" >#5F5F5F</color>
<!-- basic colors -->
<color name="green">#27D34D</color>
<color name="blue">#2A91BD</color>
<color name="orange">#FF9D2F</color>
<color name="red">#FF432F</color>
</resources>
dimens.xml
像對待colors.xml一樣對待dimens.xml文件,看個好的例子:
<resources>
<!-- font sizes -->
<dimen name="font_larger">22sp</dimen>
<dimen name="font_large">18sp</dimen>
<dimen name="font_normal">15sp</dimen>
<dimen name="font_small">12sp</dimen>
<!-- typical spacing between two views -->
<dimen name="spacing_huge">40dp</dimen>
<dimen name="spacing_large">24dp</dimen>
<dimen name="spacing_normal">14dp</dimen>
<dimen name="spacing_small">10dp</dimen>
<dimen name="spacing_tiny">4dp</dimen>
<!-- typical sizes of views -->
<dimen name="button_height_tall">60dp</dimen>
<dimen name="button_height_normal">40dp</dimen>
<dimen name="button_height_short">32dp</dimen>
</resources>
style.xml
Android中,styles這個文件名稱并沒有作用,起作用的是在文件里xml的 <style>
標簽。因此你可以有多個style文件,如:
- styles.xml
- style_home.xml
- styles_forms.xml