2016年6月1日,2016微软开发者峰会在京召开。Xamarin公司开发顾问Nish Anil做主题演讲时说明移动跨平台开发技术的全球趋势,以及重现四月份Xamarin Evolve大会中的最新发布:包括Xamarin开源计划、可以在Mac上使用的Xamarin Studio 6,、Xamarin在Visual Studio开发场景上提供的iOS模拟器并支持USB remoting的方式、跨移动平台App使用介面设计的新方法Xamarin.Forms、以及如何集成XTC Live与HockeyApp,实现Mobile DevOps。
Xamarin公司开发顾问Nish Anil
据悉,微软收购Xamarin,并且在Build全球大会上,宣布将Xamarin技术免费提供给所有的Visual Studio开发者 已经让Xamarin成为当前最火的移动跨平台开发技术。现在,单一开发者就能够开发iOS、Android与Windows Phone原生app,增加可复用的代码,让注重研发效率的企业客户,实现移动转型。 此外,Xamarin更能够与微软现有的DevOps平台密切集成,实现Mobile DevOps的完整解决方案。
以下为Nish Anil演讲实录(官方确认版):
女士们、先生们,大家下午好,我再说一遍,大家下午好呀!终于有反映了。大家午餐吃得还愉快吧。
请工作人员把幻灯片帮我换回来。我觉得在座各位是不是经常看到微软热衷跨平台,微软爱这、爱那,微软爱很多事情。有多少人听过Xamarin请举手,还是有几只手的。在座的各位开发者,也许有的人了解我们公司,有的人是第一次听到我们公司,当然,我们是非常低调,而且微软收购了我们,所以我们非常兴奋能够成为微软大家庭当中的一分子。
在过去的几年当中,我们整个社区发生了什么样的变化呢?你可以看一下,现在一切都是移动为先,云为先。以前我们都在打造内生性的打造iOS和其它系统,除此之外我们也有这样的测试系统,可以帮助你对Android和iOS进行测试。除此之外,我们还会有CD、TOS系统,都是默认的可以提供给大家的。有了Haticnal(音)APP你现在有一个分布式的应用程序了,可以对他们进行观察和监测,让大家了解到,真正你这个程序在野马脱缰之后的运行情况如何。Xamarin从我们的角度来说,我们和很多系统都是非常配合的,包括Haticnal app。
今天介绍一下怎么打造IOS安全Android的系统用的都是Xamarin。
我想抛砖引玉,我想问大家一个问题,我们想要去打造一个应运而生的内生性的应用程序,何为内生性呢?得考虑一下用户界面必须是内生性的,比如iPhone,是iOS系统,这样一来你就是有一种使命感,你出生在这个土地当中,你生长环境都是应运而生的,所以你是应运而生的本土化的应用程序。我们可以用Java Script书写一个胸,除此之外可以在安卓上可以应用IOS系统?未必,所以我们在想,现在问题的实质不在于是鱼还是熊掌,而是我们要划界限,所以我们要打造一个Native API,第一点必须要确保我们是原住民式的API,不论是谷歌,还是评估,都是如此。
我们内生性的API,什么意思呢?我们在打造过程当中,我的应用程序有一种内在性的可用性,在我的平台上它的应用表现将会非常优越。给大家举一个例子,不知道大家听没听过,Facebook出的一个软件,lantern Artor(音)它是一个开发的发布平台,那些喜欢读新闻的朋友,他们可以用这样一个系统在我们的苹果手机上用这个内生性的软件。我们想一下,像Facebook这样一些公司,实际上他们是网络应运而生的科技公司,他们在想的不仅仅是笼络更多的用户,他们是白手起家打造了这样内生性的应用程序,占据了各大报纸的头条。这样对我们来说,应运而生的应用程序,因为市场当中有这样的需求,我们就需要满足,因为客户要我们打造一些原生平台的界面,包括应用程序。
当我们开始打造移动端应用程序的时候,大家觉得有哪些方法可以使用呢?我想问大家一个问题,有没有朋友已经开发过iOS移动端的应用程序,没有吗?Windows打造的应用程序有吗?每个人都举手了。如果大家是打造Windows应用程序,你用的是Windows Studio,Windows Studio过程中使用的语言可能是Java Script,我们在这个过程中打造应用程序用了不同的语言和不同的平台。大家想象这样一个问题,叫做孤岛效应,如果您用了一个平台,用了一个语言,您可能是世界上最优秀的开发者,但是你也可以学Java,可以学Strips,其它语言也需要了解。
IDE是我们熟知的旧环境,但是现在今非昔比了,我们不能用墨守陈规的IDE的方法,我们要另辟蹊径才更加有生产效率。正是因为这样的原因,我们看到在不同国家的开发者,无论是iOS,还是Android,还是Windows系统,同一家公司当中会有不同平台的开发者,所以他们希望大家能够携手共进,而不是相互PK。
如果你想在iOS系统上加一个新的特征,你希望这个特征可以有在安卓系统上、Windows系统上,正是因为这样的思路和意愿,我们在行业当中需要有一个泛在化的解决方案,大家听过App Generator,它包括Lua、Javascript、Actionscript、HTML+CSS,当时当下有没有敢用Javascript写程序,从大家的表情可见一般,答案不言自预,这个问题在打造移动端应用程序中反复出现。
因为以前我们是传统的浏览器思维,只缘身在此山中,没有办法看清楚,怎么确保用Javascript写的语言在各个环境中应用而生,这就是为什么Xamarin是非常难得的解决方案。
为什么Xamarin很独特?我们可以把我们的业务逻辑分享在各个平台当中,所以它是一个车来将挡、水来土掩的平台,所以只要打造了其中的一个资源就可以在各个平台进行共享,无论是Windows、Android,只要用Xamarin都是可以的。
大家想一下,iOS无有一个Store,Android是MXL, Windows是另外一个系统,你可以看一下,Xamarin的好处就像一根线一样把它连在一起,Xamarin可以使我们共享语言所写出来的移动端的代码。通过这个方法,可以使我们有内生性的UI。除此之外,我们一键式可以达到统一的单窗口的控制,这样一来可以跨平台操作,所以API无处不在,尽在您的掌握之中。很多的应用程序一开始发展的时候都不要求您的UI是被书写两次,所以我们打造了一个Xamarin.Forms,是专门的一层,在现有的系统中可以用C#,书写这样的语言,可以确保有内生性的控制,无论是Windows、iOS还是Android,日后有时间我再进一步讲一下。
Xamarin的优势很明显,它是共享代码,无论是UWP、Windows、iOS无、Android,都是可以跨平台的,在所有平台当中都可以分享代码。之前我们觉得只能在一个平台上用的代码,现在都可以通用了,走遍天下无敌了。Xamarin只要你可以使用,而且会使用Windows的Visual Studio,我可以说这样的话,地球上任何一个行星你都可以征服了,非常了不起吧。
所以,Xamarin加入了微软大家庭当中,那就使我们的强大功能被嵌入到了Visual Studio当中。
Xamarin我每次去演讲的时候,一个问题是,你猜猜它多少钱,你觉得我们的成本是多少,是贵还是便宜呢?很多人跟我讲,实际上Visual Studio是嵌入了Xamarin,说你不用花钱。如果你做的是Community项目,基本上是垂手可得,基本上是零成本的,不需要投入的。它还嫁接了很好的微软的平台,现在我们怎么把这个平台打造起来,如果大家感兴趣的话,我也希望大家加入我们大家庭当中。你可以登陆open.Xamarin.com。
我给大家讲过,只要你会用C#,你可以看一下它的应用范围真的非常广,而现在运行它的设备达到26亿之多,作为C#开发者,如果你又会用Visual Studio的话,就天下无敌了,地球上任何一个靶向都在您的囊中。
接下来…我不知道大家参加过2016年的Build大会没有,那是在旧金山举行的会议。当时我们专门为这个大会打造了一个应用程序叫MyDriving,让你知道开车的行为,用一个OBD无车载传感器,有一个非常小的触屏的OBD传感器,在您驾车过程中把您的行为记录,在后台和Xamarin用WiFi和蓝牙进行连接,这样汽车声称所有数据都能够连接,这就是我们刚才所说的情景。
你想一下,就用您的手机就可以把数据发会到我们Xamarin平台后面的IOD HAD。大家觉得这不就是一个应用程序吗,但是这个架构和技术架构如图所示,OBD传感器装在车上,现在我们有两件事情,第一,它的网关有一个FIELD GATEWAY。退一步考虑一下,如果你要跟Azure后端连接,你有很多方法,有传感器、IOT、WiFi、蓝牙等等方式,但是我们发现每个人都有手机,干嘛不用呢?你可以看一下,无论你是安卓系统,还是iOS系统,包括Windows Phone,所有手机都有,我们能不能用应用程序把这些和后台相连呢,只要你有手机,就可以把驾车数据传输到后台的Azure系统中,这样可以直接把数据发回到Azure云后台。
手机不是每时每刻都联网的,但是云是无处不在的,云整个就像一片计算能力超大的云而已,我们必须要确保每一个动作都被捕捉,我们可以用机器学习的方法把数据进行记录,我们主要做的事情就是两件事情,一个是用传感器记录数据,二是用手机把数据发回后台就可以了。这样一来你开车是靠谱还是特别不靠谱,还有你是不是习惯性的超车,除此之外,在什么情况下您实际上是喜欢超车,是开宝马的时候喜欢超车,还是其他的时候等等。微软有一个PowerBI Dchbter(音)把所有的数据融入其中,这样一来您就是老大了,想怎么用这个数据都可以。比如我们在城市当中有多少个司机,司机当中有多少是靠谱的司机,有多少是非常危险的司机,而且他们什么时候比较危险,什么时候比较靠谱,什么时段比较容易出事故,我们可以把移动和云结合在一起,让他们联手这对开发者来说是最好的消息,因为我们知道Azure可以帮助您掌控一切,您不需要事无巨细的像以前事必躬亲,现在Azure可以照顾好您。
做一个展示,对您来说这个软件MyDriving从我们网站上下载是免费的。
还有一件事情今天要跟大家宣布,宣布这个词可能不太恰当,如果大家必须打造一个iOS应用程序的话,你可以把所有程序都写在Visual Studio当中,但是你需要一个Mac才可以,这是苹果的限制,必须连到Mac当中才能生成代码。最近我们不需要这么做了,我有一个Windows的史无前例的一个模拟器。
大家看一下iOS实时模拟器,它是远程可以接到Windows当中,就像之前的朋友所讲的,你可以看一下,大家想一下,就相当于转椅,你左边是Windows,右边是IOS,不用再买椅子,第二点优势是Services很好用,是触控的技能,我也可以Touch一下触摸屏。现在屏幕被谁锁上了,所以我没有办法连上互联网了。我可以做编译,所以在Visual Studio当中都可以做,但是现在一切都是在Mac进行运行。我们又可以退回到以前了,我是用手触摸这个屏,而且触摸点都把数据传到Mac上面了,太了不起了。点一下MyDirving,这就是这个应用程序,你可以登录,你可以通过Facebook的界面和其他的进行登录,我用的是Azure账号。
还有一件小事给大家介绍一下,能够确保应用程序能够为你所用,我不知道在中国能不能用,因为地图功能的限制,我现在在定位,而且我们现在是在iOS系统当中,看一下这是Apple,如果我开车的时候,可以点击记录这个键,OBD的传统系统没办法连接了,你知道为什么连不上,因为我没有车,没有传感器,我就连不上。大家就用想象的吧,打一个比方说,它也是模拟,只要您移动的时候,我们的手机传感器都会把您的移动进行记录,所以我也可以把它停,我可以把开车驾驶方式进行保存。当然,我不是想开到哪儿就开到哪儿,我也是一个有理智的人。
我给大家展示一下它的功能,比如我们要去Moent(音)总部,从甲地到乙地,有一个线在动,我也可以移动这个小球球,除此之外还可以表明你的加仑数、燃油公里数是多少,还包括使用高峰的阶段,除此之外,还有的细节都发回到Azure系统中。我们来看一下,我究竟是不是一个靠谱的司机呢,我突然超停12次,这是不对的,通过这个就可以看出来我到底靠不靠谱了。总体我大概开了99英里,迫停12次,还可以。
给大家展示一下进一步这个应用程序怎么用,我通过Android系统给大家展示一下。我把Android MyDirving打开,Mac、iOS和安卓系统不太一样,这里面数据都是从Azure后台发过来的,尽在我们掌握之中了,知道我开车的长度,燃油使用情况。给大家看一下代码,正如我们所料,之前已经跟大家讲过了,如果你用Xamarin,可以打造原生性的应用程序,怎么做呢?
给大家看一下StoreBOX(音)因为这样程序的运营,你要知道,应用程序的UI是在StoreBox(音)上运行的,如果你用Visual Studio做的话,下面有工具箱,所有特性可以拉下来,可以点击一下,进入,右边可以改变它的特性,这是iOS特有的。同样你可以进行这方面的工作,看起来非常漂亮。我可以进去找到一个具体的细节点,改变信息。所有的信息都给出来了,基本上你要做安卓系统的话,安卓6.0,同样左边工具箱,iOS、安卓的不同点,所有的iOS的控制点都是iOS本身,而安卓是对安卓的所有特点,这是苹果和安卓的不同,从图上可以很清楚的看到这一点。往上拉、往下拉,找到一个编辑器,非常简洁。你刚才看到我点击,下面进入登录,我使用Windows Azure Mobile,不管用什么账号登录,从用户端完成,是一个非常简单的代码。还可以注意到,在右边,这是我的解决方法,有安卓和iOS两个不同的项目,使用不同的应用。另外还有可携带的做法,在这里我们分享什么样的源代码,不是UI的,不是平台的,可以横跨所有这些平台进行分享。整个代码都可以在这里呈现,我们都可以进行分享。各种各样的客户端,所有的数据,所有的代码都可以在这里共享。
Xamarin到底是怎么运作的,因为作为我们的开发者你们非常感兴趣整个东西是怎么运作的,如果你是一个.Net的开发者,会注意到所有的API,如果你做Windows的开发还需要学到因的东西,Windows的API,这是我们和Windows和iOS怎么做到的,基本上C…像链接,各种各样的特点都可以用,加上你还可以访问到最新的Laber(音),对iOS的Laber(音),你有百分之百的访问,可以访问到本地的应用,对安卓也是这样。同样你有安卓相关的Laber(音)NSD,在iOS没有可编程的,但是Android可以有,我希望大家记住的,不管是在iOS、Java、安卓,每一件事情你都可以做。
这一切怎么运作的呢,我们怎么得到Antive Performance,可以做IM、IO,在iOS方面我们能不能适时进行这方面的工作,现在我们来做这方面编辑的时候,我们有同样iOS的编辑器把你的各种应用编辑起来,每一种东西都有同样的产出,所以有同样本地的性能。在Xamarin非常简单,用一个Banding(音)保护你…这方面也是一个门户,在这方面可以得到Native App,Android系统有一个正好的性能,当你编辑的话,将取得很好的效果,这也是我们想向你介绍的。
另外还有一个问题大家经常问,您能多快的支持我们新的版本。历史上来说,我们对于同一天的支持,苹果一公布一个新的,我们就马上宣布这个支持。我们是怎么做到的?比如每次苹果有一个预览的时候,我们为你们这样的Banding,过一个星期以后就可以推出这方面的应用,苹果给你这样一个公共工作进行预览,到那个时候我们已经做好了各种准备,所以你可以得到所有应该得到的支持。安卓系统,到目前为止谷歌从来不告诉我们什么时候拿出新的平台,他们又会用别的命名,有这样的预览,我们确保尽可能快的给你们提供支持,建立起我们的Native应用的热点,每一个东西在安卓、iOS跑的话,你都可以访问,可以建立起上面所有的应用。
如何分享代码呢?刚才给大家讲了一个例子,包括我们可携带的Class libraries,可以由这方面的方块,可以选择在安卓、iOS,可携带的Class Libraries访问。Nuget,只要支持你这方面的东西,你就可以使用,还有很多不同的组件。还可以使用一些分享的项目,iOS、安卓,目前情况怎么样,有多少代码可以分享呢,这是实时的,在app Store可以分享70%-75%的代码,剩下的25%是UI,你在建立这些平台,因为建立起这些代码总是有原因的,或者使用它的一些特性,你还能够访问这些,所以使用他们的一些特点,你可以横跨所有平台分享这些代码,完全取决于你的应用有多少代码可以分享,这是目的的一些统计情况。还有很多应用恐怕不需要UI写两次,所以我们有Xamarin.forms,最好的例子,会议的app,包括各种会议,我们有这种对会话、演讲人的反馈,对会议的反馈、评级,包括wifi的信息,会议的地点,所有这些很简单的东西,所以我们用Xamarin.Forms。
这是我们传统的应用,在这方面基本上是UI层,在已有平台之上的UI层,有各种控制点,有给你提供的控制器。比如有很多页,如何来控制,你可以使用他们,还可以使用Xamarin,有多少人喜欢Xamarin?你可以用Xamarin建IOS和Android的应用,这样你可以得到单独的应用,你可以用导航,还有信息中心,所有这些各种各样的应用都可以获得。这些都是我们的页面、内容,你还需要各种各样的分配,包括各种各样的分布。取决于你们的应用,有不同的组合在你的配置内部进行。
如果你感觉到缺了点什么,你可以做这样一件事,可以建立自己的控制器,给客户提供专门的应用。有这样一种意外,比如加一个按钮,这个按钮有在iOS安卓、Windows,有三个不同的,已经为你们写好了,如果你想客户定制,可以自己进行客户定制,尽管是一个抽象的框架,你仍然可以获得本地的支持,你愿意改变的话也可以去改变。或者你可以用第三方的系统,这是我们的合作伙伴,他们给你提供很好的控制器,用Xamarin.forms,数据的可视化,所有这些都可以用来使用,在你的应用中使用,这也是非常酷的一件事。如何建立起这些应用,可以看到有一个Tip页,第一个内容页和第二个内容页,第一个内容页Stack…还有一个按钮,这些Page进行渲染的时候,左边在iOS、Android、Windows,在iOS下面进行渲染,在安卓是文本上面,Windows用Type,用puber(音)控制,这是我们本地的控制。这是UI的Code自动进行渲染,有很好的Windows的控制,Android的控制,iOS的控制,非常了不起。
再看看这方面的演示,Xamarin.Forms,你去打开项目,点击进入,在这选择跨平台,我可以告诉大家我是怎么和Mac连接的,选择各种各样的选项,在选项里,在Xamarin 设置,和Mac连上,我找到Mac,本地的网络希望都能连接上,连接,我希望能够重新连接。
我们来建一个跨平台的,怎么做呢?会给我四个项目,安卓项目、iOS项目、Windows项目、可携带项目,进iOS,我们没用Serboring(音),如果进行所有这方面,大家看到Xamarin.Forms,在我们这样可携带的Laberr(音),给大家看这个幻灯片,在Xamarin文档,提供两个题目,有两个VMs,一个是天气的View,一个Comed(音),基本上是一个TypeSpasks(01:38:54),我的New Model连接在一起,跑这个应用,我怎么知道我还连接到一个具体的Localsion,进入到这个新模式,天气的新模式,一个特性变化,我希望把这个Loaclsion正确的确定和屏幕连接。如果回来点一下鼠标,这边有一个叫Baten(音),之后有一个叫Wedconmant(音),如果之前你写过这个程序就了解了,Comment和之前的Comment是一回事。之后可以看到,在我们的V Model当中可以看到,初始化用的是Webconmont,执行Webconmnaet,这是非常简易的便于使用的程序,给用户一个文本框,让他一键性的选择,之后让我们了解到当地城市的天气状况。比如说从气象局给导入数据,都是嵌入到这些服务当中的。整体这些代码,还包括UI都是共享的。除此之外,大家想一下,无论在iOS还是安卓当中,只要你用的是Xamarin系统,它是开源化的系统。这里面还有Comlabry(音)当中你可以接入其中的资源,能够确保我们现在所用的模板可以非常简单的使用。
我们看一下它是如何执行的,现在表明已经联网了,这就是我用的天气软件,我有文本框,还有Baten(音),之后我点击读取天气数据,之后可以得到JSON格式的文件,会自动的生成数据,今天的空气看起来还不错,今天是33度。除此之外,我想去一下天气预报看一下接下几周的天气预报,以一览无余,可以看一下,还有另外一个屏幕还没有给你们看,我简单的给大家快速看一下。点一下FocusView(音)选项,这里面是一个Lides view,基本上是把数据进行汇总,之后把它粘到Lides view这一行,之后把Anderm type模板建立起来,你可以看一下,这些蓝色的行是数据的展现行。在左边可以看到它的影像,而且还包括32.79度的空气。另外一个天气是下午5点是32.79,8点就变了一个温度。所有这些选项都是从一个P…(01:42:25)当中可以得到,任何一个iOS和安卓都没有办法做到这一点,我们就可以做到这种便携式的Conlabry。怎么样,大家喜欢吗?从掌声可以听出来
所以这是我们UWBI,你可以把它的界面当中运行的应用程序,同样是异曲同工之妙,它是UWP,控制是非常好的,性能和UWP,和我们之前熟知的是非常相似的,看一下安卓系统。这是安卓的应用程序,最上面这一行,之后点击“天气”,然后可以左右滑,点击更新,这个数据就自动更新了,一切都尽在安卓平台上,都可以刷出来,是不是挺酷的。
这就是Xamarin.Forms。最重要的一件事情是什么呢?我们做了很多宣布,在Build、Evolve这些会议当中,我把一些重要的信息回顾一下,有一些信息,iOS的模拟器。还有Xamarin.Forms,很多请求是什么呢,我知道Xamarin,但是怎么用它呢,怎么让它运行很好呢,不用每次重启,我们有一个Xamarin Previewer,现在在Xamarin Studio当中就可以得到,马上就可以放到Visual Studio当中了。iPhone、安卓系统,包括平板电脑的这些屏幕,你都可以看到,可以看到它们显示的格式,而且在您的系统当中,包括我们的Previewer如何展示。除此之外,在JSON,我们想快速打造一个UI,怎么打造一个UI呢,我认为有更简单的方法,我们怎么做的呢,我们打造一个数据页,叫DataPages,可以提供一个数据源,之后告诉Database,想让它怎么做,提供这些背景、上下文、语意、图片、活动,它会自动帮您生成,你不需要写东西,把这个给他就可以了。除此之外,我们也宣布了Themes,我们把这个颜色重新调了,以响应今天的会议。但是你可以看一下,能够让您确保少写好多行代码,但是这个应用程序的性能会上升好多倍。这样一来,把你的业务逻辑一写进去就可以了,不用担心UI的情况。
接下来再展示一个Demo,看一下Visual Studio,这是URL,这是非常简单的JSON数据,这是数据库当中的Sishion(音)信息,是JSON格式的文件,我想把数据拿出去,用它做一个应用程序看看行不行,要挪动几次才能打造一个Xamarin.Forms,你们猜猜要多少次,基本上不费吹灰之力,三行代码,很简单的一个展示。我们用Liste views在Data配置中我想把这些后端的数据进行展现,变成Invant格式,你就能看到格式,其中你提供给JSON数据的源可以变成Isher,必须把Table写上,之后能够得到JSON格式的数据。我来进行运行。我们看一下运行起来是怎样的。大家准备好了吗?这就是JSON格式的数据,马上变成漂亮的UI,好了,刚才最精彩纷呈的过程大家没有看到,怎么样,神奇吧。可以看一下JSON Data Source,刚才所有都展示出来了,非常美观。你必须要定义好。如果我点击数据,要去下一个屏幕,可以点这个数据吗?可以的,这个页面已经做好了准备,所以他做的是什么呢?DataPage让你了解到你想要了解的信息更加全面,可以帮你进行运营的,除此之外,建立详细网页给你,所以它们都是JSON的数据。可是日期的格式不是特别好,因为JSON只有这样一个日期格式,你可以进行定制化和改革。如果你的经理找你说,应用程序我想用JSON的应用格式,3分钟就搞定的,之后你就可以放假了,你觉得可以吗。如果这边想改怎么办呢?可以app到Dsienfllo(音)把Ligt变成Dark,这是我们最新公布的消息,DataPages(音)。(01:50:02)
最后一点,Native Embedding,如果你想打造内生性的控制,想使它展示出来的话,有几种方法,可以用Costmer rend,它属于IOS和Android的内生性的,我们怎么做的,我们用代码过程中,如果你运行在安卓系统之上,我需要这个特殊的控制选项才可以。所以你可以看一下,它是代表安卓的控制键,只要在安卓的系统中进行运营,我就会运行这个代码,而且这个代码会展示出我的数据。所以你可以看一下,我相当于把它作为Xamarin.Forms的控制,但是它是加入了内生性的应运而生的控制。这就是Xamarin,还有Xamarin.Forms,还有新的特性和特征,从Evolve和Build大会上也讲过的。
原文发布时间为:2016年6月1日
本文作者:作者:周雅
本文来自合作伙伴至顶网,了解相关信息可以关注至顶网。