Android 命名規範和編碼規範

來源:互聯網
上載者:User

標籤:

簡明概要  多寫注釋

一、關於命名規範

對於開發項目來說肯定是要有統一的規範,然而命名規範需要做到哪幾點呢?

 

    答: 首先,不能反人類。 再來就是,要望文而知其意

 

下面就來說說具體該怎麼去規範我們的代碼了。How to name?

 

  1)Java類檔案

    i. Activity 命名規範: 以Activity作為尾碼, 例如 personActivity

    ii. Adapter命名規範: 以Adapter作為尾碼,  例如 personAdapter

    iii. Entity 命名規範: 大多以Entity作為尾碼,  例如 personEntity。 值得注意的是,User是全域變數,不算實體,不用這樣來命名。

   2)資源檔

     ①layout目錄下(都用小寫好麼)

    i.  頁面配置檔案:

            以act_ 為首碼,以Activity所在的Packege作為中綴, 以Activity的名稱(去掉Activity)作為尾碼。

          如: act_person_addcoustomer.xml  表示在Person模組下的AddCustomerActivity對應的Layout布局檔案。

    ii. ListView中的item布局檔案:

          以item_作為固定首碼,清單項目的名稱作為尾碼。

        如: item_lvuserlist.xml 表示在某個頁面下有一個使用者列表,控制項名為lvUserList對應的item的layout布局檔案。

    iii. Dialog布局檔案:

          以dlg_作為固定首碼,Dialog的功能名稱作為尾碼。

        如: dlg_hint.xml  表示什麼呢?都知道吧

  ②drawable目錄下

    應該遵守以下命名規範:

      i. 對於只在一個頁面使用的資源,就以該介面的名稱作為首碼

      ii. 對於只在一個模組下多個頁面使用的資源,就以該模組的名稱作為首碼

      iii. 對於在各個模組、各個頁面都有可能使用的資源,例如上導航、下導航,以common作為首碼

3) Java類中控制項對象

    控制項類型縮寫 + 控制項的邏輯名稱(首字母大寫),如登入按鈕,可以命名為 btnLogin。

常用控制項的縮寫
控制項 縮寫 控制項 縮寫
LayoutView lv EditText et
RelativeView rv Timepicker tp
TextView tv toggleButton tb
Button btn Progress pb
ImageButton img WdbView wv
ImageView iv RantingBar rb
CheckBox chk Tab tab
RadioButton rb ListView lv
DatePicker dp MapView mv

4) Layout中控制項對象

    與Activity中對應的控制項名稱保持一致。

  如: Button btnLogin = (Button)findViewById(R.id.btnLogin);

5) string.xml中的常量

       如: loginActivity_btnLogin_text

  因為這些值大多在layout中的控制項上使用,所以以該常量所在的Activity名稱作為首碼,後面接控制項名稱,再後面就可以自由發揮了。

  另一個中是使用在Java代碼中情景,

    若和具體Activity相關,以所在Activity名稱作為首碼,和上面的一樣;

    若涉及和公用模組和控制項相關,就以common_作為首碼。

  更靈活的做法是,將其按照模組拆分為多個strings檔案,只要resoures 標籤下都是string標籤就可以了,編譯打包時會自動將同類檔案進行合并。

6) 常量命名

  只能包含字母和底線_, 字母全部大寫,單詞之間用底線_隔開 例如: START_TIME

 

二、關於編碼規範

  1) 需要分別類存放各種類

      如:

         |-src

          |---com.example.demo

            |---activity.others

            |---activity.personcenter

            |---adapter

            |---db

       依次還有: engine、 entity、 interfaces、 listener、ui、 utils 。。。

 

  2) 要怎麼使用findViewById 語句?

  3) Layout中的常量,要在資源strings.xml中定義

  4) Layout中所有控制項的字型大小,都定義在dimens.xml中

  5) 在Activity中,定義新的生命週期,從而將onCreate方法拆分為以下3部分:

     initVariables: 初始設定變數(包括Intent上的資料和Activity內部使用的變數)

     initViews: 載入Layout布局檔案,初始化控制項

       loadData: 調用MobileAPI

  6) 堅持使用fastJSON自訂實體來作為MobileAPI的資料載體

  7) 頁面之間傳值,堅持使用Intent攜帶序列化實體資料的方式。禁止為了省事使用全域變數進行傳值的方式。

  8) 為控制項添加事件,使用.setOnclickListener();

  9) Activity中不要嵌套內部類,盡量都獨立出來

  10)所有Adapter,都放在adapter這個包中; Adapter繫結資料,一律為ArrayList<自訂可序列化實體>; 在Adapter中使用 ViewHolder實體類。

  11) 實體不要在不同模組間共用,但是可以在同一個模組下的不同頁面之間共用。

  12) 為節省記憶體,請使用ArrayList<自訂實體>, 而不是HashMap

  13) 圖片處理,請統一使用第三方組件ImageLoader 或 Fresco 來進行非同步載入

  14) 什麼時候使用SharedPreference? 對於簡單的配置資訊,設定頁面的各種開關; 而對於複雜的對象,比如說User類,還是要儲存到本地檔案中為好。

  15) 盡量使用ApplicationContext 代替 Context, 否則會引起記憶體流失。 當然,也不是任何地方 ApplicationContext都可以代替Context,使用不當會導致崩潰。

  16) 資料類型轉換一定要進行校正。

  17) 使用常量來代替枚舉。    枚舉的每一個值只能是一個整數,而沒有toString這樣的方法,所以不如在類中定義一個字串常量方便。

 

 

 

 

          

 

Android 命名規範和編碼規範

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.