首先简单做个自我介绍。我本人主要是从事游戏行业的,经历比较复杂,早年做 PC 端网游,然后又做了几年虚拟现实,接着又做页游和手游, 现在主要是做 HTML5 游戏。这跟云计算可能有点远,但是我个人对云计算技术很感兴趣,所以业余也会关心这项技术的发展。所以就有了这样一个游戏和云计算相结合的项目,这是我去年跟上海劢驰数字技术有限公司合作的项目,我作为技术顾问参与了这个项目的架构设计和一些核心技术的研发。


什么是云游戏?

云游戏这个概念非常简单,就是我把游戏放到服务器上去运行,把游戏渲染出来的的音视频画面,通过流的形式传送到终端,终端上不再需要安装游戏,各种终端比如说电视、手机、PC、平板都可以运行。这样我们就不需要关心游戏怎么去适配不同的软硬件平台、终端性能够不够等等这些问题。这个概念本身是非常好的,在2009年的时候,这个技术就已经出现了,美国有家叫Onlive 的公司第一个推出云游戏服务,但是他最终在商业上还是失败了,技术最后被索尼公司收购,并运用在PS Now上。云游戏的概念虽然非常好,但里面技术挑战性非常高,有非常多的技术问题需要解决,那个时代可能还比较早,软硬件都还不太成熟,所以最后没有能够成功的商业化。到了现在这个时间点上,云游戏技术开始慢慢成熟起来,已经具备了商业化的基础。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

下面是对我们产品的介绍。对云游戏来说,用户主要会关心延迟问题,玩一个对抗性很强的游戏,如果中间卡个几百毫秒那肯定受不了,游戏体验就会非常差。所以我们最核心的关注点就是要把延迟降低到最小、并且把画质保持在一个相对可以接受的程度。目前我们产品的整体延迟(从用户按下操作按钮到看到画面变化)可以控制到50毫秒以下,在这样的延迟水平下玩格斗游戏赛车游戏感觉都是非常流畅的,画面可以支持到720P/1080P,网络带宽只要4兆以上就可以了。我们单台服务器可以支持 20-50 路的并发游戏数量,也就是单台服务器可以同时为 50 个玩家提供服务,单个并发用户的整体服务器硬件成本在500元左右,可以说是一个非常有竞争力的成本。当年 OnLive 失败的主要原因是因为他的硬件成本非常高,他的一台服务器仅能服务一个用户,单个并发用户的成本可能就要上万,在这样的成本水平上要实现商业上的成功是非常困难的。目前这个项目已经在小范围的内测,他们主要是 toB 的业务,为宽带运营商提供增值游戏服务。


云游戏的技术挑战

第一个是实时性

游戏的整体延迟包括了游戏逻辑运算时间、音画渲染的时间,加上编码的延时、网路传输的延时、客户端解码的延时、客户端向服务端发送控制信息的延时,云游戏的实时性要达到一个可令玩家接受的程度,这个技术挑战是非常高的,当然也要依靠硬件和网络本身的性能,如果没有足够的带宽也不可能做到。

第二是虚拟化技术

虚拟化在服务端已经非常成熟,我们有虚拟机技术以及各种容器技术,但是在桌面上就不是那么成熟,普通的虚拟桌面不支持 GPU 的虚拟化,而游戏非常依赖 GPU 渲染,若没有 GPU 的虚拟化就没办法实现云游戏了,所以虚拟化是一个很大的技术瓶颈。

第三是经济性

每个并发用户的服务器硬件成本关系到这个模式能否成功商业化,如果成本超出了用户可接受的范围,那就没有办法实现盈利。

最后是运维管理

云游戏的运维管理跟传统的服务器运维管理不一样,因为用到的服务器硬件不一样,同时硬件负载又很高,这对运维管理提出了新的挑战,所以在技术上就要解决这些问题。


平台选择

游戏的运行平台非常多,各种各样,但是比较适合的只有windows平台。Linux 平台虽然开放,但是它没有什么游戏支持,其他的主机游戏平台基本都属于封闭技术,微软和索尼自己都在研发主机上的云游戏,那我们是没有办法去做的。

