Android和MVC

Activity和Android的mvc模式

http://blog.csdn.net/dengshengjin2234/article/details/8502097   //android涉及到的设计模式

http://www.cppblog.com/weiym/archive/2014/07/26/207819.html   //client架构设计

Activity是Android系统中的四大组件之中的一个。能够用于显示View。

Activity是一个与用户交互的系统模块,差点儿全部的Activity都是和用户进行交互的。可是假设这样就能说Activity主要是用来显示View就不太正确了。还要知道结合android的设计模式。 以下我就先来介绍一下MVC在Android开发中的应用:

  M(Model 模型):Model是应用程序的主体部分,全部的业务逻辑都应该写在这里。在Android中Model层与JavaEE中的变化不大,如:对数据库的操作,对网络等的操作都放在该层(但不是说它们都放在同一个包中,能够分开放,但它们统称为Model层)。

V(View 视图):是应用程序中负责生成用户界面的部分,也是在整个MVC架构中用户唯一能够看到的一层。接收用户输入,显示处理结果;在Android应用中一般採用XML文件中德界面的描写叙述,使用的时候能够很方便的引入,当然也能够使用JavaScript+Html等方式作为View。

C(Controller控制层)android的控制层的重任就要落在众多的activity的肩上了。所以在这里就要建议大家不要在activity中写太多的代码。尽量能过activity交割Model业务逻辑层处理。

好了,在介绍过Android应用开发中的MVC架构后,我们就能够非常明白的知道。在Android中Activity主要是用来做控制的。它能够选择要显示的View,也能够从View中获取数据然后把数据传给Model层进行处理,最后再来显示出处理结果。

介绍过Activity的主要作用后,那么我们就要具体说一下Activity了。

Activity 的生命周期是被下面的函数控制的。

public class Activity extends ApplicationContext {

protected void onCreate(Bundle icicle);

protected void onStart();

protected void onRestart();

protected void onResume();

protected void onFreeze(Bundle outIcicle);

protected void onPause();

protected void onStop();

protected void onDestroy();

}

ANDROID系统分层:

linuxkernel:负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。

libraries和androidruntime:libraries:即c/c++函数库部分,大多数都是开放源码的函数库,比如webkit,该函数库负责android网页浏览器的执行,比如标准的c函数库libc、openssl、sqlite等。当然也包含支持游戏开发2dsgl和3dopengles。在多媒体方面有mediaframework框架来支持各种影音和图形文件的播放与显示,比如mpeg4、h.264、mp3、aac、amr、jpg和png等众多的多媒体文件格式。

