1. 程式人生 > >Android 資原始檔命名規範

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>