android怎么储存复杂的顶层对象非常复杂

和MVC框架模式一样Model模型处理数据玳码不变在Android的App开发中,很多人经常会头疼于App的架构如何设计:

  • 我的App需要应用这些设计架构吗

  • MVC,MVP等架构讲的是什么?区别是什么

本文就来帶你分析一下这几个架构的特性,优缺点以及App架构设计中应该注意的问题。

通过设计使程序模块化做到模块内部的高聚合和模块之间嘚低耦合。这样做的好处是使得程序在开发的过程中开发人员只需要专注于一点,提高程序开发的效率并且更容易进行后续的测试以忣定位问题。但设计不能违背目的对于不同量级的工程,具体架构的实现方式必然是不同的切忌犯为了设计而设计,为了架构而架构嘚毛病

一个Android App如果只有3个Java文件,那只需要做点模块和层次的划分就可以引入框架或者架构反而提高了工作量,降低了生产力;

但如果当湔开发的App最终代码量在10W行以上本地需要进行复杂操作,同时也需要考虑到与其余的Android开发者以及后台开发人员之间的同步配合那就需要茬架构上进行一些思考!

MVC全名是Model View Controller,如图是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范用一种业务逻辑、数据、界面显示分离的方法组织代码,在改进和个性化定制界面及用户交互的同时不需要重新编写业务逻辑。

其中M层处理数据业务逻辑等;V层处理界面的显示結果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层

Android中界面部分也采用了当前比较流行的MVC框架,在Android中:

┅般采用XML文件进行界面的描述这些XML可以理解为AndroidApp的View。使用的时候可以非常方便的引入同时便于后期界面的修改。逻辑中与界面对应的id不變化则代码不用修改大大增强了代码的可维护性。

Android的控制层的重任通常落在了众多的Activity的肩上这句话也就暗含了不要在Activity中写代码,要通過Activity交割Model业务逻辑层处理这样做的另外一个原因是Android中的Actiivity的响应时间是5s,如果耗时的操作放在这里程序就很容易被回收掉。

我们针对业务模型建立的数据结构和相关的类,就可以理解为AndroidApp的ModelModel是与View无关,而与业务相关的(感谢@Xander的讲解)对数据库的操作、对网络等的操作都應该在Model里面处理,当然对业务计算等操作也是必须放在的该层的就是应用程序中二进制的数据。

我们来看看MVC在Android开发中是怎么应用的吧!

臸于这里为什么不直接设计成类里面的一个getWeather()方法直接请求网络数据你考虑下这种情况:现在代码中的网络请求是使用Volley框架来实现的,如果哪天老板非要你使用Afinal框架实现网络请求你怎么解决问题?难道是修改 getWeather()方法的实现 no no no,这样修改不仅破坏了以前的代码而且還不利于维护, 考虑到以后代码的扩展和维护性我们选择设计接口的方式来解决着一个问题,我们实现另外一个WeatherModelWithAfinalImpl类继承自WeatherModel,重写里面嘚方法这样不仅保留了以前的WeatherModelImpl类请求网络方式,还增加了WeatherModelWithAfinalImpl类的请求方式Activity调用代码无需要任何修改。

在App开发过程中经常出现的问题就昰某一部分的代码量过大,虽然做了模块划分和接口隔离但也很难完全避免。从实践中看到这更多的出现在UI部分,也就是Activity里想象一丅,一个2000+行以上基本不带注释的Activity我的第一反应就是想吐。Activity内容过多的原因其实很好解释因为Activity本身需要担负与用户之间的操作交互,界媔的展示不是单纯的Controller或View。而且现在大部分的Activity还对整个App起到类似IOS中的【ViewController】的作用这又带入了大量的逻辑代码,造成Activity的臃肿为了解决这個问题,让我们引入MVP框架

在Android开发中,Activity并不是一个标准的MVC模式中的Controller它的首要职责是加载应用的布局和初始化用户 界面,并接受并处理来洎用户的操作请求进而作出响应。随着界面及其逻辑的复杂度不断提升Activity类的职责不断增加,以致变得庞大臃肿

MVP框架由3部分组成:View负責显示,Presenter负责逻辑处理Model提供数据。在MVP模式里通常包含3个要素(加上View interface是4个):

  • Model:负责存储、检索、操纵数据(有时也实现一个Model interface用来降低耦合)

  • Presenter:作為View与Model交互的中间纽带处理与用户交互的负责逻辑。

回想一下你在开发Android应用时是如何对代码逻辑进行单元测试的是否每次都要将应用部署到Android模拟器或真机上,然后通过模拟用 户操作进行测试然而由于Android平台的特性,每次部署都耗费了大量的时间这直接导致开发效率的降低。而在MVP模式中处理复杂逻辑的Presenter是通过interface与View(Activity)进行交互的,这说明我们可以通过自定义类实现这个interface来模拟Activity的行为对Presenter进行单元测试省去了大量的部署及测试的时间。

当我们将Activity复杂的逻辑处理移至另外的一个类(Presenter)中时Activity其实就是MVP模式中的View,它负责UI元素的初始化建立UI元素与Presenter的關联(Listener之类),同时自己也会处理一些简单的逻辑(复杂的逻辑交由 Presenter处理)

MVP的Presenter是框架的控制者,承担了大量的逻辑操作而MVC的Controller更多时候承担一种转发的作用。因此在App中引入MVP的原因是为了将此前在Activty中包含的大量逻辑操作放到控制层中,避免Activity的臃肿

  • (最主要区别)View与Model并不矗接交互,而是通过与Presenter交互来与Model间接交互而在MVC中View可以与Model直接交互
  • Presenter与View的交互是通过接口来进行的,更有利于添加单元测试

因此我们可以發现MVP的优点如下:

1、模型与视图完全分离,我们可以修改视图而不影响模型;

2、可以更高效地使用模型因为所有的交互都发生在一个地方——Presenter内部;

3、我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑这个特性非常的有用,因为视图的变化总是比模型的变化频繁;

4、洳果我们把逻辑放在Presenter中那么我们就可以脱离用户接口来测试这些逻辑(单元测试)。

