通用Android项目设计


没想到找到一个大神写的文章,我就不抄了,只把地址贴出来
Android组件化项目详细实施方案

以下内容是我自己写的,就废弃了吧


1 基础信息

1.1 包名
com.XXXX

1.2 Android版本支持信息
最低:4.1,最高:最新

1.3 编译环境
Android 最新

2 命名规范

2.1 资源文件命名时候,尽量在最前面加上包名:xxxBtlogin、xxx_layout_main。防止和第三方lib冲突。

2.2 Java类文件

2.2.1 Activity:(模块名)(页面名)Activity.java
2.2.2 Fragment:(模块名)(页面名)(功能名)Fragment.java
2.2.3 Adapter:(模块名)(页面名)(功能名)[ListAdapter、ViewPageAdapter...等].java

2.3 Layout类文件

2.3.1 Activity的布局文件:
2.3.2 Fragment的布局文件:
2.3.3 从属于的布局文件,如listview的Item:
2.3.4 dialog的布局文件:
2.3.5 Popupwindow的布局文件
2.3.6 Notifycation的布局文件

2.4 Drawable类文件

2.4.1 只在单个页面使用的,则使用该页面名作为前缀
2.4.2 在单个模块中多次使用,则使用该模块名作为前缀
2.4.3 在多个模块中多次使用,在使用common前缀
2.4.4 接着前缀的为图片的功能+状态,比如common_bt_selector

2.5 布局文件中的ID命名

2.5.1 控件类型名称 + 逻辑缩写
2.5.2 控件名称缩写 为单词的首字母,比如 LinearLayout =》ll

3 注释规范

4 项目架构

5 lib 能封装则封装,方便替换

5.0 razeor公司通用lib
通过arr形式引用的方式引入。第三方lib应当通过razeor引入。

5.1 网络
Retrofit:https://github.com/square/retrofit

5.2 通用util: xutils:https://github.com/wyouflf/xUtils3
DensityUtil
FileUtil
IOUtil
LogUtil
MD5

5.3 数据库
http://greenrobot.org/greendao/

5.4 IO操作
common-io

5.5 缓存
5.5.1 字符串缓存
5.5.2 文件缓存

5.6 网络图片加载
https://github.com/bumptech/glide

5.7 友盟全家桶

5.7.1 异常捕获
5.7.2 崩溃捕捉
5.7.3 推送
5.7.4 用户数据收集

5.8 RxAndroid、RxBinding
快速开发
一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库

5.9 JDK8新特性,不使用。使用jdk7
5.9.1 lambda:如果开启此功能,则不就不能使用Instant Run,所以得不偿失
5.9.2 由于jdk8stream内部使用了一些低版本手机所不具有的api,所以java版本保持在1.7

5.9 网络图片加载

5.10 运行时权限
https://github.com/tbruyelle/RxPermissions

6 测试

6.1 单元测试

6.2 UI测试

6.3 monkey测试

7 技术

7.1 Instant Run
该功能和jack工具冲突,jdk8新特性需要jack。

8 源码版本管理

8.1 使用开源中国的git
8.2 master主分支只保留每次的发布版本提交,提交使用cherry-pick。一个版本一个分支。

你可能感兴趣的:(通用Android项目设计)