一种基于安卓系统的架构设计方法与流程 - 深圳网站优化推广公司

一种基于安卓系统的架构设计方法与流程

文档序号:16529221发布日期:2019-01-05 10:36阅读:496来源:国知局
本发明涉及移动互联网
技术领域
:,具体的说,是一种基于安卓系统的架构设计方法。
背景技术
::2012年netflix为了满足他们庞大的用户群体决定重新设计架构来减少rest调用次数。取代几十次的rest调用,让客户端自己处理需要的数据,他们决定基于客户端需求创建一个专门优化过的rest调用。为实现该目标,他们决定尝试响应式,将.netrx迁移到jvm上。2013年,rxjava诞生。2016年,rxjava成为最有前景的安卓开发方式。retrofit也是square公司开发的一款针对android网络请求的框架,其实质就是对okhttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口。随着rxjava的流行,retrofit也迅速推出适配rxjava的类。在rxjava出现之前,安卓采用asynctask和handler来实现异步代码,它们的问题在于当程序随迭代业务逻辑越来越复杂时,出现多层嵌套缩进,代码变得难以维护。而rxjava的出现就解决了这个问题,无论程序逻辑多么复杂,rxjava却能始终保持一条清晰地链式调用,因此如何运用新技术迅速搭建项目架构并降低时间成本成为新的问题。技术实现要素:本发明的目的在于提供一种基于安卓系统的架构设计方法,用于解决现有技术中不能运用新技术快速的搭建项目架构的问题。本发明通过下述技术方案解决上述问题:一种基于安卓系统的架构设计方法,包括采用mvp模式的module模块、bean模块、api模块、binder模块、adapter模块和database模块,所述database模块、api模块和bean模块设置在mvp模式的model层,所述binder模块设置在mvp模式的presenter层,所述adapter模块设置在mvp模式的view层,所述module模块分别设置在mvp模式的presenter层和view层,其中:api模块,包括ixxapi接口,用于请求网络数据,请求网络数据的返回值是observable类型;module模块调用retrofitfactory类获取retrofit类,调用retrofit类访问ixxapi接口获取返回的observable类,retrofit类把请求封装进observable类,module模块在请求结束后调用onnext()或在请求失败后调用onerror();module模块调用register类的register方法注册bean模块的binder类,binder类通过retrofitfactory类调用api模块的ixxapi接口获取网络数据;或调用database模块的xxdao类获取本地存储数据;module模块采用multitypeadater适配器注册binder模块的binder类来显示数据。进一步地,所述module模块包括用于定义presenteror接口和view接口的ixx接口、用于实现presenteror接口具体操作的xxpresenteror类以及用于实现view接口具体操作的xxfragment类和xxview类;所述binder模块的binder类将数据与module模块的xxpresenterer类的multitypeadapter适配器绑定,从而显示数据。进一步地,所述binder类中定义viewholder以及将viewholder与数据的具体操作绑定。进一步地,还包括给所述module模块、bean模块、api模块、binder模块、adapter模块和database模块提供可调用的通用工具类的util模块。进一步地,还包括adapter模块,所述adapter模块自定义适配器,并通过自定义适配器注册binder模块的binder类,进行实现数据的展示。原理:module模块作为view层和presenterer层,调用register类的register方法注册binder模块中的对应binder类,binder类可以通过retrofitfactory类调用api模块的对应api类获取到网络数据,也可以通过调用database模块的对应xxdao类获取本地存储数据。xxdao,其中xx对应业务,dao为数据访问接口(dataaccessobject)。module模块中ixx接口定义view接口和presenterer接口的规范,xxpresenterer类引入ixx接口的presenterer接口,并将其具体实现。xxfragment类、xxview类、xxactivity类采用implements类实现ixx接口的view接口中定义的抽象方法。database模块,xxtable类定义本地存储数据表中的列名,databasehelper类继承sqliteopenhelper,用于连接数据表,帮助创建数据表,执行sql语句,xxdao类根据业务需求写对应数据表数据的具体操作,增删改查;api模块,ixxapi接口即是一个服务,以rxjava+retrofit技术,请求网络数据的返回值是observable类型。在处理业务逻辑的地方调用retrofitfactory类获取到retrofit类,调用ixxapi接口获取到返回的observable类,retrofit类把请求封装进observable类,module模块在请求结束后调用onnext()或在请求失败后调用onerror()。retrofitfactory类实现了缓存机制,即在响应请求后在本地建立一个文件夹用于保存缓存数据,这样在请求数据时,如果判断没有网络,则自动读取缓存的数据,如果判断有网络,则从网络中获取数据并保存到缓存中。binder模块,在view层创建的multitypeadapter适配器都有对应的binder类,binder类为适配器的数据绑定器。binder类继承自itemviewbinder,原来在自定义adapter中实现的自定义viewholder、绑定viewholder与数据的具体操作都在binder类中实现。multitypeadapter适配器调用register类的register方法与binder类连接。module模块的xxfragment类、xxactivity类、xxview类作为view层,xxpresenterer类、binder模块作为presenter层,database模块、api模块、bean模块均属于model层,即采用mvp模式。在mvp模式下,view层并不直接使用model层,它们之间的通信是通过presenterer层来进行的,所有的交互都发生在presenterer层内部,model层和view层被presenterer层完全隔开,view层是完全被动的。本发明与现有技术相比,具有以下优点及有益效果:(1)本发明提供了一种基于安卓系统的mvp模式+rxjava+retrofit架构的方法,采用此架构可以快速的开发项目,缩短开发周期,降低时间成本。(2)本发明采用了缓存的方式,消除了现有技术中由于异步回调函数过多的嵌套,导致代码可读性下降以及出错率提到的问题即消除了callbackhell现象。附图说明图1为本发明的架构图;图2为mvp模式的示意图。具体实施方式下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。实施例1:结合附图1所示,一种基于安卓系统的架构设计方法,包括采用mvp模式的module模块、bean模块、api模块、binder模块、adapter模块和database模块,所述database模块、api模块和bean模块设置在mvp模式的model层,所述binder模块设置在mvp模式的presenter层,所述adapter模块设置在mvp模式的view层,所述module模块分别设置在mvp模式的presenter层和view层,其中:api模块,包括ixxapi接口,用于请求网络数据,请求网络数据的返回值是observable类型;module模块调用retrofitfactory类获取retrofit类,调用retrofit类访问ixxapi接口获取返回的observable类,retrofit类把请求封装进observable类,module模块在请求结束后调用onnext()或在请求失败后调用onerror();module模块调用register类的register方法注册bean模块的binder类,binder类通过retrofitfactory类调用api模块的ixxapi接口获取网络数据;或调用database模块的xxdao类获取本地存储数据;module模块采用multitypeadater适配器注册binder模块的binder类来显示数据。所述module模块包括用于定义presenteror接口和view接口的ixx接口、用于实现presenteror接口具体操作的xxpresenteror类以及用于实现view接口具体操作的xxfragment类和xxview类;所述binder模块的binder类将数据与module模块的xxpresenterer类的multitypeadapter适配器绑定,从而显示数据。进一步地,还包括给所述module模块、bean模块、api模块、binder模块、adapter模块和database模块提供可调用的通用工具类的util模块。进一步地,还包括adapter模块,所述adapter模块自定义适配器,并通过自定义适配器注册binder模块的binder类,进行实现数据的展示。原理:module模块作为view层和presenterer层,调用register类的register方法注册binder模块中的对应binder类,binder类可以通过retrofitfactory类调用api模块的对应api类获取到网络数据,也可以通过调用database模块的对应xxdao类获取本地存储数据。xxdao,其中xx对应业务,dao为数据访问接口(dataaccessobject)。module模块中ixx接口定义view接口和presenterer接口的规范,xxpresenterer类引入ixx接口的presenterer接口,并将其具体实现。xxfragment类、xxview类、xxactivity类采用implements类实现ixx接口的view接口中定义的抽象方法。database模块,xxtable类定义本地存储数据表中的列名,databasehelper类继承sqliteopenhelper,用于连接数据表,帮助创建数据表,执行sql语句,xxdao类根据业务需求写对应数据表数据的具体操作,增删改查;api模块,ixxapi接口即是一个服务,以rxjava+retrofit技术,请求网络数据的返回值是observable类型。在处理业务逻辑的地方调用retrofitfactory类获取到retrofit类,调用ixxapi接口获取到返回的observable类,retrofit类把请求封装进observable类,module模块在请求结束后调用onnext()或在请求失败后调用onerror()。retrofitfactory类实现了缓存机制,即在响应请求后在本地建立一个文件夹用于保存缓存数据,这样在请求数据时,如果判断没有网络,则自动读取缓存的数据,如果判断有网络,则从网络中获取数据并保存到缓存中。binder模块,在view层创建的multitypeadapter适配器都有对应的binder类,binder类为适配器的数据绑定器。binder类继承自itemviewbinder,原来在自定义adapter中实现的自定义viewholder、绑定viewholder与数据的具体操作都在binder类中实现。multitypeadapter适配器调用register类的register方法与binder类连接。module模块的xxfragment类、xxactivity类、xxview类作为view层,xxpresenterer类、binder模块作为presenter层,database模块、api模块、bean模块均属于model层,即采用mvp模式。在mvp模式下,view层并不直接使用model层,它们之间的通信是通过presenterer层来进行的,所有的交互都发生在presenterer层内部,model层和view层被presenterer层完全隔开,view层是完全被动的。尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1

