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

Android App项目整体框架解决方案

2015-09-15 17:12 211 查看

GradleAndroid-App-Framework

简介

GradleAndroid-App-Framework是一个免费的开源关于Android App一整套架构的解决方案。主要目的是整合流行开发模式结合其他开源模块形成的一整套Android快速开发解决方案。

项目主要包括两大部分

Framework层

依托以java级别,主要提供底层API框架接口,提供一种编程思想同时从平台中剥离出来

CacheSystem 缓存系统

Configuration 基础应用配置

Context 接管App层级上下文

NetworkInteractor 网络模块,主要负责网络检测以及网络请求

FileSystem 文件系统

Database 数据库

Theme 主题

Scene 场景功能

ModelFactory 业务工厂(实现IModel功能的所有业务操作类)

PluginManager 插件化系统,主要对可扩展类的考虑。在一些特殊的系统中,可能存在ChildSystem级别的系统功能。需要继承PluginChildSystem来实现

LogCollector 日志收集系统,针对所有日志做处理(开关,打印,本地保持,上传server等功能)

App层

依赖于Framework Library。实现基于Android平台下的一系列接口

主要接管Activity和Fragment中的架构,采用了MVVM的方式来解放UI(最近受到IOS的MVC架构所启发,Android的View概念被弱化,Activity和Fragment被强化导致很多同学认为这两者就是UI上的事情。其实不是这样,Fragment应该类似于IOS中的UIViewController才对。因此本框架通过UIView来强化Android的UI概念。用Fragment来做为UIViewController。)

App全局只有一个入口启动MainActivity同时也是唯一的一个Activity。MainActivity继承了FragmentContainerActivity,因此他是Fragment容器

所有页面都是Fragment实现,包括启动页面。主要利用support.v4包的FragmentManager来管理整个Fragment堆栈实现页面切换功能

页面请求都采用线程池执行Task的方式来完成,回调使用了Rxjava的订阅/消费的观察者模式完成

框架图



项目地址

https://github.com/frodoking/GradleAndroid-App-Framework

由于整个工程项目开发是一个很耗时的迭代过程,所以有考虑不全面的地方希望引用同学继续补充(贡献分支branche_contributors)。在补充过程中尽量通知到作者本人。希望有兴趣的同学加入进来,把这个工程完善得更好。

依赖注入和事件总线思想在本项目里是排斥的,原因很简单,不仅仅从性能方面的考虑,同时:

依赖让代码指向混乱同时也给开发者造成结构的不清晰

事件总线思想很容易造成滥用的现象,就像广播一样,没有目的的注册和广播很容易导致内存泄露发生

第三方依赖

基础库guava

网络库okhttp、retrofit

图片库picasso(后期考虑glide)

事件传递机制的Rxjava

内存泄露检测库leakcanary

关于作者(frodoking)

Email: awangyun8@gmail.com

个人技术Blog:http://frodoking.github.io/

Github:https://github.com/frodoking
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: