Android 命名規範和編碼規範

簡明概要  多寫註釋異步

1、關於命名規範佈局

對於開發項目來講確定是要有統一的規範,然而命名規範須要作到哪幾點呢?字體

 

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

 

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

 

  1)Java類文件spa

    i. Activity 命名規範: 以Activity做爲後綴, 例如 personActivity
xml

    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

 

2、關於編碼規範

  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這樣的方法,因此不如在類中定義一個字符串常量方便。

相關文章
相關標籤/搜索