Android 資原始檔命名規範
前言
在我們開發Android的時候,肯定會用到資原始檔,color,dimen,string等等,當我們專案小的時候,我們使用資原始檔並沒有關注使用的規範.導致專案大了以後或者ui經過幾次的改版之後,資原始檔中的資源名稱命名很是混亂.下面我就看看其他的文章和自身的經驗,來總結一下資原始檔中的命名規範
以下的說法都是博主個人覺得比較好的觀點,如果各位有什麼不同的意見,歡迎討論
命名的唯一的一個目的就是為了後期便於維護
命名的總體的一個方式就是根據模組來命名,能達到看到名字就能知道這個資源的作用就可以啦
命名的唯一的一個目的就是為了後期便於維護
命名的總體的一個方式就是根據模組來命名,能達到看到名字就能知道這個資源的作用就可以啦
而我們的所有資源大概分為以下兩類:
1.layout drawable mipmap
2.strings colors dimens
第一種資源是以單個檔案作為區分的,都是在一個目錄下的,順序是根據名稱而定的
第二種資源是定義在一個檔案內的,內部的順序是可以自己人為協調的
1.layout drawable mipmap
使用模組的名稱來開頭,這樣子可以讓一個模組下的檔案都自動被IDE規整到一塊了,便於查詢也便於管理,不用到處尋找了
如果一些是多個介面通用的資源,採用統一的common_字首開頭來命名,可讓通用的資源都規整到一塊
2.strings colors dimens
這類資源是檔案內部宣告的,所以我們可以在內部根據模組進行編寫,一個模組的統一規整到一塊
通用的資源可以單獨規整
特別注意:在專案中我們經常可以見到的命名比如
<color name="red">#FF0000</color>
這種命名是描述資源本身的是嚴禁在程式碼中直接使用的,因為此類資源沒有任何一點的模組劃分,也和業務沒有一絲的關係
命名總結
layout
非共有型別:{模組描述}_{佈局型別}
共有功能型別:{common}_{佈局型別}
main_act
表示主介面Activity的佈局
main_home_frag
表示主介面的子頁面HomeFragment的佈局
myorder_act
表示我的訂單的介面
myorder_list_item
表示我的訂單的列表的item
common_order_list_item
表示多個介面用到的訂單列表的item
common_taxi_order_list_item
表示多個介面用到的計程車訂單列表的item
drawable 和 mipmap
非共有型別:{模組描述}_{檢視型別}_{業務描述}_{型別}_{字尾}
共有功能型別:{common}_{檢視型別}_{業務描述}_{型別}_{字尾}
型別:_ic,_bg(貌似就這兩種了)
字尾:_normal,_pressed,_selected,_selector,_disable……
字尾預設的就是_normal,可以被省略的
main_iv_goback_ic_normal
表示主介面的返回圖示的imageview的圖示
main_iv_goback_bg_normal
表示主介面的返回圖示的imageview的背景
main_iv_goback_bg_selector
表示主介面的返回圖示的imageview的背景選擇器
common_iv_goback_ic_selector 表示通用的返回圖示的圖示選擇器
strings 和 colors 和 dimens
非共有型別:{模組描述}_{檢視型別}_{業務描述}_{字尾}
共有功能型別:{業務功能}_{檢視型別}_{業務描述}_{字尾}
字尾:_normal,_pressed,_selected,_selector,_disable……
<string name="main_home_et_password_hint">請輸入密碼</string>
表示主頁的home子頁面中的密碼輸入框的提示文字
<string name="main_home_et_password_text">123456</string>
表示主頁的home子頁面中的密碼輸入框的預設顯示密碼為123456,
訂單列表中的確認收貨按鈕的文字
<string name="order_list_item_btn_confirmreceipt">確認收貨</string>
訂單列表中的確認收貨按鈕被按下時候的文字
<string name="order_list_item_btn_confirmreceipt_pressed">確認收貨</string>
order 表示檢視功能描述,list_item_btn 是檢視型別,confirmreceipt 是業務描述
<resources>
<!--============不可直接使用的靜態資源==========-->
<string name="ok">確認</string>
<string name="completed">已完成</string>
<string name="exit">退出</string>
<string name="find">發現</string>
<!--===========共有部分 =========-->
<string name="app_name">Soar</string>
<!--訂單列表中的確認訂單按鈕文字-->
<string name="order_list_item_btn_confirmreceipt">確認收貨</string>
<!--彈框中的確認按鈕的文字-->
<string name="dialg_btn_confirm">好的</string>
<!--===========主介面 =========-->
<string name="main_home_btn_confirm">@string/ok</string>
<!--首頁和發現頁面的標題欄文字-->
<string name="main_home_title">首頁</string>
<string name="main_find_title">@string/find</string>
<!--===========主介面 end===========-->
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--============不可直接使用的靜態資源==========-->
<!--兩個靜態資源,不能直接使用的-->
<color name="red">#FF0000</color>
<color name="blue">#0000FF</color>
<!--============共有部分==========-->
<!--所有介面的標題欄的背景顏色-->
<color name="titlebar">@color/red</color>
<color name="titlebar_bg">@color/red</color>
<!--所有介面的分割線顏色-->
<color name="item_div_bg">#888888</color>
<!--所有訂單的確認按鈕的的背景色-->
<color name="order_btn_confirm">@color/red</color>
<color name="order_btn_confirm_bg">@color/red</color>
<!--============主介面模組==========-->
<!--主頁的home子頁面的標題欄背景顏色-->
<color name="main_home_titlebar">@color/red</color>
<color name="main_home_titlebar_bg">@color/red</color>
<!--主頁的發現子頁面的確認按鈕的背景顏色-->
<color name="main_find_btn_confirm">@color/red</color>
<!--主頁的發現子頁面的確認按鈕的文字顏色-->
<color name="main_find_btn_confirm_text">@color/blue</color>
<!--主頁的發現子頁面的確認按鈕被按下的時候的背景顏色-->
<color name="main_find_btn_confirm_bg_pressed">@color/red</color>
<!--主頁的發現子頁面的確認按鈕被按下的時候的文字顏色-->
<color name="main_find_btn_confirm_text_pressed">@color/blue</color>
</resources>