android平台也是非常适合做云游戏。服务器跑个android游戏再传到android设备上这个概念看上去比较怪异,但实际上IPTV运营商非常喜欢这个概念,因为机顶盒不允许安装第三方的应用,监控比较严,那我们通过云端化来绕过这种限制,这对机顶盒这种产品非常有帮助,所以android平台也是我们要考虑的。但今天主要是介绍 windows 平台游戏的虚拟化,android上是用硬件方案跑的,所以就不介绍了。

windows游戏的虚拟化技术主要是两条路线。一个是虚拟机方案,但主要问题是 GPU 虚拟化技术不成熟,可能需要一些专业级的显卡支持,成本非常高、性能损耗非常大,每一个游戏都跑一个 Guest OS 非常浪费内存,所以这条方案就被我们否掉了。同时windows 上也缺少可用的容器级技术,我们只能采取 API Hook 方式手工实现虚拟化,我们称之为 Sandbox 方案。

Sandbox方案就是把游戏所用到的系统 API 全部hook接管,让游戏认为自己运行在一个正常的 OS 上面,但实际上是我们接管的一个 OS。这样做的好处是性能损耗很小,基本上没有额外的损耗,但是比较痛苦的要针对每个 API 做适配,需要对每个游戏进行适配,而且游戏通常不开源,游戏开发商通常也不会配合你去修改代码,需要一些 hack 技术来针对每个游戏做适配。


技术实现细节

图像和声音的采集

图形API有 DirectX 9,10,11,12还有OpenGL,接管这些API后我们就可以把画面重定向到视频编码器,不不在屏幕上输出了。音频比较简单,只要接管Windows Audio Session API就可以了。

输入操作的虚拟化

手柄比较麻烦,因为手柄支持的API接口比较多样化,比如 DirectInput, XInput, RawInput,还有些游戏直接读 USB 设备,实现这些API的接管工作是比较琐碎的。

存储的虚拟化分

一是游戏的资源部分,比如执行程序、图片、声音等等。这些资源文件都是只读的,需要一个共享存储来放这些文件,因为这些文件体积比较大,通常一个游戏需要几十个G的容量,如果全部都放在本地节点上的话,对节点的存储容量要求很大,而且以后更新维护起来也比较困难。所以我们用 NAS 来共享这些文件,这么做的网络 I/O 开销会非常大,后面我会介绍如何来优化这一块。第二是用户配置和存档数据等等可变数据,这些数据需要集中化存储,同时可能存在跨机房的访问需求。用户离机房越近延迟越小,所以需要多地、异地部署服务器,让玩家在全球漫游访问你的服务,这需要有跨机房文件共享的能力。

其他需要适配的内容

比如游戏一般都是单实例,我们需要绕过游戏的防多启动机制。还有些游戏无法后台窗口运行,我们需要通过 API Hook 的方式,让游戏认为它处于一个正常的状态。最理想的适配方式是通过 SDK,让 CP 来适配你的云游戏平台,但目前来说还不实际,因为云游戏的商业化还没有完全的落地,需要技术去慢慢的推进。


音视频编码技术

视频流采用的是 H.264 编码,主要是 720P/1080P@30fps,1080P@60fps 对网络和硬件的要求过高,暂时还做不到。音频编码使用AAC。因为标准的封装格式不含控制流,不能传输用户的操作数据,所以我们自己定义了一种封装格式,简单的把 H.264 和 AAC 的裸流封装起来传送给客户端。

目前用软件编码器基本不可行,一路视频编码就要消耗掉一个CPU核的资源,跑个三四路就把 CPU 资源吃光了,游戏就没办法运行了。幸运的是三大硬件厂商 Intel、AMD 和 NVIDIA 都推出了自己的硬件编码器,Intel的CPU自带硬件编码器,支持20+路的720P实时编码没有问题。NVIDIA 的硬件编码性能更高,可以直接对GPU的 FrameBuffer 做编码并传到 CPU 上,节省了很多内存的拷贝,性能是最好的。

视频编码的参数调优