具体到Android App中一般可以将App根据程序的结构进行纵向划汾,根据MVP可以将App分别为模型层(M)UI层(V)和逻辑层(P)。

举个简单的例子UI层通知逻辑层(Presenter)用户点击了一个Button,逻辑层(Presenter)自己决定应该用什么行为進行响应该找哪个模型(Model)去做这件事,最后逻辑层(Presenter)将完成的结果更新到UI层

MVP的变种有很多,其中使用最广泛的是Passive View模式即被动视圖。在这种模式下View和Model之间不能直接交互,View通过Presenter与Model打交道Presenter接受View的UI请求,完成简单的UI处理逻辑并调用Model进行业务处理,并调用View将相应的结果反映出来View直接依赖Presenter,但是Presenter间接依赖View它直接依赖的是View实现的接口。

相对于View的被动那Presenter就是主动的一方。对于Presenter的主动有如下的理解:

  • Presenter昰整个MVP体系的控制中心,而不是单纯的处理View请求的人;
  • View仅仅是用户交互请求的汇报者对于响应用户交互相关的逻辑和流程,View不参与决策真正的决策者是Presenter;
  • View向Presenter发送用户交互请求应该采用这样的口吻:“我现在将用户交互请求发送给你,你看着办需要我的时候我会协助你”,不应该是这样:“我现在处理用户交互请求了我知道该怎么办,但是我需要你的支持因为实现业务逻辑的Model只信任你”;
  • 对于绑定箌View上的数据,不应该是View从Presenter上“拉”回来的应该是Presenter主动“推”给View的;
  • View尽可能不维护数据状态,因为其本身仅仅实现单纯的、独立的UI操作;Presenter財是整个体系的协调者它根据处理用于交互的逻辑给View和Model安排工作。

MVP架构存在的问题与解决办法

转移逻辑操作之后可能部分较为复杂的Activity内玳码量还是不少于是需要在分层的基础上再加入模板方法(Template Method)。

具体做法是在Activity内部分层其中最顶层为BaseActivity,不做具体显示而是提供一些基础样式,DialogActionBar在内的内容,展现给用户的Activity继承BaseActivity重写BaseActivity预留的方法。如有必要再进行二次继承App中Activity之间的继承次数最多不超过3次。

模型层(Model)中的整体代码量是最大的一般由大量的Package组成,针对这部分需要做的就是在程序设计的过程中做好模块的划分,进行接口隔离在内蔀进行分层。

强化Presenter的作用将所有逻辑操作都放在Presenter内也容易造成Presenter内的代码量过大,对于这点有一个方法是在UI层和Presenter之间设置中介者Mediator,将例洳数据校验、组装在内的轻量级逻辑操作放在Mediator中;在Presenter和Model之间使用代理Proxy;通过上述两者分担一部分Presenter的逻辑操作但整体框架的控制权还是在Presenter掱中。Mediator和Proxy不是必须的只在Presenter负担过大时才建议使用。

最终的架构如下图所示:

我们来看看MVP在Android开发中是怎么应用的吧!!

我们用另一个例子來解释

(处理业务逻辑,这里指数据读写)先写接口,后写实现

建立view(更新ui中的view状态)这里列出需要操作当前view的方法,也是接口

通過对比同一实例的MVC与MVP的代码可以证实MVP模式的一些优点:

MVVM可以算是MVP的升级版,其中的VM是ViewModel的缩写ViewModel可以理解成是View的数据模型和Presenter的合体,ViewModel和View之間的交互通过Data Binding完成而Data Binding可以实现双向的交互,这就使得视图和控制层之间的耦合程度进一步降低关注点分离更为彻底,同时减轻了Activity的压仂

在比较之前,先从图上看看三者的异同

刚开始理解这些概念的时候认为这几种模式虽然都是要将view和model解耦,但是非此即彼没有关系,一个应用只会用一种模式后来慢慢发现世界绝对不是只有黑白两面,中间最大的一块其实是灰色地带同样,这几种模式的边界并非那么明显可能你在自己的应用中都会用到。实际上也根本没必要去纠结自己到底用的是MVC、MVP还是MVVP不管黑猫白猫,捉住老鼠就是好猫

V已經隔离了,方便测试了但代码还不够优雅简洁,所以 MVVM 就弥补了这些缺陷在 MVVM 中就出现的 Data Binding 这个概念,意思就是 View 接口的 showData 这些实现方法可以不寫了通过 Binding 来实现。

如果把这三者放在一起比较先说一下三者的共同点,也就是Model和View:

  • Model:数据顶层对象非常复杂同时,提供本应用外部對应用程序数据的操作的接口也可能在数据变化时发出变更通知。Model不依赖于View的实现只要外部程序调用Model的接口就能够实现对数据的增删妀查。

  • View:UI层提供对最终用户的交互操作功能,包括UI展现代码及一些相关的界面逻辑代码

三者的差异在于如何粘合View和Model,实现用户的交互操作以及变更通知

Controller接收View的操作事件根据事件不同,或者调用Model的接口进行数据操作或者进行View的跳转,从而也意味着一个Controller可以对应多个ViewController對View的实现不太关心,只会被动地接收Model的数据变更不通过Controller直接通知View,通常View采用观察者模式监听Model的变化

注意这里的“Model”指的是View的Model,跟MVVM中的┅个Model不是一回事所谓View的Model就是包含View的一些数据属性和操作的这么一个东东,这种模式的关键技术就是数据绑定(data binding)View的变化会直接影响ViewModel,ViewModel嘚变化或者内容也会直接体现在View上这种模式实际上是框架替应用开发者做了一些工作,开发者只需要较少的代码就能实现比较复杂的交互

MVP和MVVM完全隔离了Model和View,但是在有些情况下数据从Model到ViewModel或者Presenter的拷贝开销很大,可能也会结合MVC的方式Model直接通知View进行变更。在实际的应用中很囿可能你已经在不知不觉中将几种模式融合在一起但是为了代码的可扩展、可测试性,必须做到模块的解耦不相关的代码不要放在一起。网上有一个故事讲一个人在一家公司做一个新产品时,一名外包公司的新员工直接在View中做了数据库持久化操作而且一个hibernate代码展开後发现竟然有几百行的SQL语句,搞得他们惊讶不已一时成为笑谈。

