BCCode:什么意思

BCCode:什么意思,第1张

电脑蓝屏

原因是很复杂的

1。杀毒不彻底,(360杀毒,金山毒霸,卡巴斯基等等,下载其中任意一款杀毒

软件,全盘扫描)

2。电脑系统有顽固的病毒和木马或蠕虫干扰,或者丢失了系统文件(360系统急

救箱或金山急救箱,金山网盾等等,其中任意一款,全盘查杀,再修复)

3。软件需要更新,(360管家,软件升级,下载,覆盖安装,winrar可以不升)

4。系统有新的漏洞等待安装,(修补高危和重要的,其它设置为:忽略)

5。多余的同类软件安装,(360管家,软件卸载,找到卸载,再:强力清扫)

6。显卡或内存cpu的接触不良和松动或有灰尘覆盖,(拔下橡皮擦擦)

7。内存cpu过热,散热性不好!(开机时间不要太长,关机散热)

8。如果还是进不去,说明系统文件丢失了!或者系统内存有很严重的错误了!

9。试试开机后按F8,回车,回车,进安全模式里,最后一次正确配置,按下去

试试!或者,进安全模式,到桌面后,全盘杀毒!

10。玩游戏蓝屏,一般就是系统不支持这款游戏!(更换游戏版本或换xp系统)

11。下载的游戏,播放器,输入法,下载工具,浏览器等,程序不稳定!(卸载

重装或升级至最新版本)

12。如果还是不行,需要“一键还原”系统或“重装系统”了 !

前面一节 讲到字节码序列化为二进制是有固定的格式的,这里我们分析一下源码里面是怎么处理的

这里可以看到首先写入的是魔数,他的值为

对应的二进制见下图,注意是小端字节序

第二项是字节码的版本,笔者的版本是74,也即 上图中的4a00 0000

第三项是源码的hash,这里采用的是SHA1算法,生成的哈希值是160位,因此占用了20个字节

第四项是文件长度,这个字段是32位的,也就是下图中的为0aa030,转换成十进制就是696368,实际文件大小也是这么多

后面的字段类似,就不一一分析了,头部所有字段的类型都可以在 BytecodeFileHeaderh 中看到,Hermes按照既定的内存布局把字段写入后再序列化,就得到了我们看到的字节码文件。

这里写入的数据很多,以函数头的写入为例,我们调用了visitFunctionHeader方法,并通过byteCodeModule拿到函数的签名,将其写入函数表(存疑,在实际的文件中并没有看到这一部分)。注意这些数据必须按顺序写入,因为读出的时候也是按对应顺序来的。

我们知道react-native 在加载字节码的时候需要调用hermes的prepareJavaScript方法, 那这个方法做了些什么事呢?

这里做了两件事情:

1 判断是否是字节码,如果是则调用createBCProviderFromBuffer,否则调用createBCProviderFromSrc,我们这里只关注createBCProviderFromBuffer

2通过BCProviderFromBuffer的构造方法得到文件头和函数头的信息(populateFromBuffer方法),下面是这个方法的实现。

BytecodeFileFields的populateFromBuffer方法也是一个模版方法,注意这里调用populateFromBuffer方法的是一个 ConstBytecodeFileFields对象,他代表的是不可变的字节码字段。

细心的读者会发现这里也有visitFunctionHeaders方法, 这里主要为了复用visitBytecodeSegmentsInOrder的逻辑,把populator当作一个visitor来按顺序读取buffer的内容,并提前加载到BytecodeFileFields里面,以减少后面执行字节码时解析的时间。

Hermes引擎在读取了字节码之后会通过解析BytecodeFileHeader这个结构体中的字段来获取一些关键信息,例如bundle是否是字节码格式,是否包含了函数,字节码的版本是否匹配等。注意这里我们只是解析了头部,没有解析整个字节码,后面执行字节码时才会解析剩余的部分。

evaluatePreparedJavaScript这个方法,主要是调用了HermesRuntime的 runBytecode方法,这里hermesPrep时上一步解析头部时获取的BCProviderFromBuffer实例。

runBytecode这个方法比较长,主要做了几件事情:

这里说明一下,Domain是用于垃圾回收的运行时模块的代理, Domain被创建时是空的,并跟随着运行时模块进行传播, 在运行时模块的整个生命周期内都一直存在。在某个Domain下创建的所有函数都会保持着对这个Domain的强引用。当Domain被回收的时候,这个Domain下的所有函数都不能使用。

未完待续。。。

1选定网站服务器,购买物理服务器存放网站程序,也可以选择租用云服务器,这类搭建一般选择免备案的服务器。

2、根据网站程序源码安装服务器或者云主机 *** 作系统,依照代码开发的搭建环境要求,选择合适的 *** 作系统,比如Window2008/NT还是Unix、Linux。根据搭建经验兼顾稳定性和安全性等。

3、网站程序代码的选择。是喜欢固定模板源码基础还是更有个性化开放的开发程序。建议可以先找原有符合要求主要功能源码程序,然后再其基础上开发,这样既可以省下开发时间又能节省下成本。当然也有弊处,就是后期容易受到原有代码框架的限制,可能不利于个性化需求。

4、网站安防维护。比如服务器防黑,域名放劫持等等,都要做好预防,防止网站后期运营流量上来之后,容易受到同行或者黑客入侵网站的情况。

总结下来就是这类与其它正常网站搭建开发步骤差不多,就是服务器或者云空间和域名的选择上不同,前者选择境外的免备案节约建站时间和不必要的麻烦。

以上就是关于BCCode:什么意思全部的内容,包括:BCCode:什么意思、Hermes源码分析(二)——解析字节码、如何快速搭建CP程序网络BC系统APP网站平台等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10129485.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存