Android 开发有什么好的架构么?

做了几年Android开发,也算是个半吊子的开发者了。但是从大公司到小公司,要么程序的结构乱七八糟,别说耦合什么的了,根本找不到功能的代码;要么就是有…
关注者
2,371
被浏览
428,443

54 个回答

现在很厉害的

GitHub - googlesamples/android-architecture: A collection of samples to discuss and showcase different architectural tools and patterns for Android apps.

—————以前很厉害的———————————

最近正在学习

google/iosched · GitHub

,Google出品,异曲同工,比下面原答案更易学,更优雅。

:)

这个是我们团队一直推崇而且现在正在使用的架构

android10/Android-CleanArchitecture · GitHub

说说用下来的优缺点,如有纰漏,还请指正。

无论从架构还是代码上看,分层都是三层:视图层(Presentation Layer)、控制层(Domain Layer)、数据流层(Data Layer)。

层级之间通过添加接口层作为分隔实现解耦。

简单来说,优点有以下

1.层次分明,各层级之间都不管对方如何实现,只关注结果;

2.在视图层(Presentation Layer)使用MVP架构,使原本臃肿的Activity(或Fragment)变得简单,其处理方法都交给了Presenter。

3.易于做测试,只要基于每个模块单独做好单元测试就能确保整体的稳定性。

4.易于快速迭代,基于代码的低耦合,只需在业务逻辑上增加接口,然后在相应的层级分别实现即可,丝毫不影响其他功能。

....等等

目前发现的缺点:

1.由于视图层(Presentation Layer)使用MVP模式,每个有独立逻辑的Activity(Fragment)都拥有独立的Presenter,当View多起来时候Presenter维护起来就显得略麻烦

2.上手难度比较大,学习曲线比较陡峭

推荐阅读

fernandocejas.com/blog.8thlight.com/uncle

网上真的很少有人出来讲Android的架构或重构,所以我打算将自己的经验总结分享出来。有兴趣的也可看看,一起讨论:

Android项目重构之路:架构篇

Android项目重构之路:界面篇

Android项目重构之路:实现篇