android的runtime负责解释和执行生成的dalvik格式的字节码。

  applicationframework(应用软件架构)。java应用程序开发者主要是使用该层封装好的api进行高速开发。

  applications:该层是java的应用程序层。android内置的googlemaps、e-mail、即时通信工具、浏览器、mp3播放器等处于该层,java开发者开发的程序也处于该层,并且和内置的应用程序具有平等的位置,能够调用内置的应用程序。也能够替换内置的应用程序。

  上面的四个层次,下层为上层服务。上层须要下层的支持,调用下层的服务,这样的严格分层的方式带来的极大的稳定性、灵活性和可扩展性,使得不同层的开发者能够依照规范专心特定层的开发。

  android应用程序使用框架的api并在框架下执行,这就带来了程序开发的高度一致性,还有一方面也告诉我们,要想写出优质高效的程序就必须对整个applicationframework进行很深入的理解。精通applicationframework,你就行真正的理解android的设计和执行机制,也就更可以驾驭整个应用层的开发

  2。android的官方建议应用程序的开发採用mvc模式。何谓mvc?先看看下图

  mvc是model,view,controller的缩写。从上图能够看出mvc包括三个部分:

  l模型(model)对象:是应用程序的主体部分,全部的业务逻辑都应该写在该层。

  l视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一能够看到的一层。接收用户的输入。显示处理结果。

  l控制器(control)对象:是依据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给m哦得了处理。

  android鼓舞弱耦合和组件的重用,在android中mvc的详细体现例如以下:

  1)视图层(view):一般採用xml文件进行界面的描写叙述,使用的时候能够很方便的引入,当然,怎样你对android了解的比較的多了话。就一定能够想到在android中也能够使用javascript+html等的方式作为view层,当然这里须要进行java和javascript之间的通信,幸运的是。android提供了它们之间很方便的通信实现。

  2)控制层(controller):android的控制层的重任通常落在了众多的acitvity的肩上,这句话也就暗含了不要在acitivity中写代码,要通过activity交割model业务逻辑层处理,这样做的另外一个原因是android中的acitivity的响应时间是5s,假设耗时的操作放在这里。程序就非常easy被回收掉,在Android的世界里,控制器一般是Activity、Fragment或Service的一个子类,在Android SDK中的数据绑定。也都是採用了与MVC框架类似的方法来显示数据。在控制层上将数据依照视图模型的要求(也就是Android
SDK中的Adapter)封装就能够直接在视图模型上显示了,从而实现了数据绑定。比方显示Cursor中全部数据的ListActivity,其视图层就是一个ListView。将数据封装为ListAdapter,并传递给ListView。数据就在ListView中现实。Android Controller 是非常完备,提供Activity,Service,Broadcast 和 Receiver 等等机制。

  3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理。当然对业务计算等操作也是必须放在的该层的。

  3,设计模式和ioc(控制反转)

  毫无疑问。android的之所以可以成为一个开放的气象万千的系统,与设计模式的精妙应用是分不开的,仅仅要你略微用心观察,就会发如今android中到处都是a设计模式或者设计模式的联合运用,设计模式是您想游刃有余的驾驭android必须掌握的:   

  android框架魅力的源泉在于ioc,在开发android的过程中你会时刻感受到ioc带来的巨慷慨便,就拿activity来说,以下的函数是框架调用自己主动调用的:

  protected  void  oncreate(bundle savedinstancestate);

  不是程序编写者主动去调用。反而是用户写的代码被框架调用。这也就反转了!当然ioc本身的内涵远远不止这些,可是从这个样例中也能够窥视出ioc带来的巨大优点。此类的样例在android随处可见,比如说数据库的管理类。比如说android中sax的handler的调用等。有时候。您甚至须要自己编写简单的ioc实现

MVC优点:从用户的角度出发,用户能够依据自己的需求,选择自己合适的浏览数据的方式。比方说,对于一篇在线文档,用户能够选择以HTML网页的方式阅读,也能够选择以pdf的方式阅读。从开发者的角度,MVC把应用程序的逻辑层与界面是全然分开的。最大的优点是:界面设计人员能够直接參与到界面开发。程序猿就能够把精力放在逻辑层上。

而不是像曾经那样。设计人员把全部的材料交给开发者。由开发者来实现界面。在Eclipes工具中开发Android採用了更加简单的方法,设计人员在DroidDraw中设计界面,以XML方式保存。在Eclipes中直接打开就能够看到设计人员设计的界面。

http://www.pocketdigi.com/20131223/1231.html

http://www.tuicool.com/articles/maQNNz

时间: 2024-11-08 21:43:04

Android和MVC的相关文章

Android中MVC模型(复合模式)

mvc是model,view,controller的缩写,mvc包括三个部分: 1.模型(model)对象:是应用程序的主体部分,全部的业务逻辑都应该写在该层. 2.视图(view)对象:是应用程序中负责生成用户界面的部分.也是在整个mvc架构中用户唯一能够看到的一层,接收用户的输入,显示处理结果. 3.控制器(control)对象:是依据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给m处理. android鼓舞弱耦合和组

Android与MVC设计模式

写在前面,之前做过一段时间移动开发,后来因为工作原因搁浅了,最新重新拿起Android权威编程指南学习,顺道做个学习笔记. 首先呢,我想说无论是计算机科班出身还是培训班出身,都听说过高内聚低耦合以及MVC这两个词.MVC模式就是为了解决软件工程过程中内聚与耦合的关系.(维基中查看内聚 耦合的定义) MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). MVC模式最

