1.一种基于浏览器内核的移动端跨平台开发方法,其特征在于:该方法包括以下步骤:S1、定义抽象的应用程序源代码,通过编译器对源代码进行编译;
S2、将编译后的文件进行封装打包进入打包器,打包器发送完整的代码包至应用管理器,由应用管理器进行拆包解析;
S3、页面管理器进行分配资源,创建程序运行时环境,并通过浏览器内核对界面进行渲染;
S4、利用通讯桥负责运行时环境与原生应用底层通讯,开发者代码通过通讯桥提供的接口将信令传递至通讯桥,通讯桥将信令转发给底层操作系统,调用操作系统底层功能;
所述定义抽象的应用程序源代码包括:
对应用软件做出抽象定义,一个应用软件由多个页面组成,每个页面的应用程序源代码包括:html文件、css文件、js文件、json文件;
所述html文件用于描述页面的界面视图结构,并声明与样式和逻辑的绑定关系;
所述css文件用于描述页面的表现样式;
所述js文件用于描述页面的逻辑;
所述json文件用于描述页面间关系和附加属性;所述json文件中包括一个app.json,所述app.json用来描述应用下的所有页面的页面路径、标题、名称;
所述编译器用于读取所有源代码文件,并解析内容,生成可执行页面文件,在编译过程中编译器将样式、逻辑的引用索引、通讯桥调用方法、组件库调用索引注入到可执行页面文件中;
所述打包器用于将编译器产生的可执行页面文件进行汇总编排,并收集应用依赖,对页面涉及的组件样式进行隔离处理,最终形成代码包;
所述应用管理器负责在应用运行时将代码包存放到指定的运行时程序目录,并负责每一个应用的启动、关闭、更新以及应用间通讯;
所述应用管理器还包括包解析器;
所述包解析器负责对代码包进行拆解,将其中配置文件解析成运行时数据,并且将实际运行时路径与配置路径进行映射;
所述页面管理器负责对单一应用中的页面进行管理,控制页面的渲染顺序,处理页面间跳转关系,根据配置创建和销毁运行时环境;
页面管理器为每一个页面创建一个运行时环境;
所述页面管理器使用栈结构存储页面数据,当新页面打开时,会从页面栈底部压入页面文件,压入的页面文件会被渲染在视图顶部;当打开在页面栈中已经存在的页面,则打开的页面文件会被调整至页面栈底部,从而渲染在视图顶部;
当页面数量达到数量K时,或开发者指定关闭页面,页面管理器将根据映射关系,将指定页面文件从页面栈中移除,其中K为可设置常数。
2.根据权利要求1所述的一种基于浏览器内核的移动端跨平台开发方法,其特征在于:所述方法中还包括浏览器内核选择方法:
获取任一浏览器内核下原生应用启动时间与多端应用启动时间;
所述原生应用启动时间指在原生系统下的运行的原生应用软件的启动时间;
所述多端应用启动时间指在原生系统下的运行的多端使用的应用软件的启动时间;
构建启动时间差值数据集合,记为 ,其中 分
别为任一浏览器内核下原生应用启动时间与多端应用启动时间的时间差值;
构建浏览器内核合集,所述浏览器内核合集中包括适配于界面渲染的所有的浏览器内核;
获取浏览器内核合集中所有浏览器内核的启动时间差值数据集合;
根据任一浏览器内核的启动时间差值数据集合,取n组数据作为历史数据,构建预测模型,预测得出这一浏览器内核第n+1次的启动时间差值数据:以启动时间差值数据集合中的数据构建原始数据结构列,记为 ;其中 ={X(0 1),X0(2),X(0 3),……,X(0 n)};
对 作灰色累加生成处理,生成 ={X(1 1),X(1 2),X(1 3),……,X(1 n)};
满足:
其中,m=1,2,……,n;
对 进行处理,以紧邻均值的方式计算,记为Z1,即Z1={Z(1 1),Z(1 2),Z1(3),……,Z1(n)};
满足:
计算结果记入矩阵B、Y;
其中,
; ;
建立 的白化微分方程为:
其中,为发展系数,b为灰作用量;
求解可得:
即可测出预测值:
根据矩阵与最小二乘法,计算得出:
设置m=n,代入预测模型中得出 的值,记为浏览器内核第 次的启动时间差值预测数据;
通过预测模型,计算得出第 次情况下,所有浏览器内核的启动时间差值预测数据,并选取其中最小数据的浏览器内核作为第 次界面渲染的浏览器内核。
3.应用权利要求1所述的一种基于浏览器内核的移动端跨平台开发方法的一种基于浏览器内核的移动端跨平台开发系统,其特征在于:该系统包括源码编译模块、打包封装模块、应用管理器、页面管理器、装载器、浏览器内核选择模块、通讯桥;
所述源码编译模块用于定义抽象的应用程序源代码;所述打包封装模块用于通过编译器对源代码进行编译,将编译后的文件进行封装打包进入打包器,打包器发送完整的代码包至应用管理器;所述应用管理器用于对打包器发送的完整的代码包进行拆包解析;所述页面管理器用于进行分配资源,创建程序运行时环境,并通过浏览器内核对界面进行渲染;
所述装载器用于根据映射路径对可执行代码进行装载,并提供给页面管理器用于注入运行时环境;所述浏览器内核选择模块用于根据构建的预测模型挑选出应用启动时间差值最下的浏览器内核;所述通讯桥用于运行时环境与原生应用底层进行通讯,桥的两端分别存在于页面运行时环境和原生运行时环境中。
4.根据权利要求3所述的一种基于浏览器内核的移动端跨平台开发方法的一种基于浏览器内核的移动端跨平台开发系统,其特征在于:所述源码编译模块包括软件定义子模块、页面组成子模块、编译器;
所述软件定义子模块用于对应用软件做出抽象定义;所述页面组成子模块用于将一个应用软件分组成多个页面,每个页面的应用程序源代码包括:html文件、css文件、js文件、json文件;所述编译器用于读取所有源代码文件,并解析内容,生成可执行页面文件,在编译过程中编译器将样式、逻辑的引用索引、通讯桥调用方法、组件库调用索引注入到可执行页面文件中;
所述html文件用于描述页面的界面视图结构,并声明与样式和逻辑的绑定关系;
所述css文件用于描述页面的表现样式;
所述js文件用于描述页面的逻辑;
所述json文件用于描述页面间关系和附加属性;所述json文件中包括一个app.json,所述app.json用来描述应用下的所有页面的页面路径、标题、名称。
5.根据权利要求3所述的一种基于浏览器内核的移动端跨平台开发方法的一种基于浏览器内核的移动端跨平台开发系统,其特征在于:所述应用管理器负责在应用运行时将代码包存放到指定的运行时程序目录,并负责每一个应用的启动、关闭、更新以及应用间通讯;
所述应用管理器还包括包解析器;
所述包解析器负责对代码包进行拆解,将其中配置文件解析成运行时数据,并且将实际运行时路径与配置路径进行映射。
6.根据权利要求3所述的一种基于浏览器内核的移动端跨平台开发方法的一种基于浏览器内核的移动端跨平台开发系统,其特征在于:所述页面管理器负责对单一应用中的页面进行管理,控制页面的渲染顺序,处理页面间跳转关系,根据配置创建和销毁运行时环境;
所述页面管理器为每一个页面创建一个运行时环境;
所述页面管理器使用栈结构存储页面数据,当新页面打开时,会从页面栈底部压入页面文件,压入的页面文件会被渲染在视图顶部;当打开在页面栈中已经存在的页面,则打开的页面文件会被调整至页面栈底部,从而渲染在视图顶部;
当页面数量达到数量K时,或开发者指定关闭页面,页面管理器将根据映射关系,将指定页面文件从页面栈中移除,其中K为可设置常数。
7.根据权利要求3所述的一种基于浏览器内核的移动端跨平台开发方法的一种基于浏览器内核的移动端跨平台开发系统,其特征在于:所述浏览器内核选择模块包括数据分析子模块、预测选择子模块;
所述数据分析子模块用于获取历史数据,获取任一浏览器内核下原生应用启动时间与多端应用启动时间差值,并对历史数据进行分析;所述原生应用启动时间指在原生系统下的运行的原生应用软件的启动时间;所述多端应用启动时间指在原生系统下的运行的多端使用的应用软件的启动时间;所述预测选择子模块用于构建预测模型,根据预测模型获取每一种浏览器内核的应用软件的启动时间预测差值,并挑选出最小值作为本次界面渲染的浏览器内核。