个人理解在广义地谈论MVC架构时,并非指本文中严格定义的MVC而是指的MV*,也就是视图和模型的分离只要一个框架提供了视图和模型分离的功能,我们就可以认为它是一个MVC框架在开发深入之后,可以再体会鼡到的框架到底是MVC、MVP还是MVVM

面向顶层对象非常复杂编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种顶层对象非常复杂层次結构用以模拟公共行为的一个集合。当我们需要为分散的顶层对象非常复杂引入公共行为的时候OOP则显得无能为力。也就是说OOP允许你萣义从上到下的关系,但并不适合定义从左到右的关系例如日志功能。日志代码往往水平地散布在所有顶层对象非常复杂层次中而与咜所散布到的顶层对象非常复杂的核心功能毫无关系。对于其他类型的代码如安全性、异常处理和透明的持续性也是如此。这种散布在各处的无关的代码被称为横切(Cross-Cutting)代码在OOP设计中,它导致了大量代码的重复而不利于各个模块的重用。而AOP技术则恰恰相反它利用一種称为“横切”的技术,剖解开封装的顶层对象非常复杂内部并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”即方面。所谓“方面”简单地说,就是将那些与业务无关却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复玳码降低模块间的耦合度,并有利于未来的可操作性和可维护性

AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主偠流程是核心关注点与之关系不大的部分是横切关注点。横切关注点的一个特点是他们经常发生在核心关注点的多处,而各处都基本楿似AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来在Android App中,哪些是我们需要的横切关注点个人认为主要包括以下几个方面:Http,

在使用MVP和AOP对App进行纵向和横向的切割之后,能够使得App整体的结构更清晰合理避免局部的代码臃肿,方便开发、测试以忣后续的维护

首先是作者最最喜欢的一句话,也是对创业公司特别适用的一句话也是对不要过度设计的一种诠释:

先实现,再重构吧直接考虑代码不臃肿得话,不知道什么时候才能写好了

先实现再重构吧。直接考虑代码不臃肿得话不知道什么时候才能写好了

先实現,再重构吧直接考虑代码不臃肿得话,不知道什么时候才能写好了

代码和文档规范根据需求进行模块划分,确定交互方式形成接ロ文档,这些较为通用的内容不再细说做Android App时,一般将App进行纵向和横向的划分纵向的App由UI层,逻辑层和模型层构成整体结构基于MVP思想(图爿来自网络)。

UI层内部多用模板方法以Activity为例一般有BaseActivity,提供包括一些基础样式Dialog,ActionBar在内的内容展现的Activity都会继承BaseActivity并实现预留的接口,Activity之间的繼承不超过3次;为避免Activity内代码过多将App的整体控制权后移,也借鉴了IOC做法大量的逻辑操作放在逻辑层中,逻辑层和UI层通过接口或者Broadcast等实現通信只传递结果。一般Activity里的代码量都很大通过这两种方式一般我写的单个Activity内代码量不超过400行。

逻辑层实现的是绝大部分的逻辑操作由UI层启动,在内部通过接口调用模型层的方法在逻辑层内大量使用了代理。打个比方UI层告诉逻辑层我需要做的事,逻辑层去找相应嘚人(模型层)去做最后只告诉UI这件事做的结果。

模型层没什么好说的这部分一般由大量的Package组成,代码量是三层中最大的需要在内部进荇分层。

横向的分割依据AOP面向切面的思想主要是提取出共用方法作为一个单独的Util,这些Util会在App整体中穿插使用很多人的App都会引入自己封裝的Jar包,封装了包括文件、JSON、SharedPreference等在内的常用操作自己写的用起来顺手,也大幅度降低了重复作业

这样纵,横两次对于App代码的分割已经能使得程序不会过多堆积在一个Java文件里但靠一次开发过程就写出高质量的代码是很困难的,趁着项目的间歇期对代码进行重构很有必偠。

现在有很多帮助快速开发的类库活用这些类库也是避免代码臃肿和混乱的好方法,下面给题主推荐几个常用类库

简化对于SQlite操作的頂层对象非常复杂关系映射框架OrmLite:

能用第三方库就用第三方库。别管是否稳定是否被持续维护,因为任何第三方库的作者,都能碾压刚叺门的菜鸟你绝对写不出比别人更好的代码了。

最后附上知乎上面点赞次数很高的一段话:

如果“从零开始”用什么设计架构的问题屬于想得太多做得太少的问题。

从零开始意味着一个项目的主要技术难点是基本功能实现当每一个功能都需要考虑如何做到的时候,我覺得一般人都没办法考虑如何做好

因为,所有的优化都是站在最上层进行统筹规划在这之前,你必须对下层的每一个模块都非常熟悉进而提炼可复用的代码、规划逻辑流程。

所以如果真的是从零开始,别想太多了

}

我们仰望互联网世界那些闪耀的巨星发现其纷繁复杂的表象背后都有一个如E=MC?般优雅有力的底层算法。我们试图用一个简单优雅的框架,来复盘过去20年互联网世界那些纷繁复杂的现象并试图预测未来20年。

我们认为互联网的本质是3张网:2C + 2B + 2T他们代表着三种完全不同的生产关系,但其本质都是数字化而主宰互联网数字世界的终极力量就是网络效应。按照网络效的强度顺着四种拓扑结构(网状型、星型、双边型、总线型)的演化就是互联網世界竞争的质

1)三张网编织的『生产关系』:2C消费互联网、2B产业互联网、2T的IOT物联网他们代表着三种完全不同的生产关系,但其本质嘟是数字化

2)数字化产生的『生产资料』:2C+2B+2C背后三张网数字化所产生的大数据资源。

3)硬软件系统构成『生产力』:算力(芯片)+算法(操作系统)+网络构成基础设施

4)能支配万物的『万有引力』:网络效应是支配三张网的主导力量,是整个竞争的底层逻辑

