cece—android开发规范v1

包目录说明

-constant-常量
-db-数据库相关,数据库采用xutils
-event-数据响应/事件结构体
-model-模型
    --buiness-业务类
    --entity-实体
    --param-参数对象
-network-网络请求
-ui
    --activity activity控制活动
    --adapter 适配器
    --fragment 具体布局
    --presetner 业务接口 
    --presetnerimpl 业务具体实现 
   --widget 各种自定义控件
-util 工具类

资源命名

图片资源

图片资源是App中内存占用最高的部分,而内存占用大小和图片的分辨率成正比,原则上项目中使用的所有分辨率较大的PNG图片资源都要尽量进行.9.png格式处理,通过减少图片分辨率来降低内存占用。
这里描述图片命名规范的范围不仅指放在drawable-hdpi、drawable-xhdpi中的png图片,也包括drawable文件夹下面采用xml生成的图片

静态图片

背景图片

a) 通用背景图片命名:bg_general_描述.png
b) 子模块背景图片命名:bg_模块名_描述.png
例如:bg_general_title.png、bg_account_logo.png

按钮图片

a)    通用按钮图片命名:btn_general_描述.png
b)  子模块按钮图片命名:btn_模块名_描述.png
例如:btn_general_ok.png、btn_account_login.png

普通Icon图片

a)    通用Icon图片命名:ic_general_描述.png
b)  子模块Icon图片命名:ic_模块名_描述.png
例如:ic_general_header.png、ic_settings_network.png

动态图片

背景图片

a) 通用背景图片命名:

 bg_general_描述_selected[unselect|pressed].png,
对应drawable文件夹下selector命名:bg_general_描述_selector.xml

b) 子模块背景图片命名:

bg_模块名_描述_selected[unselect|pressed].png,
对应drawable文件夹下selector命名:bg_模块名_描述_selector.xml

按钮图片

a) 通用按钮图片命名:

btn_general_描述_selected[unselect|pressed].png,
对应drawable文件夹下selector命名:btn_general_描述_selector.xml

b) 子模块按钮图片命名:

 btn_模块名_描述_selected[unselect|pressed].png,
对应drawable文件夹下selector命名:btn_模块名_描述_selector.xml

通用字符串资源

通用的字符串资源一般不与特定模块关联,字符串定义直接按中英文翻译即可。例如在strings.xml文件中定义如下字符串资源:


Yes
No
Load More
Cancel
Save
Add

子模块字符串资源

子模块字符串资源定义格式规范:子模块名_英文描述。例如在strings.xml文件中分别定义如下字符串资源:

Sorry, an error occurred while attempting to delete the %s.
Sorry, %s could not be refreshed at this time. Please try again later.
Sorry, an error occurred while uploading the %s.


Title
Description
Enter a title here

颜色资源

默认颜色资源

为了防止颜色资源重复定义,便于统一管理,会在colors.xml文件中定义整个应用默认的几种主色调,颜色的英文名字定义不要与模块名关联,例如:


#E6E6E600
#CCCCCC00
#FFFFFF00
#00000000
#EEEEEE00
#7E7E7E00

子模块特有颜色资源

如果子模块有特殊的定制需求,可以在colors.xml文件中定义对应模块的颜色资源,颜色的英文名定义规范:模块名_描述_color[background]。例如:


#AAAAAA00
#BBBBBBB00
#CCCCCC00

布局资源

自定义布局的命名规范如下:

  • Activity content view:activity_模块名_描述.xml
  • Fragment content view: fragment_模块名_描述.xml
  • Dialog对话框布局:dialog_模块名_描述.xml
  • 列表项布局:list_描述_item.xml
  • 子模块其他类型布局:view_模块名_描述.xml

类和接口命名

使用大驼峰规则,用名词或名词词组命名,每个单词的首字母大写。
以下为几种常用类的命名:

activity类,命名以Activity为后缀,如:LoginActivity
fragment类,命名以Fragment为后缀,如:ShareDialogFragment
service类,命名以Service为后缀,如:DownloadService
adapter类,命名以Adapter为后缀,如:CouponListAdapter
工具类,命名以Util为后缀,如:EncryptUtil
模型类,命名以BO为后缀,如:CouponBO
接口实现类,命名以Impl为后缀,如:ApiImpl