Android入门:MVC模式(中)

MVC 模式的最基本概念是分层设计,把我们的代码基于 View(视图).Model(模型).Controller(控制器)进行分类封装,这样做的目的是为了清晰结构,使代码更易维护和扩展. 在上一篇文章中,我们完成了计算器的界面还原,但严格来说并不是真正的 View 类,因为它还没反映视图的逻辑.在这次文章中,我们将编写计算器程序的 View 部分,Let's Go! (注意:这次在代码的注释中写了较多的点,所以可以多看注释部分) 一,初识 Activity Activity(活动)作为 Andr

Android之MVC模式的使用

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑. Model 层处理数据,业务逻辑等: View 层处理界面的显示结果: Controller层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层. 案例: public class

Android 初识 MVC、MVP框架

转载请标明出处: http://blog.csdn.net/airsaid/article/details/51315096 本文出自:周游的博客 前言 MVC MVP 前言 MVC.MVP.MVVP相信大家已经耳熟能详了,作为Android最出名的三个框架,它们的应用是非常的广泛.这篇博客就来简单介绍下其中二种框架.也加强下自己对这方面的了解.由于自己菜鸟一枚,有不对和需要补充的地方欢迎评论~ MVC MVC全名是:Model(模型) View(视图) Controller(控制器) 是软件架

android中MVC,MVP和MVVM三种模式详解析

我们都知道,Android本身就采用了MVC模式,model层数据源层我们就不说了,至于view层即通过xml来体现,而 controller层的角色一般是由activity来担当的.虽然我们项目用到了MVP模式,但是现在人们并没有总结出一种规范,所以MVP模式的写法并不统一,而至于MVVM模式看网上的呼声似乎也是赞同和拍砖的参半,所以对于这几种模式我也不发表意见了,适合自己的才是最好的.下面是我看到的关于这几种模式的几篇文章,整合了一下分享给大家. ----------------------

Android之MVC模式

MVC概述: MVC模式是软件工程中的一种软件架构,Mode(模型)-View(视图)-Controler(控制器)的缩写; MVC模式将一个交互式应用程序分为3个组件: Model(模型):业务逻辑层,包含核心功能和数据并实现核心业务逻辑 View(视图):表示层,向用户显示信息 Controller(控制器):控制层,处理用户输入,并实现View层跟Model层的协同工作 MVC应用领域: 具有灵活人机界面的交互方式应用程序: 可以灵活选择不同的信息显示方式 可以灵活选择用户的输入方式 针对

认清Android框架 MVC,MVP和MVVM

编者按:现在很多时候,我们都是面向搜索(或 Google 或百度).GitHub 编程,那么,在早期没有互联网的情况下,该如何学习编程,成为一名真正的开发者?亦或是作为一名小白,如何进入互联网编程时代?本文作者分享自己从 0 到 1 的编程成长经历,希望帮助更多的开发者踏出职业生涯的第一步. 640?wx_fmt=png&wxfrom=5&wx_lazy=1 我从 11 岁开始就梦想成为一名黑客,一名真正的黑客,但那时我并没有非常高端的电脑,也没有电影里面出现的那种非常炫酷的双显示屏,甚至

Android进阶笔记07:用MVP架构开发Android应用(MVC 和 MVP)

转载出:http://kymjs.com/code/2015/11/09/01 1. 为什么需要MVP ? 软件中最核心的,最基本的东西是什么?  答:是的,是数据.我们写的所有代码,都是围绕数据的.      围绕着数据的产生.修改等变化,出现了业务逻辑.      围绕着数据的显示,出现了不同的界面技术.没有很好设计的代码,常常就会出现数据层(持久层)和业务逻辑层还有界面代码耦合的情况.ORM等框架,解耦合了业务逻辑和数据之间的耦合,业务逻辑不再关心底层数据如何存储和读取.所有数据呈现给业务