首先避免使用 B 帧以减小延迟;较大的 GOP 设置来减少 I 帧的比例,保证每一帧消耗的码率都在一个最大可控的范围内;0 延迟设置,保证每输入一帧数据编码器都立刻输出这帧的编码数据,避免编码器缓冲帧数据;bitrate控制,使用固定比特率的算法是不适合的,因为游戏中经常会存在一段时间的静止画面,此时比特率很低,对接下来的变化帧编码器就会分配大量的比特来编码,这就会造成这一帧数据特别巨大,从而带来了额外的网络数据传输延迟。所以我们采用了自适应算法,在保证比特率总体在最大范围内的同时,保证每一帧消耗的码率都在一个最大可控的范围内,确保每帧的数据传输延迟可控。

终端的视频解码优化

H264 的解码是比较头疼的,因为android平台适配起来比较痛苦,尤其是它的硬件解码坑非常多。如果直接使用mediacodec封装的硬件解码器,那个延迟非常高,基本没有办法用。有一些芯片厂商会提供一个后门,让你把缓冲关掉直接输出画面,但是这需要对接具体的芯片厂商,无法做到通用,只适合一些机顶盒类的产品。所以还是需要用软件解码的方式来支持 0 延迟的输出。android设备的性能参差不齐,早期的低端芯片性能不满足实时解码 ,需要利用 GPU 做一些加速。

网络传输的优化

用UDP传输的话,因为H264 本身不支持容错,一旦丢包就会出现花屏,在下一个I帧到来前都无法恢复,通常要持续好几秒,严重影响用户体验,无法接受;而TCP 丢包的话只是出现几百毫秒的卡顿,实测还是可以接受的,所以我们放弃了 UDP 协议传输,利用TCP在网络层做一些调优使延迟降低。实测下来,现在的宽带网络延迟基本没有问题,主要问题反而是在用户侧的 WiFi 上,一旦出现无线信号干扰,网络抖动会比较厉害。

服务器和客户端的同步算法

我们的云游戏把所有环节的缓冲都关掉了,全部是零延迟自出,原来缓冲设计的目的就是为了抵抗颠簸,比如网络的颠簸、或某一个编解码环节出现了抖动,通过缓冲把这个抖动抹平,现在把缓冲都关掉后对同步会造成很大的影响。有很多因素会造成颠簸,比如服务器发送数据过快,客户端来不及消费,造成的结果就是延迟非常大。所以我们自己设计了一套算法来解决这个同步的问题。具体的做法就是让客户端在完成一帧画面的显示后向服务器反馈一个消息,服务端根据客户端反馈的消息就知道客户端消费到了第几帧,跟服务器现在编码的帧数做比较,在一定的阈值内就继续传输下一帧,否则等待客户端的确认消息,直到客户端赶上来。这样做的结果就是当颠簸发生时服务器能及时感知并停止发送数据,等颠簸消除后再继续发送最新的游戏画面,实测下来获得了比较理想的同步效果。

存储的优化。只读资源数据是放在 NAS 上的,几百个游戏共享一个 NAS,加载游戏时的网络 I/O 开销非常大,所以我们做了一个优化来本地缓存这些共享文件,利用dokan实现了一个虚拟磁盘来访问资源文件,再把虚拟磁盘重定向到NAS上,同时利用节点的本地 SSD 硬盘来缓存热点文件,从而降低了网络 I/O 的开销。

更多的云游戏玩法

旁观模式,一个玩家玩的时候其他玩家可以接入这个视频流,看他怎么玩;对战模式,其他玩家可以切到这个游戏流里面两个人在一起对战;还有直播模式,把视频流封装为 HLS,推送到 CDN 上进行直播,这是非常流行的主播模式,云游戏都可以支持。


云游戏运维方面的挑战

云游戏需要维护大量的服务器节点,而且跟普通的服务器管理不一样,需要自己造一些轮子。由于所有的硬件资源都是高负荷运行,我们要最大化的增加硬件利用率,一般的服务器 CPU 占 10% 就很不错了,而云游戏的 CPU 都是在接近 100% 的情况下运行,另外还需要GPU的参与,这导致了硬件的可靠性相对比较低。

软件因为没有隔离性,可靠性也会降低,一旦出现问题怎么维护、怎么恢复,成了比较麻烦的问题,因为没有现成的方案,就我们需要自己设计服务器集群来解决这些问题。另外还有跨机房部署的问题。

硬件方案的选型,我们主要有三套方案,一套是 GRID 显卡方案,这是 NVIDIA 为云游戏专门设计的专业显卡,上面带有编码器可以将游戏画面直接编码输出,但它的缺点是价格比较昂贵,一台服务器的硬件成本大约在 5 万元左右。

还有就是消费级独显方案,去掉了昂贵的专业显卡的同时还能获得更好的GPU性能,所以这套方案的性价比要高很多,每路并发的硬件成本可以降低到 500 元以下。

最后一个方案是 Intel 核显方案。完全不需要用独立显卡,但 Intel 核心显卡的性能偏弱,运行大型的 3D 游戏会比较吃力,运行一些休闲游戏没有问题。这个方案的优点是不需要显卡,1U 的尺寸下可以装入多个节点,集成度提高,而且易于维护,也是一个值得考虑的方案。

下面来解释一下云游戏一下集群的概念。Node(节点)对应一台物理计算机,一个节点可以同时运行多个游戏实例为用户提供服务。多个节点组成一个 Group(节点组),一个Group内包含了若干节点和NAS,对应于一个机柜, 多个机柜用万兆交换机串连起来,部署在一个机房,称之为 Cluster(集群),再上面一层是云游戏平台,包括用户的入口管理、登录计费等,可以跨越多个机房。

下图是系统架构图:

640?wx_fmt=jpeg


User Profile Storage  用来存放用户的存档数据,Log Storage 用来存储日志数据,还有数库等等。

Group 内的各 Node 组成对等网络,可以任意添加或者删除 Node,各个 Node 通过竞争算法选举出来一个 Master,由 Master 与 Manager 建立连接,对整个 Group 进行管理,如果Master出现故障则由剩余的节点重新选举出一个新的Master进行接管,从而保证了任何节点的故障不会影响到其他节点的正常服务。在Node 上仅需要安装好操作系统和 Daemon 服务,无须配置,即插即用。Node daemon对服务器进行管理和监控;游戏文件存放于 NAS 上,由各 Node 共享;内网/外网流量隔离,防止互相影响。

Manager 用于对集群内的所有 Node 进行管理, 配置/更新/上线/负载均衡/监控,游戏数据管理更新,用户数据管理等等。提供 web 后台给运维操作,实现运维的自动化和可视化操作。Manager使用双机热备模式实现高可用,避免单点故障造成整体系统瘫痪。

日志和监控。我们需要有完整的日志来记录和追踪系统行为,保障整个系统的可维护性。同时系统会实时监控每个游戏实例以及 Node 的状态,包括 cpu、gpu、网络io 的使用率,游戏帧率、延迟等等数据,所有数据保存下来,后面可以通过一些数据分析的手段来找到性能的瓶颈,然后再针对性的进行优化,进一步优化我们的系统。

   

提问:对家用的wifi做一些支持,能详细说说吗?

乔捷:首先,要提示用户wifi信号不好会造成延迟,终端检测到网络信号不好时及时的提示用户。其次,对于网络延迟的抖动,我们的同步控制算法能够补偿一部分抖动。最后,可以在服务器上调优一下TCP参数,比如说减小数据重传的超时时间,加快数据包的重传,可以有效缓解抖动。


提问:对用户体验有影响吗?

乔捷:目前肯定有,我们是标清的 720P 的画面质量,因为要考虑硬件成本和网络传输成本。但随着成本的逐步降低,未来要支持1080P甚至4K画质也是没有问题的。


提问:对于 CP 的开发模式有哪些影响?

乔捷:目前没有影响,我们只是买一个授权,然后由我们进行对接,不需要CP方去改动代码。当然如果 CP 方愿意来对接我们的SDK话那是最好的,可以加入对战、排名、内购等各种功能,利用云游戏的特点为游戏增加更多的玩法。


