Android代碼規範

1、Android命名規範

  • Java類文件命名規範

    1、 Activity命名規範:以Activity作爲後綴。例如:PersonActivitty

    2、Adapter命名規範:以Adapter作爲後綴 。例如:PersonAdapter

    3、Entity命名規範:大多以Entity作爲後綴。例如:PersonEntity

    4、其他的類似於前面的要求。例如:Fragment,PopupWindow等等

  • 方法命名和實體變量等命名

    方法命名需要通俗易懂,例如:初始化頁面數據 initDatas 首字母小寫,第二個單詞首字母大寫,實體類屬性名、局部變量、全局變量都遵循此規則,注意與常量區分開來
    常用方法命名:

    方法名 說明
    initXX() 初始化相關方法,使用init爲前綴標識,如初始化佈局initView()
    isXX() checkXX()方法返回值爲boolean型的請使用is或check爲前綴標識
    getXX() 返回某個值的方法,使用get爲前綴標識
    processXX() 對數據進行處理的方法,儘量使用process爲前綴標識
    displayXX() 彈出提示框和提示信息,使用display爲前綴標識
    saveXX() 與保存數據相關的,使用sav爲e前綴標識
    resetXX() 對數據重組的,使用reset前綴標識
    clearXX() 清除數據相關的
    removeXXX() 清除數據相關的
    drawXXX() 繪製數據或效果相關的,使用draw前綴標識

  • 資源文件命名規範

    1、頁面佈局文件。以act_作爲前綴,以Activity所在的Package作爲中綴,以Activity的名稱(去掉Activity)作爲後綴。注意都是小寫。例如:對於Person這個模塊下的AddCustomerActivity,它的layout文件就應該是:act_person_addcustomer.xml

    2、ListView的item佈局文件。以item_作爲固定前綴,列表項的名稱爲後綴。注意都是小寫。例如:某個頁面下有一個用戶列表,控件名爲lvUserList,那麼item的layout就應該是:item_lvuserlist.xml

    3、Dialog佈局文件。以dlg_作爲固定前綴,Dialog的功能名稱作爲後綴。注意都是小寫。例如:dlg_hint.xml

    4、drawable目錄下文件命名規範。drawable目錄下的資源,大部分是圖片,此外,還有一部分xml文件,用於Selector,background等。但無論是圖片還是xml文件,都應該遵循以下命名規範:

    • 對於只在一個頁面使用的資源,就以該頁面的名稱作爲前綴。
    • 對於只在一個模塊下多個頁面使用的資源,就以該模塊的名稱作爲前綴。
    • 對於在各個模塊、各個頁面都有可能使用的資源,比如說上導航、下導航,以common作爲前綴。
  • Java類中控件對象的命名規範

    控件類型縮寫+控件的邏輯名稱(首字母大寫),比如登錄按鈕,就可以命名爲btnLogin
    常用控件的縮寫

    控件 縮寫 控件 縮寫
    LinearLayout ll EditText et
    RelativeLayout rl TimePicker tp
    TextView tv ToggleButtton tb
    Button btn ProgressBar pb
    ImageButton ib WebView wv
    ImageView iv RantingBar rb
    CheckBox cb Tab tab
    RadioButton rb ListView lv
    DatePicker dp MapView mp

  • Layout中控件對象的命名規範

    控件縮寫加上下劃線加上邏輯名稱
    例如:
    Button btnLogin=(Button)findViewById(R.id.btn_login);

  • strings.xml常量的命名規範

    因爲這些值大多在layout中的控件上使用,所以以該常量所在的Activity名稱作爲前綴,後面接控件名稱,在後面就自由發揮了,比如登錄頁面上顯示的按鈕文字,就可以命名爲:loginActivity_btnLogin_text
    如果是在java代碼中使用,可能出現在Activity中,也可能出現在工具類Utils中,這個時候如果跟具體的Activity相關,那麼規則跟上面一致,以所在Activity名稱作爲前綴,如果涉及到公共模塊和控件相關,就以common_作爲前綴。
    strings.xml的規則,我們以模塊來進行劃分,例如:strings_person.xml,需要注意的是常量命名時爲了避免各個模塊的strings文件常量重名的問題,需要在每個常量前面加上模塊名稱前綴
    例如:person_loginActivity_btnLogin_txt

  • 常量命名

    只能包含字母和下劃線_,字母全部大寫,單詞之間使用下劃線個隔開。
    例如:PERSON_ID

2、Android編碼規範

  • 分門別類存放各種類

    工具類、實體類、ui、Listener、Interface、adapter等專門創建各個的包,如果是activity或者fragment又要以模塊區分,例如:com.heart.activity.person com.heart.activity.search

  • 使用findViewById語句

    控件聲明爲Activity級別,如果有多個相同的控件,可以以“,”隔開
    例如:private TextView tvName,tvDescription,tvSex;

  • layout和java文件中禁止直接出現中文

    需要首先在strings文件中定義,以getResource或者@string方式獲取

  • Layout中所有控件的字體大小,邊距等,都定義在dimens.xml中

    例如:

   <!--字體大小-->
   <dimen name="font_size_tiny">10sp</dimen>
   <dimen name="font_size_small">12sp</dimen>
   <dimen name="font_size_normal">14sp</dimen>
   <dimen name="font_size_normal_high">16sp</dimen>
   <dimen name="font_size_large">18sp</dimen>
   <dimen name="font_size_large_high">20sp</dimen>
   <dimen name="font_size_xlarge">22sp</dimen>

   <!--邊距大小-->
   <dimen name="offset_2dp">2dp</dimen>
   <dimen name="offset_4dp">4dp</dimen>
   <dimen name="offset_6dp">6dp</dimen>

這樣做可以統一樣式,方便修改,如果有多個相同屬性我們還可以定義style。

  • 堅持使用Gson,fastJson自定義實體來作爲API數據的載體

    JSONObject、JSONArray、HashMap<String,Object>、ArrayList<String,Object>等不能夠序列化的實體禁止使用。除非爲了實現某個算法,臨時使用。

  • 頁面之間的數據傳遞,堅持使用intent、budle等攜帶數據的方式,禁止使用全局靜態變量的方式。

  • 爲控件添加事件統一使用實現onItemClickListenrer接口的方式

    例如:並且強烈要求每個點擊事件都要加上註釋

      //綁定監聽
       btnBack.setOnClickListener(this),
       btnBack.setOnClickListener(this)


      @Override
      onClick(View v){
       switch(v,.getId){
         case R.id.btn_back:
            //銷燬當前activity
            this.finished();
           break;
             case R.id.btn_back:
             //登錄
             .......
           break;
     }     
    }

禁止直接在Layout中直接綁定點擊事件

<Button  android:OnClick=".."......>

  • Activity中禁止嵌套內部類,儘量獨立出來,放到對應的包中

  • Adapter的編碼規範

    1、所有Adapter類全部放到Adapter的包中。

    2、Adapter綁定的數據如果是固定的數量使用數組<自定義實體類>,否則一律使用ArrayList<自定義實體類>

    3、在Adapter中創建適合自身的ViewHolder類,統一命名爲ViewHolder。

  • 圖片的處理統一使用第三方組件,ImageLoder或Fresco來進行異步加載

  • 使用SharedPreferences存儲簡單數據,例如:開關狀態等。對於複雜的數據類型,建議存儲到本地文件中。

  • 儘量使用ApplicationContext代替使用Context,否則會引起內存泄漏,但是跟窗口週期相關的必須使用Context。

  • 數據類型轉換一定注意校驗

  • 使用常量代替枚舉類型

發佈了87 篇原創文章 · 獲贊 126 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章