編程思想規範
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文字。