提问:我们这么多年下来的计算,最早开始所有的计算都是在中心,随着终端计算能力的增强,计算很多功能都到终端上面去,现在你的方案是把所有的终端都放在中心,这对服务器成本要求很高?如果能够容纳一些用户同时运行大型游戏,服务器成本是否会非常高?

乔捷:对。为什么我们要中心化?因为终端的种类太多了,手机、平板、电视、PC,这么多平台,你一个游戏要去移植这么多平台,本身的工作量就非常大,而且用户要去下载安装,推广的成本非常高,网络游戏单个用户的获客成本已经到了几十到上百块钱。所以,服务器成本表面上看是有点高,但是算上开发成本分发成本推广成本,这点服务器成本已经完全可以接受。

这就和视频一样,最早我们看视频是买光盘的,后来有了网络以后是从网络上下载,而现在宽带普及了之后已经没有人下载了,都是直接视频点播,因为它方便,门槛越低越容易被用户接受,现在还会有人买光盘吗?基本上已经没有了吧。电视电脑都不是我们的工具了,大家现在用的比较多就是手机。计算资源越来越中心化集中,管理成本不断降低。现在买游戏机、ps3、ps4,每隔 5 年换一个游戏机,以后不需要游戏机更新换代了,更新换代对于厂商来说是一个比较痛苦的过程,有一个漫长的迁移过程。将来根本不用关心什么硬件,比如今年的“吃鸡”游戏非常流行,但是很多玩家的显卡性能不足,跑不起来。将来游戏都是放在服务器上跑,用户根本不用担心跑不跑得动,接上就可以玩。一旦这个服务模式成立,硬件厂商都会向这个方向投入资源,最早2011年的时候我们就预研过云游戏的技术,当时做了以后就放弃,后来看到这个机会以后推出来了grid显卡,一下子拉很高,看这一块商业模式什么时候落地,现在还是在探索的过程当中,将来是大趋势。


提问:除了服务上面成本,要求终端的网络非常好吗?对解码要求高么?

乔捷:对,因为网络非常普及的情况下,宽带已经无处不在了,所以这个问题基本已经被解决了。现在的主流中低端芯片可以实时软件解码720P的视频流。


提问:我知道游戏有很多种类,目前云游戏技术支持的范围怎么样?云游戏的交互目前为止是否还很有限?

