框架要求 :
1 . 编码格式统一采用 UTF-8 , 开发工具统一使用 androidstudio . java统一使用
2 . 目前已采用框架 MVP MVC , 已有的目前不再变化 , 后续统一采用MVP . (除开基本的简单逻辑跳转外)逻辑块尽量都放入impl中 . Activity和Fragment尽量保证只有控件的变动.
3 . 大体框架保持2套左右就行,更换新的框架和技术,例如 rxjava , 布局文件注解获取id 等 , 需其他人同意之后才能在项目中使用 , 自己学习可自行使用Demo练手 .
4 . 会统一使用一个项目基础框架 ( 包括 , 首页[3Item情况] , 工具类 , 无限轮播 , recylerAdapter )
5 . 统一采用基础包名规范
5.1 adapter -- > 所有adapter放入在内
5.2 base -- > 所有基类 ( 内层再根据所属范围进行分包归纳 )
5.3 bean -- > 所有的实例类
5.4 mvp -- > 所有mvp相关的接口和实现类
mvp-presenters -- > 功能类接口
mvp-views -- > 布局类接口 ( 包含网络接口 , 因为大部分网络请求需要直接变动UI)
5.5 ui -- > 所有布局类 分为 activity , adapter , fragment 分别放入对应的布局类即可
5.7 constance 常量包名 所有静态常量都放在该包名下
5.7 net 网络请求框架等网络请求的额外需要内容放在该包内
5.8 view -- > 自定义view使用
6 . 用户类一定要复写toString , 将所有参数都归纳在内 .
命名规则:
所有命名不可出现以数字为识别的命名,例如 tv1,tv2,tv3 . Activity1 , Activity2 , Activity3 .
所有常量 和 静态变量 全局变量 一定要进行注释 , 否则交接的人会很多问题 .
类名规则
1 : Activity 命名一律使用 模块名+Activity 的方式。例如,LoginActivity、SignupActivity;
2 : Fragment 命名一律使用 模块名+Fragment 的方式;
3 : 自定义View:Custom( 自定义的意思 )+功能名+View/ViewGroup(具体的组件名称)。例如:CustomImageScroller、CustomLinearLayout、CustomPhotoViewGroup。
4 : adapter命名 : 模块名+功能名+Adapter
例如商品详情页,已购买商品和代付款商品两个List
GoodsBuyAdapter , GoodsPayAdapter .
变量命名规则
4 : Dialog对话框:功能名+Dialog。例如:LoginDialog、WeChatDialog
5 : 每个类的TAG是当前类的类名 , 方便查看日志
对单独需要调试的业务线 ( 可能存在跨类的情况 ) 可以另设一个全局常量TAG进行日志查看 ( 常量需备注 )
6 : 动态广播意图命名 BroadCast + 功能名 . 例如 : 打开广告弹窗意图 BroadCastOpenAd
7 : 全局变量采用m开头+功能名。例如,mTable、mPerson
8 : 所有全局变量 类型一致的 放在一起 , 例如 : 某个类有很多 String的实例 , 则 写成 String mStrlogin , mStrStar , mStrPhone .
9 : 所有布局文件内的控件都跟布局文件的ID一致 , 方便查找 .
资源文件命名 :
10 : 所有控件采用 控件归类+模块名+功能名 .
例如 , LoginAcitivy 的布局文件 ac_myshop_new 中的控件命名
tv_myshop_goods , et_mushop_num , img_myshop_banner .
11 : 布局文件命名 : ac/fg/adapter + 模块名 + 功能名 ( 如果有多个功能则加上功能名 )
例如 : ac_main , fg_myshop , adapter_myshop_old , adapter_myshop_new
对于头布局和底布局这种特殊情况 footer/header + 模块名 + 功能名
例如 : 首页产品列表( MainActivity ) 需要一个头布局 , header_main_ac_goodslist
12 : 色值命名 : ( 所有的色值都必须写在资源文件中 , 不能在布局文件中写死 )
主题色 : theme_color
所有页面背景色 : background_color
所有分割线颜色 : dividerline_color
剩余其他色值 统一按照 color+色值 命名 . 例如 : #555555 命名为 color_555555
13 : drawable 命名 :
普通图片 : img + 模块名 + 功能名 . 例如 登录页的手机图片 img_ac_login_photo
selector : selector + 模块名 + 功能名 . 例如 selsctor_ac_login_button
Shape : shape +solid + storke + conner
例如 #d5d2d2 色值 边角5度的全填充shape可以命名为 shape_ d5d2d2_ d5d2d2_5
例如 #d5d2d2 色值 边角5度的透明充shape可以命名为 shape_ null_ d5d2d2_5
14 : 图片资源命名
img + 模块名 + 功能名 . 例如 登录页的手机图片 img_login_photo