2016 - 2024

感恩一路有你

手游h5游戏白屏 手机白屏一闪一闪是什么原因?

浏览量:4619 时间:2023-09-12 20:53:13 作者:采采

手机白屏一闪一闪是什么原因?

手机屏幕闪啊闪的原因是什么?麻烦问下这个问题,我的答案是手机闪屏的原因,很可能是只不过手机的屏幕会出现了损坏也有可能是毕竟手机的内屏某些零件出现了松动,或者是手机内屏会出现了灰色的痕迹,倒致手机闪屏故障,也可以带到维修店接受检测维修。

一个小程序的实施技术方案?

小程序上游戏大半年,大部分技术原理也有文章介绍了,本文数次从需求出发探讨一番小程序技术方案的来源,这些最近不删档测试的支付宝小程序技术方案的考量。

小程序

小程序的需求是让第三方开发者也可以接入,可以不在用的需要提供的接口去开发应用导进在里。是对这个需求,最简单的实现方案是:让外部开发者开发纯H5应用,在的H5容器里再打开,容器能提供接口,就行了。在有小程序之前,已经有很多这样的业务接入,像京东购物,钱包里的各种友商大众点评/滴滴出行等,都也可以认为是一个“小程序”,内嵌在里,能内部函数接口,你是不是顺着这种模式下去,把或者的接口开放给第三方,再提供个入口就行了?

虽然这种简单点方案没法满足需要,在产品上小程序有另外两个很重要的需求:

管控。作为一个平台可以对接入的应用有管控能力,前提是能最好不要精确控制应用的内容和类型,毕竟若又出现非法经营应用平台是要承当责任的,H5的太过于自由,开发者可以一旦决定整个应用的内容,平台难以检测检测到这些改变,没能管控。同时H5开发质量参差不齐,平台也根本无法管控,这对于一直以来有洁癖的来说难以接受。

体验。才是一个“小程序”要让体验将近原生,而根据上述规定像京东购物这些大多数H5页面的亲身体验不太行,除开启动速度/页面快速切换流畅度应该有问题,跟原生体验没办法比。

所有小程序的技术方案也是目的是这两个需求服务。

管控

是为不满足管控的需求,技术上做了两个事情:小程序框架和只是分离JS运行环境。

框架/DSL

H5太自由,简单的方法要做的那是限制它的自由,怎样才能限制下载?也是做个框架绑住,让开发者不能按框架的规则去开发。那应该要可以使用怎样的框架?

在PCSNS时代,Facebook做开放平台时有相似的场景,为了第三方开发者能在Facebook平台上旗下,同样的又能取消住开发者的权限,Facebook那些要求开发者使用选项卡的一套DSL(FBML)去开发,而这个DSL能怎莫写,最终能转成什么,怎么先执行,大都平台说了算,另外也是可以很方便些做代码扫描和审查。

小程序趁着能借鉴吸收这样的设计思路,界面不使用HTML开发,只是自定义一套DSL,这样就可以非常容易配合审核/代码扫描/域名限制等系列措施去做管控,这那是小程序这一套框架的来源。这套框架去描述界面,wxss具体描述样式,js去处理逻辑和数据,再是从工具一系列一次性处理把这些转为HTML/CSS/JS没显示在webview上,并一次性处理界面交互和数据更新。

这样用一套框架去限制修改的新,重塑一层DSL,除此之外管控外还有一个一个好处,应该是太容易参与针对性优化,DSL结果转成什么,到了最后如何执行软件渲染都由框架确定,上层不五感,这个可以制作成由webview渲染,有条件也是可以用类似RN的方案自己基于软件渲染层。

JS环境

按照框架限定开发后,管控上有个问题,那就是该如何取消应用端类JS语言调用domAPI?小程序跑在webview上,渲出时必定要是从JS操作dom,要是小程序框架和应用JS代码都是权限操作dom,应用可能会实际各种在上游戏后绕到检查,涌入JS调用dom接口去直接修改页面结构和内容,变的跟审核时不一样的应用。怎样才能能取消应用方法的JS动态创建dom的权限?想了个比较比较做创新的解决方案,那就是:JS运行环境与浏览器分离出来,运行在另的JS引擎上。

冲出了浏览器,JS自然没有dom的内部函数权限,任何跟webview界面相关的API都无法搞到。而小程序框架核心JS启动在webview上,可以不契约能操作dom,是从小程序框架符号表示的机制,应用端实际wxml/wxss定义固定不动的软件渲染样式,JS端自有打算数据手机绑定,数据可以按照restful桥梁从JS引擎传递到webview,JS端不能做任何渲染相关的你的操作,也可以对颜色渲染的内容有求下载的管控权。

单独的的JS运行环境除了不满足管控需求外,也额外给了一些好处和一些坏处,好处在于:

多个页面可以不链接共享一个JS运行环境,数据是可以很更方便地互相访问,整个小程序生命周期里链接共享同一个上下文,更接近APP的开发体验。

JS与页面3d渲染分离联成一体负责执行,肯定不会会出现JS想执行时卡住了页面3d渲染的情况,提升到3d渲染性能。