乔捷:主要是主机游戏,用手柄玩的游戏。看类型,使用键盘鼠标的游戏比如FPS在电脑上比较好操作,在电视上就不太方便了,目前主要还是适配手柄操作的游戏。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Setting学习(四)-数据加载之二级菜单

    二级菜单是以动态加载和静态xml文件结合的方式进行加载的。 以网络(network)为例可以看到,它对应的fragment是NetworkDashboardFragment.java,他继承了DashboardFragment而往上追踪溯源,最后都是继承的PreferenceFragment PreferenceFragment是通过xml文件来进行加载的,它…...

    2024/4/21 8:28:10
  2. Advanced Installer 打包Winform程序

    Winform程序打包方式: 1.ClickOnce部署方式可以完成Winform程序的打包,并根据程序的升级进行自动更新,但是不能修改安装路径 2.Visual Studio Installer部署Winform程序,可以有安装界面和修改安装路径,但是不能设置自动更新; 3.WixToolset打包方式,可以设置自动更新和修…...

    2024/5/1 7:48:04
  3. ubuntu-16.04 详细安装教程(图文)附下载地址

    安装准备 下载地址 ubuntu-16.04 下载地址: Ubuntu 16.04 LTS官方镜像下载: 32位:http://releases.ubuntu.com/16.04/ubuntu-16.04-desktop-i386.iso 64位:http://releases.ubuntu.com/16.04/ubuntu-16.04-desktop-amd64.iso Ubuntu 官方镜像更新,如果下载不到请到官网列表…...

    2024/4/21 14:03:10
  4. linux查看所有串口和usb设备方法

    1、查看串口是否可用可以对串口发送数据比如对com1口,echo /dev/ttyS0 2、查看串口名称使用ls -l /dev/ttyS*一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS*,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的; 3、查看串口驱动cat/…...

    2024/5/1 5:47:35
  5. API Demos(4) Preference,偏好设置

    最近编辑于2018年4月30日一、引入Preference的方式1、Preference有两种界面展现形式:PreferenceActivity和PreferenceFragment。2、可以在PreferenceActivity或PreferenceFragment中以两种方式引入Preference:i、addPreferencesFromResource(R.xml.preference_xxx);其中prefe…...

    2024/5/1 10:12:53
  6. 离线环境下使用Maven打包Storm程序

    Maven打包程序会根据程序提供的pom.xml文件下载很多依赖包,一旦这些依赖包在本地存在以后,再打包程序就无需重复下载,因此要想在离线环境中使用Maven打包Storm程序,只需要从已经下载好依赖包主机,将其中的~/.m2文件夹复制到离线环境中,在离线环境的$MAVEN_HOME/conf修改s…...

    2024/5/1 7:21:02
  7. js截取url里面某个字符串

    function getQueryString (name) {var reg = new RegExp((^|&) + name + =([^&]*)(&|$), i);var r = window.location.search.substr(1).match(reg);if (r != null) {return unescape(r[2]);}return null; }// 这样调用: this.zjhm = getQueryString(zjhm) this.s…...

    2024/5/1 10:10:06
  8. Linux串口编程详解 linux串口相关设置函数

    tcgetattr 函数用于获取与终端相关的参数。参数fd为终端的文件描述符,返回的结果保存在termios 结构体中http://baike.baidu.com/view/5644808.htm?fr=aladdintcsetattr 函数用于设置终端的相关参数 tcflush Unix终端I/O函数。作用:清空终端未完成的输入/输出请求及数据对…...

    2024/4/20 18:30:27
  9. 游戏开发-声音篇(最简单的 FMOD 应用)

    游戏开发-声音篇(最简单的 FMOD 应用)最近两天学校断网,呵呵,(杯具),自己把以前的文档拿出来翻了翻,FMOD是一 个游戏声音引擎,其实自己早就下载安装了FMOD,只是自己一直没用(说真的感谢 断网,呵呵),更别提怎么编码了,迟到今天才写了一个FMOD程序,感觉没那么难 …...

    2024/4/20 18:30:26
  10. C# winform 程序打包部署-带数据库安装部署打包

    由于程序打包的需要,在网上找到一篇不错的,在实践过程中发现一些小的问题,所以作了一些备注,以便后来看到的人能更顺利的完成安装包的制作使用VS 自带的打包工具,制作winform安装项目 开发环境:VS 2008 Ms sqlserver 2008操作系统:Windows 7开发语言:C#项目名称:**系统…...

    2024/4/20 18:30:25
  11. js截取字符串,并加省略号

    //text:字符串,numSub:截取的字符长度function showText(text, numSub){ if(text == null){ return ""; } if(text.length > numSub){ return text.substring(0, numSub - 1) + "..."; } return text;}...

    2024/4/21 8:28:04
  12. 打包winform程序时,处理app.config

    在打包winform程序时,打包、安装、运行之后,app.config的配置数据读取不了,于是我花费了半天的时间,发现我打包的程序中app.config是在类库项目里面,运行之后没有生成config配置文件,一般config编译生成的配置文件后是:"项目名.exe.config”,于是我将类库项目生成…...

    2024/5/1 8:22:09
  13. js截取某个字符串中某个词后面的内容

    if (requestUrl.indexOf(type) !== -1) {requestUrl1 = requestUrl.substr(requestUrl.lastIndexOf(type) + "type".length)}...

    2024/4/21 8:28:02
  14. Android学习 游戏开发之打地鼠(一,需求分析与设计)

    学习Android也有一段时间了,最近几天正赶上学校要交一个android的作业,于是就有了这个小作品,并不是规范的开发,只是完成了部分功能,和市面上的作品不能相提并论,游戏中所用到的图片和音效均来自于网络。先来看看需求分析以及效果图 游戏的第一界面有5个按钮,开始游戏,…...

    2024/4/21 8:28:01
  15. VS2010打包程序 报错:未能找到文件 存储空间不足 无法完成此操作

    在用VS打包安装程序的时候,当加入的文件为大文件,可能会出现:未能找到XX文件 存储空间不足 无法完成此操作 的错误 即使本地磁盘上具有可用的磁盘空间也是如此。 在生成过程期间,虚拟内存的使用量也可能会增加。 可以尝试以下方法解决(已验证)在项目中添加一个与大型文件…...

    2024/5/1 10:49:45
  16. Lua游戏引擎Love试用

    今天使用Love引擎,测试了一下其基本的一些特性。 由于是底层封装了opengl的库进行图形显示,效率当然还是非常高的,而且lua本身的运行效率也很高,这个架构就特别时候游戏原型的开发,如何哪里运算速度跟不上时,再写成C的库供lua调用,就显得十分方便。不过不爽的问题也很明…...

    2024/4/21 8:28:00
  17. Fragment中onActivityResult不响应

    /////////////////2016/10/17////////////////// ////////////////by xbw/////////////////////// ////////////////android studio/////////////最近做的项目,需要android+h5,在fragment中内嵌h5,这个确实便利不少。 用户体验很棒。 但是问题来了,其中有个模块是修改密码…...

    2024/4/21 8:27:58
  18. linux下串口编程

    一、串口基本知识1、什么是串口通信串口通信(Serial Communication),是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。 串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。串口是计算机上一种非常通用设备通…...

    2024/4/21 8:27:57
  19. js 获取url与截取url字符串

    var strHost=location.href;var ss= strHost.substring(strHost.indexOf("=")+1,strHost.length);转载于:https://www.cnblogs.com/Liq-Blog/archive/2012/02/04/2337815.html...

    2024/4/21 8:27:56
  20. 【.Net码农】安装程序打包MFC(visual studio安装部署详解)Install Application Package by using visual studion 2010

    http://blog.csdn.net/ywwzq0507/article/details/5777665博主比较傻,以前忙了很久,搜了很久,提问等了很久也没解决安装程序打包问题。我在百度上提了个问题,半个月居然都没有人理,唉!解决的辛酸就不说了,现在解放了。。。我用的是visual studio 2010进行打包,2005、20…...

    2024/4/21 8:27:55

