重新规划Android项目的目录结构
2017-10-10 16:46
127 查看
有的开发人员喜欢将Activity,Fragment都放在一个Package下,并且没有分类,Adapter也是如此,还有的就是喜欢将Adapter内置在Activity,Fragment里面。这样开发,没有任何分类,显得杂乱无章。每当我看到他们这样写的时候,我看不下去,因为如果想优化哪个功能模块,这些页面是很难找到的,找起来费时费力,大大的降低开发效率,不利于项目的维护和优化。
接下来,我们需要重新规划Android项目的目录结构:(以AndroidFire项目为例)
第一步,项目组件化,模块化。是将整个App的各个业务分离,降低它们之间的耦合度,各个业务线可以由专门的开发同学进行开发,相互之间也不会有干扰,提升开发效率。
这是AndroidFire项目
app模块是整个项目的主模块。common模块是公共业务,包括工具类,自定义view等等。irecyclerview是recyclerview和适配器模块。jcvideaplayer是视频模块。onekeyshareSDK是分享模块。photopicker是图片放大缩小模块,selectordialog是封装的一些dialog模块。这样分模块的好处就是将各个功能独立出来,如果下次要开发新的App,可以直接使用,无需在项目中继续分离,在开发的同时,各个模块可以由专门的开发同学进行开发,相互之间也不会有干扰,节省开发人员的时间和精力,同时也提高了开发效率。
重构后的项目依赖关系
第二步,将App主模块中的类,按照类别划分。
主模块分类
对这各个包的介绍如下:
api:网络封装类和接口管理类。(可以继续分网络模块)
app:放Application
bean:放网络请求,结果回调或者界面传输的实体类,需要序列化。
db:数据库管理类(可以继续分数据库模块)
ui:放Activity,Fragment和Adapter等和界面有关的类,并且按照相应的功能分类(里面的分包,自己研究下)。
utils:一些工具类(可以提取出来放入common中)
widget:一些自定义控件(可以提取出来放入common中)
wxapi:一些和微信相关的类。
具体分包根据具体的业务逻辑划分,命名最好根据业务来命名。
这样划分是为了以下的三个目的:
1)每个文件都是单独的类,不要有嵌套类。
2)将Activity,Fragment按照功能模块划分,这样当需要优化时,可以快速定位到具体页面。
3)按照模块划分,每个开发人员只要负责好自己所开发的模块,这样不会和其他开发同学有业务上的冲突。
使用基类进行子类的统一管理,如BaseActivity,BaseFragment,BaseRecyclerAdapter,BaseView,BaseModel,BasePresenter等等,遵循SOLID原则,单一职责,一个类或者方法只能做一件事。
接下来,我们需要重新规划Android项目的目录结构:(以AndroidFire项目为例)
第一步,项目组件化,模块化。是将整个App的各个业务分离,降低它们之间的耦合度,各个业务线可以由专门的开发同学进行开发,相互之间也不会有干扰,提升开发效率。
这是AndroidFire项目
app模块是整个项目的主模块。common模块是公共业务,包括工具类,自定义view等等。irecyclerview是recyclerview和适配器模块。jcvideaplayer是视频模块。onekeyshareSDK是分享模块。photopicker是图片放大缩小模块,selectordialog是封装的一些dialog模块。这样分模块的好处就是将各个功能独立出来,如果下次要开发新的App,可以直接使用,无需在项目中继续分离,在开发的同时,各个模块可以由专门的开发同学进行开发,相互之间也不会有干扰,节省开发人员的时间和精力,同时也提高了开发效率。
重构后的项目依赖关系
第二步,将App主模块中的类,按照类别划分。
主模块分类
对这各个包的介绍如下:
api:网络封装类和接口管理类。(可以继续分网络模块)
app:放Application
bean:放网络请求,结果回调或者界面传输的实体类,需要序列化。
db:数据库管理类(可以继续分数据库模块)
ui:放Activity,Fragment和Adapter等和界面有关的类,并且按照相应的功能分类(里面的分包,自己研究下)。
utils:一些工具类(可以提取出来放入common中)
widget:一些自定义控件(可以提取出来放入common中)
wxapi:一些和微信相关的类。
具体分包根据具体的业务逻辑划分,命名最好根据业务来命名。
这样划分是为了以下的三个目的:
1)每个文件都是单独的类,不要有嵌套类。
2)将Activity,Fragment按照功能模块划分,这样当需要优化时,可以快速定位到具体页面。
3)按照模块划分,每个开发人员只要负责好自己所开发的模块,这样不会和其他开发同学有业务上的冲突。
使用基类进行子类的统一管理,如BaseActivity,BaseFragment,BaseRecyclerAdapter,BaseView,BaseModel,BasePresenter等等,遵循SOLID原则,单一职责,一个类或者方法只能做一件事。
相关文章推荐
- 项目重构经验一 ——重新规划Android项目的目录结构
- Android 重新规划项目结构
- android学习——android项目的的目录结构
- Android项目在Eclipse中的目录结构
- Android项目的目录结构(转)
- Android项目目录结构res和assests目录的不同:
- Android项目的目录结构(Eclipse)
- Android Studio基础之项目目录结构(四)-学习篇
- 第二课 - Android项目目录结构
- android stdio下的项目目录结构简介
- Android项目目录结构
- Android项目的目录结构
- Android开发之旅:HelloWorld项目的目录结构
- Android Studio项目目录结构介绍
- android学习——android项目的的目录结构
- Android之项目基本目录结构初识
- android ecplise 的 项目结构目录
- Android项目的目录结构
- Android项目的目录结构
- Android项目工程目录结构说明及作用