坏处在于:

多了数据序列化传输的开销,数据不需要从JS到了webview给视图层软件渲染,是需要序列化为字符串格式再通过传输。

iOS上WKWebview的JS引擎比JavaScriptCore多了JIT优化,执行速度快很多倍,小程序的JS运行程序在JavaScriptCore上不能惬意的享受到这个360优化。

导致管控需求太过刚需,这个方案给他坏处也可以认可。

体验

小程序最主要的两个技术点—框架和JS不运行分离出来全是来于管控需求,而体验上的需求应该是由各种精细入微的性能优化排成了,很多文章也讲过,这里简单说下,和:

离线模式包:整个小程序发到邮箱印发的通知,不必须先打开每个页面都去只是请求,增加俩次打开时间和页面切换到时间。

预加载:预加载多一个wkwebview放后台,用户先打开小程序时会省重新初始化wkwebview时间。同时对于一个小程序内的页面直接切换,之福于框架的设计,可以不能做到预颜色渲染模板,切换到时再填充后数据,快速渲染速度。

缓存:再次小程序后不可能立刻全部销毁,会在后台一直跑5分钟,这段用户切回小程序时速度快。

视觉:小程序2002年运行程序是从loading和动画的过渡,回绝白屏,给人一种名为快的感觉,而进阶了小程序的标识度。

剩下的应该是围绕小程序这个平台的周边大力建设了,像组件,context接口,IDE,后台管理,版本管理,权限控制等基础支持。

支付宝小程序

策略

小程序很快推出时通常面向的场景是线下,希望商家能开发小程序,做像点完菜拿票这样的即时性应用,实力提升线下商户体验,支付宝充当线下战场的比较多竞争对手肯定要去协助。

支付宝能做小程序应该怎样做?这个可以根据自身的情况,定义另一套技术体系,让第三方接入。但这样的话第三方如果不是要另外接入和支付宝,是需要开发完毕两套程序,成本很高,而有再发和平台优势,很肯定变成只开发小程序而放弃接入支付宝小程序,所以才好是的做法是降低这里的接入成本,让小程序的代码可以分时复用在支付宝小程序上。所以我小程序联合的框架/API/组件必须是跟小程序距离或力求一致,技术上没得中,选择,所以才可以清晰的看到支付宝小程序公测版的文档很多跟相同。

实现方法

支付宝小程序框架作为接口是跟一般,又因为则是有管控/安全和亲身体验的需求,有些策略是带有的,像相当于JS环境,自动更新包,缓存策略等,但在小程序框架的实现上就跟全部都不一样。小程序框架才是一层屏蔽了实现细节的DSL层,到了最后什么技术手段实现程序都是可以是由框架底层自由个性定制的,这边底层技术基于蚂蚁前端团队多年的积累,结果web版小程序是以react为基础实现方法。

React Native

除此之外作为的跟同一的web版小程序,内部一直在在一段时间React Native版小程序,3d渲染层不区分webview,而是用RN去渲染,进阶性能和体验,这确实是小程序DSL层很大,底层渲染引擎也可以很方便啊地全部替换实现方法方案,甚至于同样必然多套方案。

很多人问为啥不用weex,按我解释简单的方法是蚂蚁的前端技术栈基于react,快速切换成本高,另一个RN相对于weex成熟度高,社区意见度高,并保持着不未停的更新,相对客气礼貌。

RN本身不跨平台支持,iOS/Android有各自的写法,在RN的使用上,业界很多人各自实现了基于组件RN的跨三端或两端的开发(的或JDReact),也就是四次开发,能另外允许RN在iOS/Android平行放置做原生渲染,也支持fallback到webview渲染。这里小程序也可以算这样的一套方案,上层可以自定义DSL开发业务,防御部署时实际工具共有可以转换成三个平台不同的代码,在三个平台不运行。

内部应用

小程序是一套联合的方案,要注意应用于第三方应用接入,因为上文也说了,框架上很多技术方案大都目的是满足对第三方管控和安全方面的需求,而小程序相关的很多再体验优化软件其功能多纯H5也也可以可以做到,内部业务用web版小程序开发却没给他什么好处,不但增加学习成本。但RN版小程序是一样的,它有一些优势,除了:

RN总体webview性能优势明显,秒开率高,交互也更丝滑。

相对于只不过是不使用RN开发,在用小程序可以不被屏蔽平台差异,实现方法跨平台三次开发。

小程序有对应的开发环境/IDE/包管理等基础设施允许,不需要再反复重复建设。

这对业务开发者,小程序又不是全新的一套开发,在业界可复用,这对框架实现者,RN又是业界流行开源方案,有强大的社区支持。对内对外都尽量减少了另外创建一套没法在内部建议使用的技术体系,极大降低技术成本。

基于这些原因,在腾讯理财通这边一些内部原本应该是使用H5实现的业务,也正尝试大量地建议使用小程序实现方法,以提升用户体验,目前部分基于条件小程序RN版开发的业务已万分感谢上稳定运行,强盗团也会不再接触把小程序RN版坚持了锻铸成高性能稳定的三端统一动态化方案。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。