最新文章

  1. c#数据库: 10.调用存储过程查询信息,并显示在窗体上

    查询女生信息,并将信息显示在窗体上: 原数据表//右键数据库名,新建查询 ------------- 新建查询窗口,添加新建存储过程Procedure_GetGirls1和查询代码如下 : CREATE PROCEDURE dbo.Procedure_GetGirls1 /*存储过程名称*/ AS SELECT * f…...

    2024/5/1 11:04:16
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 第37篇:分频器<四>

    Q:介绍完计数器分频电路概念原理之后,本期我们设计实现四分频计数器分频电路。 A:使用DE2-115开发板的KEY[1]作为时钟i_clk输入,KEY[0]作为清零复位i_rst输入,LEDR[0]显示分频后的时钟o_clk输出值,LEDR[3:…...

    2024/4/30 16:33:48
  4. Topaz Video AI for Mac v5.0.0激活版 视频画质增强软件

    Topaz Video AI for Mac是一款功能强大的视频处理软件,专为Mac用户设计,旨在通过人工智能技术为视频编辑和增强提供卓越的功能。这款软件利用先进的算法和深度学习技术,能够自动识别和分析视频中的各个元素,并进行智能修复和增强&…...

    2024/4/30 4:45:36
  5. __dirname 在ES模块中的使用

    前言 ECMAScript模块是 JavaScript 的新标准格式。在Node.js中越来越多的库逐渐从从CommonJS转移到ES模块 注:这里是指“真”ES 模块并不是指代码中 Node.js 中使用 import 写法但是实际被 tsc 转成 commonJS 的形式 但是Node.js ES 开发中此前有一个棘手的问题是获…...

    2024/4/30 2:01:48
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/29 23:16:47
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/30 18:14:14
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/30 18:21:48
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/30 9:43:22
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57