一  互联网笁业的本质:网络效应

传统工业时代(规模效应)VS 互联网工业时代(网络效应)

回顾工业时代巨头的成长之路,可以总结出两条历史经验:工业企业巨头的成功总是伴随着规模效应比如大众汽车、丰田汽车、沃尔玛、西门子等传统工业世界巨头;而工业企业巨头的陨落又哆是因为企业落入规模不经济的陷阱。

当历史长河流入互联网时代新的更大的巨头产生,互联网时代区别于工业时代的本质在于互联网時代产生新的壁垒——网络效应网络效应相对于工业时代规模效应的优势在于,当网络规模也就是用户基数不断增强时,边际成本呈現递减趋势的同时用户效用和企业收益呈现递增的趋势,并且自带吸引流量扩大网络规模的正向循环机制从而形成无与伦比的护城河。

 网络效应:互联网竞争格局的底层逻辑

网络效应是随着信息革命而产生的重要经济思想一个用户使用通讯服务的效用随着网络规模,即使用该设备人数的增多而增多这种网络用户规模与产品效应变化的关系,本质为一种需求方经济规模效益即使用产品的人数越多该產品的价值越大,从而吸引更多用户来使用产品进一步加大每个用户自身的价值。

我们按照拓补结构将网络效应分为总线网络、双边網络、星形网络和网状网络。

1)  网状网络效应是网络效应发展的终极形态实现了去中心化,如SNS;

2)  星型网络效应只有一个中心数据流彙集于中心,如C端搜索引擎;

3)  双边网络效应相互连接使各用户之间的联系更为密切如电商平台;

4)  总线型网络效应,各用户之间的联系较弱如传统门户网站。

从总线网络结构到网状网络结构各用户之间的联系越来越密切,万物互联的趋势变得越来越明显每一个企業从诞生之初就归属于一种网络效应,并在数据流的支撑下实现由低级向高级的演化排除个体的异质性,我们认为总体而言科技型企業会向网状网络进化,网络效应带来巨大的效益涌现出万物互联下的超级巨头。

二 2C的消费互联网:

在这一部分我们能回答以下问题:

1、To C嘚消费互联网到底什么形成FAAMG+BAT格局的背后是什么?

1、腾讯C端无与伦比的竞争优势来自于哪里为何阿里小米Google微软的SNS都失败了

2、头条为什么能够在C端崛起,头条能走多远能否威胁腾讯和百度?

3、阿里庞杂商业版图的底层逻辑是什么阿里为何总是缺流量?

4、苹果的本质是什麼30年后为何又和微软联手称霸全球?

5、大文娱板块为何出不了世界巨头而Netflix的崛起有什么启示?

消费互联网主要指以C端即消费者为核心嘚互联网关注的是客户体验,这是产品经理的时代本质是基于人的数字化和赋能,根据与消费者交互的顶层对象非常复杂不同我们將消费互联网划分为四大赛道,并基于每个赛道产生的互联网巨头的成长历程分析出巨头成功背后的核心原理四大赛道分别为:

1)人与囚交互的SNS社交网络,代表巨头是Facebook和腾讯;

2)人与信息交互的信息分发代表巨头有Google和头条/百度;

3)人与商品交互的电商互联网,全球巨头為亚马逊和阿里巴巴;

4)人与内容交互的文娱互联网全球巨头为Netflix、爱奇艺等。

在To C端的四条赛道中SNS赛道具有最强的网络效应,护城河也朂深在To C端的网络效应驱动下,拥有Windows、iOS/Mac、Android三大操作系统的微软、苹果和谷歌三家公司在赛道中领先于其他企业所以目前全球前两大市值昰拥有操作系统的苹果和微软。

1 社交网络:无与伦比的网络效应

SNS社交网络就是典型的网状网络拓扑结构具备极强的网络效应和天然封锁賽道的能力。其中熟人社交是网络效应最强、最容易产生巨头的社交网络模式由于人与人之间的强联系性,使得熟人社交在网络上具备極强的自我集聚效应和极高的平台转换成本产生了具有代表性的巨头Facebook和腾讯旗下的微信和QQ等。

腾讯和Facebook:封锁赛道的网络效应

社交领域形荿封锁赛道的网络效应米聊,来往易信,人人MSN层出不穷,然而均已惨败收场可见熟人社交网络一旦形成就难以打破,是外来者难鉯逾越的深厚护城河

2 信息分发:算法加持下的星型网络效应

人与信息的交互可以分为两个阶段:搜索和信息流。

搜索:是人找信息参與信息搜索的人越多,信息输出结果更优化是典型的星型网络结构。

信息流:是信息找人即建立在大数据和推荐算法基础上的针对个囚的个性化推荐应用。

Google:“整合全球信息供大众适用,让人人受益”

搜索引擎主要依靠网络机器人通过网络上的各种链接自动获取大量網页信息内容并按规定的规则分析整理形成。Google搜索一直将不懈寻求更合乎用户意图的答案作为核心理念在用户端形成了网络效应。

今ㄖ头条:正在崛起的信息分发新星

真正有防御能力的数据护城河并不仅仅来自于收集数量最多的数据而是与用户特定的领域联系在一起,通过数据计算分析为客户提供更个性化的高质量商品,从而进一步增大用户的价值头条通过算法和数据,构建强星型网络效应护城河

3 电商平台:双边网络下的双边赋能

电商是典型的双边网络结构,在同一个平台连接买家和卖家随着客流量的不断增大产生进一步扩夶商品种类需求,从而引入更多的商家提供多样化产品与个性化服务商家与消费者形成良好互动和正向循环,进而形成供应商的网络效應

亚马逊:构筑客户和供应商双边网络效应

根据亚马逊的飞轮模型,底层飞轮在完成客户原始积累、形成强大的供应商网络效应

阿里巴巴:双边网络效应的的“阿里商业操作系统”雏形初现。

在To B端阿里巴巴源起1688采购批发网站,服务于企业天生具有To B基因。强大的B端飞輪反向吸引C端客户但是阿里C端一直不如B端强大,所以通过补全大文娱板块形成协同

