1、热更新(热修复)是什么?有什么作用?
1.1 在我印象里,对热插拔有一点印象,热修复都没听说过,对于弄懂什么叫热更新、热修复就很关键了。热插拔的意思为:通着电进行一些零件的插拔,比如说,台式机开机运行我们插拔鼠标,手机开机安装取出SIM卡。那热修复就是在iOS的应用上线之后,不断电(不下线)的修复它,更新它。
1.2 如果iOS的app上线之后发现了一个极其隐蔽的bug,就只能通过再次修改再上线来解决这个问题了,iOS特有的审核会延长这个周期,所以,如果我们有了热修复的功能,在iOSapp上线之后发现了bug,我们可以通过修改.js的文件来修复出现的问题。
2、用什么?如何使用?
2.1 因为项目里引入了bugly的崩溃日志报告,确实值得推荐使用,信息很详细。巧的是,bugly包含了热更新的SDK,bugly热更新的核心是基于JSPatch的,patch的中文意思为补丁。
2.2 关于如何导入或者集成就需要看详细的官方文档了。
在项目中新建了.js文件,项目上线之后,我们需要通过bugly的平台,去上传修改好的脚本文件(压缩),如果是首次运行应用应该不会立即更新,推测此时在下载补丁。第二次运行就可以看到效果了。
3 重点为如何编辑使用.js文件
3.1 JSPatch很类似JS语法,但是毕竟不是JS语法,一些JS的高级用法还是无法进行使用。
关于脚本语言的一些理解:脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。由解释器(虚拟器)负责解释说明翻译。脚本语言也称胶水语言,用来连接软件组件的程序设计性语言,可以调用别的语言编写的功能模块,结合在一起形成更高效的新程序。
脚本语言介于标记语言和编程语言之间,脚本语言不需要编译,可以直接用,由解释器来负责解释。
编译型语言写的程序执行之前,需要专门的一个编译过程,把程序编译成机器语言的文件,比如.exe文件,以后要运行就不需要重新编译了,直接使用编译的结果就好了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的执行效率高。
资料收集以及依据:
3.2 申明变量用var 用.调用方法 require()是需要引入的类名字 例如:
var testView = require('UIView').alloc().init()
#warnning JSPatch的语法可能是所有的方法都带有括号的,有参数传参数,没有参数就不用管了。如何得知呢? 举例
require('UIView')
var superView = UIView.alloc().init()
var view = UIView.alloc().init()
superView.addSubview(view)
多参数方法名用_分割开
网友评论