簡明概要 多寫註釋異步
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這樣的方法,因此不如在類中定義一個字符串常量方便。