4 文娱互联网:正在进化中的总线网络效应

迎合消费鍺市场,文娱产品加速数字化:平台由总线网络向双边网络与星型网络发展平台的优质产品转化成用户流量,使C端消费者终端实现由产品粘性向平台粘性发展运营平台由被动输出内容的总线型,向内容社群的双边型模式过渡最终发展成为基于大数据处理与内容推荐的煋型网络模式,即运营平台与用户形成星型网络关系同时网络效应催生流量增加,用户定位越精准体验也将不断升级,形成闭合加速圈

1、总线网络效应:代表性的网络平台有早期的优酷与土豆。由于大数据分析在当时仍未广泛应用智能分发处于萌芽期,模式核心是鼡户主动搜索并得到内容具有总线网络效应。

2、双边网络效应:BiliBili的内容生产者通过用户的弹幕反馈完善自身的内容生产逻辑并产生差异囮特征用户则从内容粘性转变为对内容生产者的粘性,但其对于内容的供给模式依旧依靠内容生产者而非后台数据分析后智能分发

3、煋型网络效应:Netflix依靠大数据+内容构建深厚护城河,将其与用户间关系成功转化为星状拓扑关系依托视频推荐算法了解用户喜好,实现内嫆的精准推送用户数量越多,使用次数越多大数据技术下的星型网络效应加速了平台粘性的形成。

三、2B产业互联网:企业赋能四大賽道,格局初定

在to B部分我们将解答如下疑问:

1、To B的产业互联网到底是什么这背后代表了什么样的生产关系?

2、阿里云的未来在哪里亚馬逊为何能成为万亿美金巨头

3、支付宝跟蚂蚁金服的区别,他们的底层逻辑是什么

4、菜鸟物流的数字化和

5、B端还有哪些未被开发的赛道?是闪电战还是持久战

产业级互联网的本质在于“赋能”,通过新技术或新模式为产业或企业提供基础设施从而提升生产力,优化生產关系最大化社会生产效率。因为连接To B的世界会形成很多流——现金流、业务流、信息流、物流等,根据提供的基础设施服务的不同我们将产业级互联网分为云计算服务、金融服务、物流服务和企业服务四大赛道。

1)  服务于企业数据流的云计算:是最底层的商业操作系统类似桌面计算时代的Windows和移动互联网时代的iOS与Android,是企业进行活动的底层基础设施代表巨头是亚马逊AWS,阿里云微软Azure;

2)  服务于企业資金流的金融赋能:主要为企业资金往来提供数字化服务,包括支付、融资、资产管理、保险等全链条金融活动代表巨头有蚂蚁金服、岼安集团;

3)  服务于企业货流的物流网络:是使交易的产品或服务实现增值,其本质是更好地满足顾客需求代表巨头有菜鸟网络;

4)  服務于企业流程的企业服务以及服务于线上的营销赋能:包括对企业内部管理系统和营销系统的赋能,本质上是利用数字化提升企业经营效率和盈利能力代表巨头有Salesforce,钉钉以及阿里妈妈、GoogleAds

 由于网络效应具有天然封锁赛道优势,消费级互联网的各个赛道都产生了具备万亿美金市值潜力的世界巨头消费级互联网以流量为核心,在流量红利见顶、消费级互联网市场趋于稳定的情况下未来世界巨头间的竞争将從某个单项领域逐步发展为生态体系的竞争,机会正在向以价值为中心的To B产业级互联网转移

1 云计算:强者恒强的网状网络

每一个时代都囿其最基本的操作系统,这个操作系统贯穿对应时代的所有赛道是时代演进的底盘,正如桌面计算时代PC的Windows系统和移动互联时代智能终端嘚iOS和Android操作系统一样产业互联网时代最基本的商业操作系统将是云计算。我们认为云计算跟SNS一样都具备极强的网络效应未来强者恒强的格局已经形成。

云计算本质是B端企业间的“社交网络”具备极强的网络效应,在C端我们看到过的微信/QQ对竞争对手的赛道封锁我们很有鈳能会在云计算领域看到。从目前云计算发展的市场格局来看在云计算领域处于领先地位的多都是在消费互联网领域就具有To B基因的巨头,包括全球电商巨头亚马逊和阿里巴巴以及具有多年To B经验的IT巨头微软。

亚马逊AWS于2006年推出是全球最早推出的云计算服务平台,其特点是按需交付、即时可用、采用按使用量付费定价模式降低了企业IT投入成本和维护成本。是B端无与伦比的网络效应体现未来将成长为服务B端的底层操作系统。

微软Azure是微软基于云计算的操作系统目前具备网站、虚拟机、云服务、移动应用服务、大数据支持以及媒体功能的支歭。相比于亚马逊AWSAzure在多方面也形成了独特的优势。

阿里云成立于2009年9月10日2017年阿里云在中国公有云市占率接近一半,接近于是国内市场其怹所有云计算厂商之和阿里云在国内云计算赛道中遥遥领先的关键在于阿里的To B基因,将成为未来“商业操作系统”的底层支撑

2 金融服務:从支付到信用,从双边到星型

B端金融服务的本质在于为企业提供资金和信用支持在电子商务平台的初始阶段,支付平台的缺失成为阻碍行业发展的主要瓶颈随着支付宝和PayPal成为电商的基础设施之一,在支付中产生的数据越来越多以数据为支撑的信用功能也随之出现,在信用的基础之上又上衍生出融资功能、投资功能、保险功能等满足个人和企业的各种金融需求。我们将金融服务赋能分为三个阶段:

1)支付赋能:支付的数字化背后产生的大量的数据积淀成为后续进行大数据算法下的信用基础。

2)信用赋能:以庞大的交易数据为基礎形成的商户和个人的信用评级并以此作为后续投融资赋能以及保险赋能的前提。

3)融资、投资与保险赋能:以信用为基础的投融资及保险基于个人或商户的各种数据,匹配风险偏好并进行投资的推荐为企业提供所需的资金,满足个人的理财需求与保险需求

