Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

Android 开发规范

$
0
0

编程思想规范

1)对于字符串的匹配,使用最细匹配规则,
   如:对医生详情连接的匹配使用url.startsWith("http://m.1ping.com/Doctor/Detail/doctorDetail?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及时删除。

文档结构规范

model文件

单model

复合model

 1. 为了防止空指针问题,需要在属性的get方法做判断
public Today getToday() { 
if(today==null){
today = new Today(); 
} 
return today; 
}

view文件

viewmodel文件

资源文件

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文字。

作者:hai1059876295 发表于2016/10/14 11:19:04 原文链接
阅读:35 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>