Android 開發規範

編程思想規範

1)對於字符串的匹配,使用最細匹配規則,
   如:對醫生詳情連接的匹配使用url.startsWith("http://m.1ping.com/Doctor/Del/dil?did=")代替url.startsWith("http://m.1ping.com")
2)對數組的操作,需要做數組下表是否會越界的判斷處理,以出現數組越界異常。

代碼書寫規範

1)方法之間的間距爲一個回車


類文件命名規範

 滿足大駝峯規則:
1)每個單詞首字母大寫。如MyStudentCount;
2)且爲名詞;
3)對於工具類:使用Utils結尾


方法命名規範

 滿足小駝峯規則:
1)除第一個單詞之外,每個單詞首字母大寫。如getColor;
2)且爲動詞;


Id命名規範

1:對應view的前綴
 控件              Id命名縮寫前綴 
 botton               btn_
 imageView            img_
 editText             edit_
 TextView             txt_
 linearLayout         llay_
 realtiveLayout       rlay_
 gridView             grid_
 ListView             lv_
 WebView              webv_
 ViewFlipper          vflp_
 ImageButton          imgb_
 RadioButton          rbtn_
 CheckBox             cbox_
 ProgressBar          prgb_
 AutoCompleteTextView actv_
 GridLayout           glay_
 FrameLayout          flay_
 TableLayout          tlay_
 ScrollView           scrlv_
 Gallery              glry_
 TimePicker           tmpic_
DatePicker           dtPk_
SeekBar              skBar_
ZoomControls         zmCtl_
VideoView            vdeov_
RantingBar           ratbar_
Tab                  tab_
Spinner              spn_
MapView              mapv_
TextSwitch           txtwwt_
ImageSwitch          imgswt_
Viewpager            vp_


代碼中變量命名

1:常量:全部大寫,採用下劃線命名法.例如:MIN_WIDTH
2:靜態變量:全部大寫,多個單詞則以_分開,比如BOOLEAN_FLAG
3:跟控件相關的變量:添加前綴,並滿足小駝峯規則:edtvPhone
4:普通變量,滿足小駝峯規則
5:Map對應的變量添加map前綴,HashMap添加hmap前綴

注:小駝峯規則:除第一個單詞之外,其他單詞首字母大寫。如myStudentCount;


圖片命名規範

遵從:功能從最大到最小,最範到最具體
大範圍_中範圍(...)_小範圍
如 bg_banner_weather
bg_banner_message
前綴縮寫:
bg:背景
icon:小圖標


某些功能命名規範

功能 變量命名 id命名 內容命名 點擊事件命名
用戶名 username   userName  
暱稱 nickname **_nickname nickName  
頭像 avatar **_avatar   **Avatar
格言 motto **_motto motto  
find     find
二維碼 ecode **_ecode ecode  
返回鍵 back      btn_back   goBack
左側按鍵 btnLeft     btn_left    
電話號碼框 edtvPhone   edtv_phone phone  
密碼框 edtvPwd edtv_pwd pwd  
密碼確認 edtvPwdSure edtv_pwd_sure pwdSure  
驗證碼框 edtvVcode edtv_vcode vcode getVcode
分享 **Share **_share share goShare
點贊 **Support **_support support goSupport
評論 **Comment **_comment comment goComment
收藏 **Collect **_collect collection addCollect
經度 longitude      
緯度 latitude      
object obj      
關閉 close      
打開 open      
向服務器請求 request**     request
獲取普通數據 get     get
我的 mine      
醫生 doctor      


資源文件夾中資源命名規範

規定:
  1)資源文件全爲小寫
2)相應文件前添加相應的前綴
3)在前綴後添加相應的功能
  4)用_分隔多個功能,功能範圍從大到小

1:對於全局使用(唯一性)的資源命名:line_blue

2:按鈕點擊事件選擇器:selector_
   用下劃線分割功能,前面的顏色值爲默認顏色,後面的顏色值爲按下時的顏色。
   如:selector_white_black
       selector_round_rect_white_black