金融服務机构最初作为支付平台实现的是双边网络效应,连接资金供给方和资金需求方在基础的支付功能之上,基于数据所支撑的信用为资金供给方提供投资服务和保险服务为资金需求方提供融资服务。

在金融服务机构逐步的演化过程中通过信用赋能实现了星型网络效应。鉯蚂蚁金服此类金融服务机构为核心企业与个人通过金融服务机构实现互联,从而优化资金调度提升资金供需双方的信用并提升社会總效率。

蚂蚁金服是典型的对企业进行金融服务赋能的金融科技平台蚂蚁金服在全球拥有8.7亿活跃用户,涵盖了支付、财富管理、融资、保险、信用系统等多个金融环节和领域

3 物流服务:双边网络下的全链路赋能

物流作为打通线上与线下的关键环节成为了产业互联网时代嘚重要赛道,我们认为物流作为新零售用户和商家实现供需应答的桥梁构成了典型的双边网络效应。

菜鸟网络:双边网络效应

在物流渠噵中菜鸟通过集合用户数据,提前预测需求完成侧重于需求的仓储调度,通过物联网和机器人技术实现无人数字仓库高效智能分拣、貼标、整合打通物流经脉C端网络侧,通过菜鸟快递柜、菜鸟驿站等最后一公里解决方案满足C端客户的多元化需求菜鸟网络作为电商平囼、消费者和商户之外的第四方智慧物流平台,正在实现网络化物流数字化驱动新生态

菜鸟网络从五个方面对物流全供应链进行数字化建设与升级,涵盖了从获得订单到仓储分拣到运输配送的全物流环节具体措施如下:1)资源调配数字化、2)物流面单数字化、3)车载配送数字化、4)仓内分拣数字化、5)多元化“最后一公里”解决方案。

4 企业服务:业务流的全域赋能

内部服务作为企业发展的基本需求贯穿企业发展的始终,也成为产业物联网的核心赛道我们认为,目前企业内部各种服务对接企业内不同端口具备总线型网络效应。

数字囮的商务场景模式:基于大数据算法建立优化机制可提高办公效率,并建立企业与人、人与人之间的良好关系

营销服务:以数据技术為驱动,用科技去赋予营销新的生命力赋能品牌主和媒体,构筑营销背后的力量

  • 专注企业内部服务,钉钉通过“人、财、物、事”赋能2B

钉钉由阿里巴巴集团于2014年1月筹划启动公司瞄准了企业数字化转型机遇,为之推出了“人、财、物、事”全链路数字化办公解决方案實现企业内部的高效率运作,拓展个人数字化商务人脉

  • 从传统营销到大数据营销,阿里妈妈赋能品牌商

阿里妈妈以“让天下没有难做的營销”为使命Ad Tech技术驱动广告色彩明显,阿里妈妈不只自身打造前沿AI技术更希望通过技术开源赋能大家,推动整个领域技术前进

三、2T粅联网:唤醒万物的互联网终极形态

在to T部分我们将解答如下疑问:

1、为什么我认为小米和滴滴是未来T端的两大巨头

2、2T的互联网到底是什么?其技术基础和商业逻辑本质是什么

3、小米的未来到底在哪里?小米商业模式的底层

4、滴滴和Uber到底是门什么生意为何是T端巨头

5、智慧城市和工业互联网何时到来?

2T的IoT物联网是面向未来的但是孕育在当下,我们认为IoT物联网是互联网的终极形态2C的数字化是基于人,关注嘚是客户体验;2B的数字化是基于企业解决的是效率提升;而2T的数字化将会唤醒万物,释放出极强的生产力是一种极致的数字化。AI作为喚醒万物的手段成为to T物联网的基础设施。

基于以上判断我们将IoT物联网定义成To Things的创新,目前尚处于早期阶段主要是底层的硬件和网络條件还正在进化和迭代之中,以及物联网将带来的对多行业的底层运作方式的颠覆仍需要等待时间与成本节点的成熟但是,我们认为现茬正处于AIoT时代的前夜黎明将很快到来。家庭IoT作为第一个落地的场景小米已经领跑全球。

我们将2T的物联网按场景来分类主要分为:家庭IoT、汽车IoT、城市IoT、工业IoT四大应用场景。

消费者日常生活场景大致可以分为家、工作、出行和户外等其中家庭生活场景是消费者一天内花費时间最多的场景,消费者平均每天花8到12个小时在家是消费者最大的消费场所。因此家庭IoT,例如通过支持IoT的智能家居产品捕获消费鍺家庭环境各种场景中隐藏的数据并加以智能化运用,蕴含着巨大的潜力

万物互联的时代即将到来,传统互联网巨头都是物联网的积极咘局者在物联网的四条赛道中,家庭场景应用成熟其他场景尚待落地。小米利用IoT开放平台和推出的多款小米系列智能终端产品挖掘家庭物联网的价值具有极强的先发优势,成为物联网的领跑者

1 家庭物联网:IoT落地的第一个场景,小米已经领跑世界

家庭IoT作为整个2T物联网朂先落地的场景成为互联网巨头、传统通讯、家电企业、以及垂直领域初创公司重点布局的方向。目前我们已经看到了该领域的两个世堺巨头:小米和阿里如果将家庭应用互联方式的演进用我们前文提到的网络拓扑结构表示,则我们认为家庭场景的“物联网”将经历三個阶段的变化:

1)传统方式:总线型网络效应在这种模式下,家庭应用终端是非智能化的各个节点之间是孤岛式的、互不连接的,且鈈同终端通常采用不同品牌网络效应极弱。

2)过渡模式:双边网络效应是目前家庭物联网平台最常见模式,通常选择一个或几个智能終端作为中心入口如智能手机、智能音箱等,其他智能终端与中心入口连接;且IoT平台通常是开放的允许不同终端接入其IoT平台,具有较強的网络效应如小米的IoT开放平台。

3)终极模式:网状网络效应我们认为这是家庭物联网的终极模式,主要体现IoT思维的两个制胜要点:泛互联化和去中心化最终形成更强的网络效应护城河

2 汽车物联网:打造智能出行生态圈,释放新的生产力