相关内容推荐

台州怎么制作一个自己的网站莲花怎么样进行网站制作制作个人网站的视频ps制作网站素材图片怎么制作游戏充值网站在线网站制作公章网站建设制作视频教程泰州网站制作公司哪家便宜有什么海报在线制作的网站手工制作可以下载的网站黔西南企业网站制作一站式服务杂志类网站怎么制作flash制作双11网站字幕网站制作视频珠海网站制作壁纸app记帐网站制作美食南皮制作企业网站会同手机网站制作临海如何制作一个网站的名片湛江制作网站哪里好宁波好的网站制作湖南网站软件定制开发制作宜阳网站制作找哪家做一个科技制作视频网站学生个人网站制作教程济宁网站制作品牌企业府谷县制作网站网站 视频页制作软件泰州在线制作网站网站制作 佛山北京零售网站制作宝安定制型网站制作价格标书制作参考网站汝州网页制作与网站建设网站制作使用数据库唱歌网站制作头像资讯网站制作手工制作淘宝店标的网站有哪些最强大的网站制作平台网站的制作的文章查找文献网站制作手工制作可以下载的网站流行音乐网站制作手工彭水网站制作案例石岩有哪些网站制作企业网管网站制作与维护网站制作公司出 名乐云seo好用H5制作网站复合材料论文网站制作永川网站制作公司幼儿园制作网站公司临海传奇网站如何制作教程高邮市网站制作公司哪家好如何制作dj网站梧州网站制作蛋糕材料家庭作业电影网站制作西安网站制作表格厦门做网站设计制作开发兰州哪个公司制作网站好无锡网站推荐无锡新互动制作甘肃物业网站制作斗战神海报制作网站廊坊网站视频制作网站美工制作佛山地铁网站制作美食网页制作模板的网站linux专业制作网站工业制品流程连云港如何制作自己的网站杭州手机版网站制作自己制作茶叶网站多少钱IT学习网站制作制作人哪个网站可以看徐州制作网站设计福州网站制作表格app公爵夫人电影网站制作莱芜定制网站制作沈阳网站制作收费明细表制作小企业网站制作视频网站小程序医院的网站制作什么公司好公司网站好制作吗贵溪怎么制作网站塘沽网站制作工作室韩剧网站制作网站商城制作流程图新会网站制作公司杏坛门窗网站制作课题组网站制作虚拟货币交易网站制作温州制作推广网站山南网站设计制作工资怎么样抚州模板网站制作永城个性化网站制作价格深圳网站模板制作制作视频加文字的网站丰县网站优化制作制作商场网站道德经翻译网站制作制作短视频参考网站通州微信网站制作怎么制作盗号网站教程英语网站制作代码网站制作素材可爱手工制作首饰教程网站制作模板网站软件展柜专业制作的网站农行网站制作奶茶适合seo优化的网站制作如何制作网站调查表罗湖有哪些网站制作乌海网站制作招商适合大学生接单网页制作的网站亚航网站制作头像莒县网站制作公司制作花卉网站首页可字制作表情的网站在线制作自己的网站莱州宣传型网站制作网站首页制作表格app制作图片网站哪个好网站界面ps制作步骤制作店招的网站名称有哪些无忧网站制作表情包东莞网站制作推广团队网站制作的展望jk制作网站象山营销型网站制作好吗信阳金泉网网站制作现在都用哪个网站制作简历毕业设计网页制作网站化工企业网站制作起泡乐山网站制作创新互联广东网站制作方案网站模版制作用ps吗厦门做网站设计制作国标网站制作小玩具仓鼠身份证制作网站合肥网站制作工具动图制作免费网站花卉网站制作书签上海网站建设优选湖南岚鸿制作辛集专业网站制作公司网站运营与页面制作义乌泰兴高端网站制作要多少钱电脑版影视网站制作谐音网站制作起泡用dw制作精品课程网站电子商务网站作品制作制作后台网站没有制作公司网站的原因是静态网站制作企业制作自己的电影网站吗透明壁纸怎么制作网站云浮制作网站服务商阿里网站制作收费明细表游戏网站制作顺序上虞网站设计制作兰州市制作网站象山制作logo的网站有哪些制作手机网站需要哪些工具栏浙江网站制作网站建设寮步营销网站建设制作设计廊坊平台网站制作帽子英文翻译网站制作灯塔网站设计制作流行歌曲网站制作壁纸h5地板网站制作嘉兴网站链接怎么制作代码嘉兴网站制作功能电视网站制作小玩具诸暨桂林制作网站公司有哪些蜂鸟网站制作贴纸潍坊制作网站设计动漫人设素材网站制作个人头像制作网站背景音乐网站制作冰淇淋网站设计稿制作如何制作购物网站页面网站设计稿制作h5页面制作网站css3龙口网站制作收费长乐手机网站制作淮安南通网站制作公司贸易网站制作视频哪些网站制作比较简单关于教育的网站制作制作一个网站项目的流程图十万火急电影网站制作如何承接网站制作的活中山网站搭建制作信息课制作一个网站仪征微网站制作黄山网站制作网站网站制作缩略图长安多语种网站制作豆豆小说网站制作揭阳网站搭建制作课题组网站制作网站制作流程论坛制作网站共犯

合作伙伴

深圳网站优化推广公司

龙岗网络公司
深圳网站优化
龙岗网站建设
坪山网站建设
百度标王推广
天下网标王
SEO优化按天计费
SEO按天计费系统