项目下载地址:https://github.com/huntermr/FastAndroid
前言:对于很多Android开发初学者来说,有很多地方都会使人头疼,如:图片加载、OOM、网络访问、数据库操作、json解析等等因为不熟悉所以会走很多的歪路。出于引领初学者正式走进Android开发道路的目的,综合考虑市面上常见的开发框架发现,要么是比较复杂难懂,要么是对于性能优化的不够好;所以作者就将市面上在各个方面都表现较好的开源项目进行整合,加入了mvp模式,使初学者上手就能开发出比较健壮完善的项目。
项目介绍:
本框架整合了网络访问、数据库操作、图片加载(无需担心OOM)及缓存、json解析、View注解
项目架构采用MVP模式,极大的对View和Model解耦,项目中带有使用说明,查看源码即可
整合的开源项目:
网络访问:android-async-http
数据库:GreenDao(对于GreenDao的使用方法,请访问http://blog.csdn.net/ht_android/article/details/44782539)
图片加载及缓存:universal-image-loader
json解析:Gson
View注解:butterknife
包结构:
com.example.android:框架主体
com.example.android.adapter:存放自定义Adapter
com.example.android.app:关于项目的一些全局配置及文件
——AppManager:自定义Activity堆栈管理类
——Constants:存放全局变量
——MyApplication:自定义Application,用于初始化操作
——Setting:公共参数配置,封装了SharedPreferences
com.example.android.async:存放自定义AsyncTask
com.example.android.base:存放基类文件
——BaseActivity:基类Activity,所有Activity继承自此,可自行修改
——BaseResponse:基类响应类,用于验证服务器的响应及解析数据
——IBaseView:所有View接口继承此接口,用于进行一些通用视图操作
com.example.android.bean.net:关于网络访问的bean
——request:网络访问请求bean
——response:网络访问响应bean
com.example.android.dao:封装数据库操作
com.example.android.exception:异常捕获类
com.example.android.listener:存放Presenter的监听
com.example.android.model:存放数据逻辑处理接口
——impl:存放model实现类
com.example.android.net:网络访问相关
——NetCenter:封装网络访问常用操作,将所有网络接口在此封装以便统一调用
——StringPostRequest:自定义Volley的Request,复写接收post参数方法
——URLs:存放Url访问路径
com.example.android.presenter:存放Presenter
com.example.android.ui:存放Activity、自定义View等等
——custom:存放自定义View
com.example.android.utils:常用工具类
com.example.android.view:存放view接口
com.loopj.android.http:android-async-http框架源码
框架使用方法:
对于Mvp模式,主要目的是为了解耦,将逻辑分离出来,否则有些初学者非常容易在一个Activity里面写很多代码,项目的可维护性简直令人崩溃。
Presenter:针对不同模块写不同的Presenter,这个类和mvc中的控制器类似,但他能保证view和model之间不能直接访问。Presenter中接收了View接口以及实例化了Model,当调用Model中相应方法时可以传入回调。
View:定义View的接口,然后Activity去实现接口中的方法,并实例化Presenter,实例化时需要传入view接口。当用户触发了某个操作如点击按钮,则开始调用Presenter的相应方法去进行处理,Presenter处理完成后,会调用已实现View接口的方法
Model:接收Presenter的相应回调,当处理完数据逻辑后,调用该回调用于返回数据给Presenter。
以上就是关于框架中mvp的大致使用方式,其他方面请自行翻看源码或查阅相关资料。