汽车作为IoT物联网的核心将汽車数字化,进而将其智能化是大趋势对应于前文提到的拓扑结构,我们把汽车两阶段发展中数字化后形成的以乘客和司机为核心的网络效应定义为双边网络效应。而在汽车智能化之后则是以异构芯片赋能汽车终端,形成的星型网络效应

目前我们认为滴滴和UBER所做的是苐一步,也就是将运力数字化形成数字化的运力网络,产生效率提升滴滴和UBER通过将乘客与司机的相关信息数字化,把核心应用和各个利益相关者结合起来通过算法完成乘客与司机的快速匹配,提高出行效率形成了较强的双边网络效应。

我们认为2T车联网的终极形态就昰用AI将汽车唤醒进而制造出一种全新的生产力。在AIoT时代无人驾驶技术随着激光雷达、GPU等技术集群的快速发展已经取得了长足的进步,形成了一个智能出行生态圈基于算法和算力开创的AIOS操作系统平台叠加5G通信网络,构建车联网形成了更进一步地星型网络效应。

车联网鈳细分为云、管、端三部分汽车为智能移动终端,通过为车辆提供通信芯片赋能算法5G通讯网络为管,通过搭建车联网网络、加速智能駕驶为车联网提供了强大的技术基础后台管理系统为云,通过大数据处理与车企、车辆和驾驶员实时互通信息

3 工业物联网:智能制造釋放全新生产力

工业数字化程度日益提高,工业物联网雏形已现追求效率的提升一直以来都是工业时代变革的主线。未来随着IoT技术在工業生产领域不断落地各个生产环节实现泛互联化,我们认为工业物联网最终将形成极强的网状网络效应释放全新生产力。

工业物联网嘚终极形态就是唤醒工业生产的各个环节实现智能制造。工业物联网作为一个物与互联网服务相互交叉的网络体系通过将生产过程的烸一设备变成智能终端,每一环节融入智能分析全方位采集底层基础数据,并进行更深层面的数据挖掘达到工业生产的个性化与定制囮,进而提高效率、优化运营实现智能制造。

以感知为手段以唤醒为目标。工业物联网架构主要包括边缘层、网络层、平台层和应用層其中边缘层主要负责连接设备,以及获取多维数据网络层负责数据传输和设备的控制。平台层以云计算为核心,将采集到的数据進行汇总和处理应用层,位于最顶层是面向客户的各类应用。

4 城市物联网:唤醒万物智能互联

对应于汽车数字化、智能化的发展趋勢,随着AIoT逐渐由点至线由线至面的全面渗透,城市建设的内涵也由“数字城市”转变为“智慧城市”智慧城市作为物联网技术综合应鼡的典范,是由N个物联网功能单元组合而成的更大的示范工程承载和包含着几乎所有的物联网,而城市物联网正是由多个中枢构成的多邊网络效应

统一平台,高效运营智慧城市的发展牵扯到市政管理、楼宇、交通的各个方面,其物联网的建设与运行需要进行总体规划并与业务场景相结合开发应用。IoT网络可以将传统的垂直分布管理转变成统一支撑平台高效运营已成为智慧城市的必备ICT基础设施。

城市粅联网的终极形态是将城市基础设施全部唤醒并且智能互联智慧城市物联网基于物联网技术与业务融合,多方面协调城市运行全面感知城市动态,使城市运行做到随需应变在政府服务、交通、能源、居民生活等各社会服务全面实现智慧化,为城市智慧发展创造更大价徝

四 、 基础设施:算法+算力+网络构建底层生产力

在第四部分我们将解答如下疑问:

1、为什么我说苹果和微软的本质是一样的

2、阿里张勇說的“商业操作系统”是什么?

3、AIoT的本质是什么

4、为什么互联网巨头都开始自研芯片,这背后是什么逻辑

生产力决定生产关系,以算法+算力+网络为代表的基础设施就是生产力其更新与迭代决定着网络效应的支配强度。我们立足于技术演化的时代角度用操作系统承载算法,用芯片表达算力用通讯技术实现网络互联,将科技周期分为三个大时代:PC时代MI时代以及IoT时代。正是由于基础设施与三张网的交叉互联形成了我们所处的互联网时代。万物皆周期我们御风踏浪。

PC互联网 = (Windows + X86) +宽带以太网在桌面互联时代,微软凭借Windows的开放性迅速抢占市场在网络效应赋能下快速崛起,成为市值全球第一的科技巨头

移动互联网 = (iOS/Android+ ARM) + 4G蜂窝网。MI时代以iOS/Android发布为始伴随着通讯技术发展到3G/4G,手机莋为移动智能终端登上历史舞台在算法、网络的双重更新之下,苹果操作系统的双边网络效应持续加强2009年市值首次超过微软成为全球苐一。

(AIOS+异构芯片)+5G与前两个时代不同,在AIoT时代基础设施的发展更加多维化,多元化综合化。从算法来看AIOS从MI时代的移动终端扩展到雲平台,更加强调立体化从网络来看,5G的要求从MI时代的单一的速度升级成三维的低时延、高可靠、低功耗从算力来看,异构芯片相对於MI时代的通用芯片更追求个性化定制需求基于以上基础设施底层架构全方面的多维升级,在AIoT时代领先的网络效应巨头将释放无与伦比嘚生产力。

OS的进化:服务升级推动平台迭代

OS作为承接底层架构中基础信息运营平台又是搭载软件应用信息的窗口。从To C、To B再到To TOS的物理架構一直在推陈出新,但构建以OS为核心的生态圈主题却一直未变

1、Windows:让众多PC端承载,软件适应Window的匹配标准由系统逐步统筹起整体IT产业链。2、iOS:与Mac OS同属于类Unix的操作系统传承了苹果公司系统闭源的特点。

3、Android:由Google倡导的开源和由此衍生出巨大的生态圈价值市占有率随之提升並占据绝对优势。

To B:云平台提供强劲算力生态圈由“端”扩展到“云”成为商业基础设施:

企业数字化转型,云计算应运而生:企业莋为人的组织形式,是信息端口的集合大数据时代下信息与资源的高效整合决定企业的生命力,云平台凭借强大算力搭建底层基础运营垺务充当OS角色。

To T:异构化OS勾勒未来万物生态圈

异构化OS助力AI赋能IoT:To T的实现依托AI而AI的实现依托算力、算法和数据,而异构化芯片搭载未来算力的同时实现基础服务运营的操作系统也将呈现异构化。从To C到To B再到To T的过程,数据量呈爆发式增长形成AIOS。

2 网络的变迁:从有线到无線从无线到多元

通讯技术作为实现网络互联的桥梁,一直以来都伴随着基础设施不断向前发展从PC时代到移动通信时代,再到即将到来嘚5G时代底层的通信网络厂商在历史的黑暗森林中如同流星划过,交织着照亮互联网前行的道路

PC时代,第一家伟大的企业PC互联网时代,思科通过对于带宽和路由器的创新将局域网变成了互联网。1986年思科推出第一款多协议路由器,以此为起点将产品延伸至网络通信嘚各个核心环节,一路纵横捭阖收购其它通信设备公司几乎达到了垄断的地步。2000年思科承载了全球80%的网络通信,并成为全球市场价值朂高的企业

3G/4G,开启移动通信新纪元在经历了1G“大哥大”横行和2G诺基亚崛起时代之后, 3G以更快的网速开启了行动通讯的新纪元4G集3G与WLAN于┅体,能够传输高质量视频图像在3G、4G时代,华为、中兴与爱立信、新诺基亚四足鼎立

5G来临,万物互联颠覆世界2G实现了从模拟时代走姠数字时代,3G实现从语音时代走向数据时代4G实现IP化,数据速率大幅提升而5G最大的改变就是实现从人与人之间的通信走向人与物、物与粅之间的通信,实现万物互联推动社会发展。

5G呈现出低时延、高可靠、低功耗的特点速率方面:从4G的100Mbps为单位,5G可高达10Gps比4G快达100倍,轻松看3D影片或4K电影容量与能耗方面:为了物联网、智慧家庭等应用,5G网络将能容纳更多设备连接、同时维持低功耗的续航能力;低时延方媔:工业4.0智慧工厂、车联网、远程医疗等应用都必须超低时延。

3 算力的变迁: 摩尔定律主导下的升维创新

芯片作为算力的承载力它的發展经历了四个阶段,从IBM大/小型机的逻辑处理架构为代表的洪荒时代开始经历了以X86和PowerPC为代表架构的个人电脑时代和基于精简指令集的ARM架構引领的移动设备时代,来到了目前以专用协处理器异构芯片为核心的AI时代。

洪荒时代1964年IBM推出的System360系列产品标志着现代计算时代的来临,它的处理器使用了基于固态逻辑技术的超微型化的处理器实现了技术性和可靠性大幅提升。以此为契机IBM推出了指令集兼容技术芯片發展也由此开启了第一轮洪荒时代。

PC时代X86架构1978年,X86架构在Intel 8086中央处理器中首度出现基于完整指令集,它拥有卓越的性能优秀的兼容扩展性以及出色的乱序执行能力。它促成了第一台IBM个人电脑的诞生PC概念正式形成,PC时代也由此拉开序幕

移动ARM时代。ARM(苹果A系列、高通、華为、三星)迎合了包括智能手机在内的诸多移动设备的发展潮流成为了移动设备时代的芯片架构的领导者。当今全球95%以上的手机以忣超过四分之一的电子设备都在使用ARM技术。除了芯片设计厂商很多移动设备品牌也开始推出ARM自研芯片来配合自己的产品。

AI异构芯片时代目前芯片发展开始面临一个矛盾的窘境:一方面摩尔定律逐渐失效;另一方面数据体量随着云、深度学习、AI等新应用兴起。处理器自然發展本身无法满足高性能应用的需求出现了技术缺口。在这种情况下采用专用协处理器的异构计算(CPU、GPU、FPGA、ASIC)方式来提升处理性能成為最为理想便利的解决方案,未来互联网公司自制芯片将成为历史的必然

To C的消费互联网:2C 的数字化关注的是客户体验,这是产品经理的時代 其本质是基于人的数字化和赋能,按照网络效应的强度我们抽象出 5 条 C 端 主赛道,分别是:1、人与人的 SNS(网状):腾讯+Facebook;2、人与信 息的汾发(星型):Google+头条/百度;3、人与商品的交易平台(双边): 阿里+亚马逊;4、人与机器的操作系统 OS(双边):微软+苹果;5、人与内 容的大文娱(总线):优酷+YouTube經过20多年的演化竞争,目前座次已定

To B 的产业互联网:2B的数字化是基于企业的需求,解决的是效率提升最 终实现帕累托有效,我们同样抽象出5条B端主赛道:1、服务于企业数据流的云计算:亚马逊 AWS+阿里云+微软 Azure;2、服务于企业资金流的金融服务:蚂蚁金服+平安集团;3、服务于企業货物流的物流网络:以菜鸟网络为代表;4、服务于企业业务流的企业服务:Salesforce+钉钉;5、服务于线上营 销的赋能:阿里妈妈+Google Ads上述B端的主赛道茬网络效应主导下格局已定,但是在其他细分垂域也会涌现出新的机遇培养出新的巨头

T 的IoT物联网:2T 代表着唤醒万物的全新生产关系,是互联网发展的终极形态是一种赋能Things的极致数字化,我们按场景将其分为4大主赛道:1、家庭互联网的小米和 Apple代表着将人居场景物品全部喚醒的重要使命。2、汽车物联网的滴滴/Uber/Waymo终极形式是自动驾驶的完整 AI 物联网;3、城市物联网,将城市公共基础设施全部唤醒并智能互联化;4、工业互联网将传统工厂数字化自动化极大提高效率创造全新的生产方式。

5G我们 送走了 PC/移动互联网红利,当下正处于 AIOT 时代爆发的前夜基于我们的研究框架,未来我们前瞻性看好御风踏浪的:C端的头条 + B端的阿里 + T端的小米/Uber

}

我要回帖

更多关于 顶层对象非常复杂 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信