成员变量规范

方法命名规则

在layout布局文件中,所有控件ID采用小写下划线命名法。
以下为几种常用方法的命名:
初始化方法,命名以init开头,例:initView
按钮点击方法,命名以to开头,例:toLogin
设置方法,命名以set开头,例:setData
具有返回值的获取方法,命名以get开头,例:getData
通过异步加载数据的方法,命名以load开头,例:loadData
布尔型的判断方法,命名以is或has,或具有逻辑意义的单词如equals,例:isEmpty

控件View变量命名规则

由于采用了xutils3 框架的注解框架,所以对应的控件View的类成员变量也采取和Id一致的命名规则,例如:

/** 登录按钮 **/
@ViewInject(R.id.btn_login)
Button btn_login;
/** 注册按钮 **/
@ViewInject(R.id.btn_register)
Button btn_register;
/** 用户名**/
@ViewInject(R.id.et_account)
EditText et_account;
/** 密码 **/
@ViewInject(R.id.et_pwd)
EditText et_pwd;
@ViewInject(R.id.tv_title)
TextView tv_title;

控件缩写对照表

控件 缩写 控件 缩写
TextView txt EditText et
Button btn ImageButton ibtn
ImageView img ListView list
RadioGroup rg RadioButton rbtn
ProgressBar progress SeekBar seek
CheckBox ck Spinner spinner
TableLayout tablel TableRow row
LinearLayout layout RelativeLayout rlayout
ScrollView scroll SearchView search
TabHost host TabWidget widget
PopupWindow pw

其他成员变量命名规则

其他类型的成员变量命名规则为:m+类名,Boolean类型的成员变量命名规则为:is+逻辑名。例如:

private Context mContext;
private long mUserId;
private boolean isToOpenGps = false;

常量命名

全部为大写单词,单词之间用下划线分开。

  public final static int PAGE_SIZE = 20;

成员变量书写顺序

依次是:公开的静态final常量、私有的静态final常量、公开成员变量、私有成员变量、控件View变量放在最后。

禁止的编码规范

  • 禁止在不同地点出现相同或相似的逻辑代码块或layout代码块
  • 禁止只出现一次的成员变量,禁止出现可以简单计算替换的成员变量和临时变量
  • 禁止在一块代码中插入没有上下文的代码
  • 禁止在BroadcastReceiver的onReceiver()方法中注册观察者,使用线程,或Handler异步任务
  • 禁止在Activity之间或者Activity和Service之间互相持有对方并且直接调用对方的函数或成员变量,如finish(),stopSelf()等方法
  • 禁止同时在Mainfest文件和代码或者layout和代码中,分散初始化业务/控件相关属性
  • 禁止一个实例化对象的成员变量在另外一个对象中直接被修改,特别是View的属性值只能由持有这个View的对象修改
  • 禁止将AsycTask用于执行超长时间的异步任务,如网络长时间连接;禁止将AsycTask用于不需要后台任务跟UI线程交互的场景
  • 禁止在接收启动广播中读写文件、SharePreference、数据库等阻碍系统启动的费时任务

建议的编码规范

  • 建议不要在Adapter的getView()、bindView()这类对性能敏感的函数中构造新对象或Listener对象
  • 建议静态对象或者单例模式中不要持有Activity(context)或Bitmap等大型成员对象
  • 建议异步任务运行后,主线程退出时执行异步任务的取消或中止操作
  • 建议不要把Handler定义成局部变量来使用,不要在单个类对象或者单个线程中创建多个Handler对象
  • 建议在以on开头的回掉函数中不使用for循环、数据库操作、文件操作等费时任务,例如onCreate()、onResume()、onPause等方法中
  • 建议不在主线程(UI线程)中执行数据库查询操作或Bitmap创建解析操作
  • 建议在两个模块传递参数的时候,不要传递List列表的索引或者位置参数

你可能感兴趣的:(cece—android开发规范v1)