您的位置:首页 > 移动开发 > Android开发

重新规划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原则,单一职责,一个类或者方法只能做一件事。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: