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
相关文章推荐
- Android 轻松实现后台搭建+APP版本更新
- Android反编译(操作简单、方便可用)
- CocoaPods安装和使用
- ios utf8编码和解码
- iOS GCD使用指南
- Android中drawableStart和drawableLeft的区别
- Android Studio常用快捷键,便捷功能汇总
- 关于自己学习ios oc的学习笔记
- Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml
- android 获取系统时间
- 对android应用进行单元测试
- Android解决ListView中使用EditText所遇到的一些冲突
- Quick-Cocos2d-x 3.3 使用WebView
- MVP模式在Android中的使用
- Android(java)学习笔记255:JNI之JNI概念
- android仿ios时间控件
- java+android须知环境变量配置
- Android 多分辨率自适应总结
- 【Android技术整理】XML生成与解析伪代码
- 开发日志整理2【android layout用法注意点】