3: 形狀文件:(round/rect/round_rect)_
4: 圖片文件:(icon/bg)_
5: 動畫文件
淡入     fade_in
淡出     fade_out
從下方推入   push_down_in
從下方推出   push_down_out
推像左方     push_left
從頭部滑動進入  slide_in_from_top
變形進入       zoom_enter
滑動進入       slide_in
中間縮小      shrink_to_middle

6: 佈局文件:
Activity對應視圖: activity_
fragment對應視圖: fragment_
include加載的視圖:layout_
其他控件對應視圖:  layout_
分割線視圖:       line_

功能比較具體的視圖可添加功能縮寫爲前綴:如對話框:dialog_

7:color,dimens資源文件命名規範

對於主題顏色:統一前綴 theme_color_

            後加顏色英文單詞 gray_

            區分同一顏色值的英文字母后綴(注英文字母abc不代表等級) a

如:theme_color_blue_a   theme_color_blue_b

對於margin,padding,textSize等dimens值:統一前綴 theme_margin_   theme_padding_   theme_text_size_

                                      後加對應數值的英文單詞作爲後綴 five   ten   fourteen

如:theme_margin_five   theme_padding_ten   theme_text_size_fourteen


註釋規範

1:類開頭註釋:
/**
*需要別的地方可以看到
*/

2:方法前註釋:
/**
*需要別的地方可以看到
*/

3:塊註釋:
/*
*因爲別的地方不會看到
*/

4:執行步驟或者變量註釋:
// 並將此註釋添加在備註釋部分的後端,而不是上端     
如:private int name; //名字

5:靜態變量使用:
/*** 這個註釋是這個意思  */  放在變量上方

6:一段代碼邏輯的註釋,保持一行
/*這段是幹嘛用的**/

7:添加TODO規範
必要的地方需要添加TODO,不需要的TODO及時刪除。


文檔結構規範


1. 爲了防止空指針問題,需要在屬性的get方法做判斷

public Today getToday() { 
if(today==null){
today = new Today(); 
} 
return today; 
}



資源文件

drawable文件
全局性定義: a_控件_特性,如a_tab_selector_checked_bg.xml  表示tab控件中,選擇的背景定義
view持有定義: 所屬佈局名_控件_特性  如 activity_main_tab_health.xml 表示activity_main中tab類型的控件健康檔案定義


Log日誌規範

1)info級別:
URL路徑

請求參數

請求返回數據

跟服務器打交道的數據,都在這個類

2)error級別:
這個一般是系統輸出的崩潰日誌。

3)debug級別:
一般日誌,就是我們平常需要跟蹤一些調用順序,一般都在這個類別加。最常用的就是這個。

4)warn級別:
一般try catch 的exception就是這個類別輸出日誌。

5)將Tag存放到數據庫


Android Studio上發佈版本規範

發佈安裝包命名規範

1、ypxs_版本名稱_渠道號.apk


GIT操作規範

1、分支命名規定:
  pack_44:分支爲用於打包的代碼  pack代表打包,44代表開發版本號
  dev_44_im:分支爲用於開發版本爲44,在im部分進行功能修改

2、使用主幹master開發


發佈版本步驟:

1、檢查App工程目錄下的build.gradle文件中的 版本號版本名稱 是否正確。

2、檢查App工程目錄下的build.gradle文件中的buildTypes的release是否配置爲正式服務器,及正確添加混淆:如下代碼顯示

buildTypes {
release {
minifyEnabled true
shrinkResources true
signingConfig signingConfigs.config
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

//正式發佈的配置,注意:星號只是保密的一種代寫
manifestPlaceholders.put("BaiduMobAd_KEY",'8c****f086')
manifestPlaceholders.put("UMENG_KEY",'556592a1******0044e9')
buildConfigField 'String','Base_Api_URL','"http://api.1ping.com"'

//渠道包重命名
applicationVariants.all { variant ->
variant.outputs.each { output ->
 def outputFile = output.outputFile
 if (outputFile != null && outputFile.name.endsWith('.apk')) {
     // 輸出apk名稱爲boohee_v1.0_2015-01-15_wandoujia.apk
     def fileName = "ypxs_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
     output.outputFile = new File(outputFile.parent, fileName)
  }
}
}
}
}

3、檢查上述文件之後,目前需要到開發代碼額啓動頁代碼中查看是否爲首發狀態。

首發狀態:啓動頁圖片爲靜態的並且爲首發圖片,不加載多張動態圖片,所以動態加載並緩存三張啓動頁的代碼需要註釋掉

非首發狀態:啓動頁基本頁爲醫評原生啓動靜態頁,並且將代碼中加載三張啓動頁的部分開放出來。

4、上述檢查完了,及可以打開Android_studio右邊豎排上的Gradle工具,選擇app》build,在build下       

   assembleRelease:雙擊即可進行多渠道的打包

assemble+渠道號(如assembelAzsc001):雙擊即進行單渠道打包

5、在打包結束後,可以在工程目錄下的app》build》outputs》apk文件夾下看到我們需要的安裝包。

6、
1)將打包好的版本交由測試進行測試,並告知更新的內容
2)測試將安裝包測試,當確定無bug的情況下將新版本交給運維


文本輸入框規範

控件屬性

1.手機號碼、身高等數值類型

android:inputType="number"

2.密碼類型

android:inputType="textPassword"

正則表達式

1.驗證郵箱的格式:\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?

2.驗證身份證格式:

15位身份證:^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$

18位身份證:^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$

3.驗證手機號格式:(\\+\\d+)?1[34578]\\d{9}$

4.驗證中文字符格式:^[\u4E00-\u9FA5]+$



國際化多語言說明

1.Android字符串國際化

只要在 res 文件夾下新建對應語言的 values 文件夾就好了

如,英語環境下的,文件夾命名爲:values-en 

中文環境爲:values-zh

當某一個資源沒有在語言環境的對應的資源集合中找到時,就會使用 values 下的資源。 
若某一個語言環境沒有在項目中定義語言環境,那麼也會使用 values 下的資源。 

2.圖片國際化

同理。 在 res 下新建 drawable-zh 文件夾,存放中文環境下的圖片

新建 drawable-en 作爲英語環境下的圖片


Android多國語言文件夾文件彙總如下:

中文(中國):values-zh-rCN
中文(臺灣):values-zh-rTW
中文(香港):values-zh-rHK
英語(美國):values-en-rUS
英語(英國):values-en-rGB
英文(澳大利亞):values-en-rAU
英文(加拿大):values-en-rCA
英文(愛爾蘭):values-en-rIE

英文(印度):values-en-rIN
英文(新西蘭):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA

阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亞文:  values-bg-rBG
加泰羅尼亞文:values-ca-rES
捷克文:values-cs-rCZ
丹麥文:values-da-rDK
德文(奧地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德國):values-de-rDE
德文(列支敦士登):values-de-rLI
希臘文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美國):values-es-rUS
芬蘭文(芬蘭):values-fi-rFI
法文(比利時):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法國):values-fr-rFR
希伯來文:values-iw-rIL
印地文:values-hi-rIN
克羅里亞文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亞文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韓文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脫維亞文:values-lv-rLV
挪威博克馬爾文:values-nb-rNO
荷蘭文(比利時):values-nl-BE
荷蘭文(荷蘭):values-nl-rNL
波蘭文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
羅馬尼亞文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亞文:values-sl-rSI
塞爾維亞文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛語:values-tl-rPH
土耳其文:values--r-rTR
烏克蘭文:values-uk-rUA
越南文:values-vi-rVN

多語言文件歸類規範

1.strings_com:放置有關全局、搜索、設置、dialog提示語等string文字。

2.strings_doc:放置醫生、醫院、科室、會診、資質認證、排行榜等與醫生有關的string文字。

3.strings_im:消息模塊。

4.strings_news:有關資訊、微課堂的。

5.strings_user:登錄、註冊、會員信息、健康檔案、任務、訂單等string文字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章