公司安卓項目規範,安卓項目規範

來源:互聯網
上載者:User

公司安卓項目規範,安卓項目規範

1:項目代碼目錄結構: 

 這裡是整個項目的包結構,保密原因在這裡就不貼了。

 

2:命名規範:

2.1、java代碼檔案命名規範:

 a:盡量使用英文命名,單詞不縮寫,不要使用底線拼接,而且採取首字母大寫拼接。

 b:一般的java代碼檔案命名以繼承名類名為尾碼,例如:繼承自Activity的檔案可寫成 MainActivity.java。繼承Adapter可以寫成UserListAdapter.java。

 c:一些純粹的類名命名遵守以大的歸類為首碼,可自定,例如:InfoRank.java。

 d:首字母及多個單詞拼接每個單詞首字母必須大寫,不要用底線串連。例如UserInfo.java.    不要寫成user_info.java。

 e:java類裡面的方法名以小寫開始,如果多個單詞,從第二個單詞開始首字母大寫,例如:     getUserList()。

 f:對於java類中成員變數,要採用英文單詞,首字母小寫,多個單詞從第二個單詞開始首     字母大寫拼接,不要使用底線拼接。例如:userMoney。

 g:對於java類中的常量,只能包含字母和_,字母全部大寫,單詞之間用_隔開。例如:     MAX_AGE。

 

2.2、布局檔案命名規範:

 a:命名以全小寫,單詞不縮寫,多個單詞以底線拼接,例如:user_info_list.xml。

    user_info_list_item.xml(在使用listview時候就會用到一個子布局檔案)。

 b:布局檔案的命名可參照代碼檔案的命名,一般來說一個頁面一個xml,對應也會有一個     java代碼,對應的java和xml命名可相同。如果BetRecord.java對應bet_record.xml

 c:對於布局檔案裡面各個控制項的命名,要遵循以檔案名稱為開始。例如:在bet_record.xml,     退回鍵:@+id/bet_record_back,列表@+id/bet_record_listview,確定鍵    

@+id/bet_record_submit,其他的控制項要根據實際意義來命名,例如:     

bet_record_no,bet_record_money,確保每個控制項的名字在整個項目裡面是唯一的。

 

2.3、圖片資源檔命名規範:

a:命名以全小寫,單詞不縮寫,多個單詞用底線拼接。

b:圖片的命名必須唯一,整套圖片直接存放於drawable-hdpi檔案夾下,以命名分類。

c:按鈕類圖片命名以button為首碼,例如button_ok,button_cancel。

d:背景類圖片命名以bg為首碼。例如:bg_top,bg_listview。

e:顯示類圖片命名以view為首碼。

f:展示類圖片命名以dis為首碼,如投影片播放。

g:臨時用圖命名以tmp為首碼。

h:其他圖上命名以other為首碼。

 

3、代碼規範

a:所有代碼都應該對齊,排列整齊規則。如果只有一行注釋,盡量使用//;如果多行就使    用/*    */。代碼之間有必有的空行,但是不要空白一大片。對於不要的代碼和注        釋,應該都刪除掉。對於注釋了但是可能還要用的,可以不刪除。對於每個類裡面定義    的變數,應該一行一個,在欄位的後面注釋具體含義。

b:Activity與Activity儘可能減少參數傳遞。使得每個類都相對獨立。而且每個Activity裡    面的設配器和非同步程式或者其他,能獨立出去盡量獨立出去。寫成一個類,或者一個通用    的方法。這也更符合java物件導向的思想,使得代碼更加簡潔清晰。便於維護。每個類    前面都要注釋是什麼功能,什麼介面,需要接收那些參數(包括名字和代表的含義)。

c:對於任何一個方法如果在幾個類裡面都有(2次以上),應該提取出來,寫成一個通用的,    去調用,而不是每個類裡面複製一份。便於維護,也減少代碼重複。比如計算倒計時的    方法等。

d:對於要經常擷取的值,應該在一開始就擷取一次,然後定義一個靜態變數,每次去調用    這個變數,而不是每次去讀取那個方法,比如擷取手機螢幕,一開始就擷取一次,然後    儲存到靜態變數裡面,而不是每次去擷取手機螢幕。

e:對於樣式相同的控制項,應該把樣式提取出來,統一定義到style.xml裡去,像返回鍵,繼    續購彩按鈕,以後定義這樣的控制項,只有定義一個id,調用style就可以了。

f:不要重用父類的handler,對應一個類的handler也不應該讓其子類用到,否則會導致       message.what衝突。

g:activity中在一個initUI()方法初始化所有控制項,並且在initListener()方法裡面設定所有監    聽事件,View.OnClickListener中處理所有的監聽,但是對於具體處理的商務邏輯可以    寫成一個方法,監聽裡面調用就可以了。

h:資料一定要效驗,例如字元型轉數字型,如果轉換失敗一定要有預設值。服務端響應數    據是否有效判斷。比如網路請求返回code是否是”0000”。所有的校正都寫成一個         validatae()方法。通過返回Boolean值來確定是否通過校正,不要和商務邏輯寫在一起。

i:有的按鈕要避免重複點擊。比如網路請求,點擊之後就禁用掉。待非同步處理完才釋放。

j:對於字型都是使用sp為單位,對於高度、寬度、縮排等都使用dip為長度單位,所有布    局都要自適應螢幕,可以在Eclipse選擇3.2、4.0、5.4等不同螢幕來查看布局是否通配,    是否變形。排列異常等問題。

k:網路載入、檔案處理、資料庫處理等問題不要放在主現場,都要放在非同步去操作。

l:不要使用非同步載入和hander搭配使用,一般使用非同步就可以了。Hander是和線程搭配使    用的。一般來說,使用非同步比較耗資源,但是效率高。使用handler相對來說不耗資源,    但是效率較低,如果兩者同時使用,又耗資源又效率低,建議不要一起使用。二者選一。

m:對於每一個對象在使用的時候都要判斷,再去使用,避免因為資料變動或者無資料時導    致報錯。其方法可以借鑒下面的代碼:

   1) 對於字串  可以調用Function.strNotNull(str);

   2) 對於對象if(obj!=null)

   3) 對於集合Function.listNotNull(list);  Function.mapNotNull(map);

   4)對於數組Function.arrayNotNull(array);

n:所有靜態(static)不可變的(final)常量,都寫到ConstantUtil.java裡面。

   所有靜態,可變的。需要共用的,都寫到VariateUtil.java。比如螢幕尺寸;

   所有的通用的函數和方法都寫到FunctionUtil.java。其他的可以拓展。

o:對於定義變數,能定義成局部就不要定義到全域的裡面去,這樣便於記憶體回收。字串拼接的不要使用String,而是使用StringBuffer。對於迴圈,不要把變數定義在裡面。這樣也可以減少記憶體的分配。例如

   Person person = null;//定義在迴圈外面

   int size = list.size();//避免重複調用

   For(int i; i < size; i ++){

  person = list.get(i);

 //再去使用person對象

   }

p:對於一個列表,如果使用的欄位比較少,可以定義多個List<String>,但是如果使用比較    多,就應該把這些欄位定義成一個Bean對象,然後把資料存放區到List<Bean>。

q:使用靜態變數方式實現介面間共用要謹慎。每個單獨的類不要在裡面定義static變數。

 

..............待補充.............

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.