志在指尖
用双手敲打未来

android开发(android开发三大框架)

  android开发

Android是基于Linux的免费开源操作系统。Android分为四层,从高层到底层,应用程序层,应用程序框架层,系统运行时层和Linux内核层。
Google推出了开源Android系统,该系统现已得到广泛使用。开发环境将不受各种限制的限制。开发人员可以修改开源代码,以实现和开发具有实用图形显示,友好界面等功能的各种实用的手机App软件。
Android是基于Google开发的Linux平台的开源手机操作系统。它包括操作系统,用户界面和应用程序,这是移动电话正常工作所需的所有软件,并且没有排他的版权障碍阻碍了移动行业的创新。Google与开放移动联盟合作开发了Android,该联盟由30多个技术和无线应用领导者组成,包括中国移动,摩托罗拉,高通,HTC和T-Mobile。通过与运营商,设备制造商,开发商和其他有关方面建立深入的合作伙伴关系,我们希望通过建立标准化和开放的手机软件平台,在移动行业中形成开放的生态系统。我们相信,此举必将促进更好,更快的创新,并为移动用户提供不可预测的应用程序和服务。
Android具有四个基本组件:活动,服务,接收的广播,内容提供者。活动是四个组成部分中最基本的组成部分,但其基础与简单和不重要一样。相反,Activity是基本组成部分,学习好Activity是我们的开发人员学习Android的前提。
作为Google企业战略的重要组成部分,Android将进一步促进实现“随时随地为所有人提供信息”的企业目标。我们发现,全球许多手机用户从未使用过任何基于Android的手机。Google的目标是使(移动通信)独立于设备甚至平台。为此,Android将补充而不是取代Google长期以来的移动开发策略:通过与全球手机制造商和移动运营商建立伙伴关系,开发有用且有吸引力的移动服务,并推广这些产品。 android

android开发三大框架

三大主流模式
  MVC架构设计模式:MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写。
  MVP架构设计模式:MVC全名是ModelViewPersenter,MVP由MVC演变而来,是现在主流的开发模式。
  MVVM架构设计模式:MVVM全名是Model-View-ViewModel,它本质上就是MVC的改进版。

MVC(模型-视图-控制器)

为什么AndroidMVC架构是虚构的?MVC分层的概念来自Java背景Spring框架。其他的Controller和View层代码确实是分开的。Android在哪里划分?我敢于猜测:发明Android-MVP架构时,每个人都不知道如何调用原始的Android架构,因此他们强行将Spring的MVC命名为MVC。来。
控制器层的初衷是处理事件的分发和响应。将Activity视为Controller层不是没有可能,但是由于View和Controller没有分层,因此不需要牵强到MVC。
因此,Android中所谓的MVC并不意味着分层架构。分层架构不一定不好吗?当然,更不用说小型应用程序了,甚至Google自己的应用程序也具有数千行代码,而Activity则具有数千行代码。(我想找到一个例子。我发现最新版本的aosp中的Activity和Fragment代码大大简化了)。
在代码领域,很多事情并非全有。我已经看到了许多具有各种体系结构,设计模式和封装基类的商业项目。最后,Presenter中只有几行代码,甚至只有一行代码。因此,对于小型项目,如果Activity中的代码不繁重,则无需各个层。对于可能写为大型项目的项目,您也不能先对其进行分层,然后在需要重建时再进行重构。如果您确实想要数千行的活动,则绝对不建议这样做。读数太差,很难定位和修改。android框架

广泛用于商业项目的MVP(模型-视图-演示器)

MVP架构在Android领域非常成熟。我见过的许多商业项目都喜欢使用MVP架构。自然,不用说,所有与UI不相关的逻辑代码都将被提取并放置在Presenter层中,并且View层和Presenter层的功能均由接口明确定义。在这种情况下,结构级别是明确的,并且易于阅读和修改。
但是,使用MVP架构的项目往往被过度封装。基本上,BaseActivity,BaseFragment,BasePresenter,BaseView,BaseModel等将被封装。封装使我们可以重用更多代码,而减少重复代码。但是封装有利可图且无害吗?当然不是,封装有时会牺牲代码的灵活性。例如,如果在基类中定义了太多的行为,则子类仅在要修改它时才可以覆盖它。但是可能会有一个例外,因此地点会有所不同。如果封装太死了,许多地方将不得不重写。因此,基类中唯一可以确保所有子类一致的事物。不要试图将所有东西都塞进基类。我当时正在研究的项目中使用的mvp-dagger架构创建了一个新的Fragment,可能添加了或修改了7或8个类别,我不得不说这真的很费力。
毫无疑问,MVP将代码分层的概念引入了Android,这确实是一个好习惯。但是在使用MVP之前,请考虑您是否可以接受至少四个或五个类别的页面。

最“流行”的MVVM(模型-视图-视图模型)

为什么加双引号很受欢迎,因为MVP在Android领域中最受欢迎,而在Javascript前端领域中,Angular,Vue和React都是MVVM架构。因此,MVVM真的很爆炸。至于为什么AndroidMVVM尚未流行(至少我的许多同事从未使用过,我今年才真正使用过)?之前我曾与微信群中的一位网友讨论过,我认为他说的很合理:MVP架构是在过去几年Android开发炙手可热时诞生的,每个人都接受了有关MVP的采访。现在已经出现了新一代的MVVM架构,Android开发市场已经降温,每个人都没有动力转向新的设计模式。毕竟,即使没有架构模式,也可以开发大型项目吗?
MVP和MVVM有什么区别?我也读了很多文章,但是谈话很便宜。无论您阅读了多少书,您仍然必须进行实际练习才能感受到MVVM体系结构的有用性。我也理解为什么三个主要的JS前端框架都使用此体系结构。
MVP和MVVM之间的差异是P和VM之间的差异。Presenter层自行处理与UI无关的逻辑,最后将处理后的数据传输到View层进行显示;ViewModel是将Model和View层关联的中间层,允许View层响应地显示数据。我认为,VM的核心思想是UI回调。View层可以通过ViewModel直接动态显示数据。数据更改时,我们不需要回调UI。这样可以节省大量的UI代码。难怪前端喜欢MVVM。
有两种主要的方法来实现AndroidMVVM。一种是监视数据,例如在数据更改时使用LiveData执行监视器的回调,这样就不必在每次更改数据时手动修改UI。第二个是[DataBinding]{https://developer.android.com/topic/libraries/data-binding/}框架。在布局xml中定义可观察的数据,然后将数据直接填充到控件中。通常,我们将封装要显示在ViewModel层代码中的最终数据。您还可以对xml中的数据执行简单的操作。您可以在此处找到特定的数据操作。
MVP并没有真正减少代码,只是分层了代码。MVVM不仅使代码分层更加整洁,而且减少了很多UI回调代码。因此,在使用MVVM之后,我爱上了它,我也相信您!

未经允许不得转载:IT技术网站 » android开发(android开发三大框架)
分享到: 更多 (0)

评论 2

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载