[发明专利]页面生成方法及装置、电子设备、计算机可读介质有效
申请号: | 202011535421.6 | 申请日: | 2020-12-23 |
公开(公告)号: | CN112506602B | 公开(公告)日: | 2023-08-08 |
发明(设计)人: | 马宏阳 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451;G06F8/34;G06F8/38 |
代理公司: | 北京天昊联合知识产权代理有限公司 11112 | 代理人: | 彭瑞欣;刘悦晗 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 页面 生成 方法 装置 电子设备 计算机 可读 介质 | ||
本公开公开了页面生成方法及装置、电子设备、计算机可读介质,涉及互联网技术领域,尤其涉及页面开发技术领域。具体实现方案为:响应于接收到页面生成请求,向服务器获取待生成页面的DSL数据,DSL数据的数据结构与待生成页面的微件widget树结构一致;解析DSL数据,以生成页面。采用DSL描述页面的数据结构,该数据结构与页面的数据结构一致,并将页面的数据结构保存在服务器,在生成页面时从服务器调用相应的DSL数据,通过解析DSL数据即可快速生成页面;DSL构造简单,解析速度快,可以应用于Flutter应用热修复场景,且能够弥补Flutter页面在动态化发布更新方面的不足。
技术领域
本公开涉及互联网技术领域,尤其涉及页面开发技术领域,具体涉及一种页面生成方法及装置、电子设备、计算机可读介质。
背景技术
Flutter是谷歌的移动UI(User Interface Design,界面设计)框架,可以快速在iOS(苹果移动设备操作系统)和Android(谷歌公司开发的移动操作系统)上构建高质量的原生用户界面。Flutter应用使用dart(计算机编程语言)语言开发,目前主流的Flutter页面发布方式,是将dart语言编译为机器码,不支持即时动态更新页面和发布新页面。
动态生成Flutter页面目前普遍采用如下三种方案来解决:
(1)替换编译产物。该方案是目前官方给出的页面动态化生成方案,通过远程下载新的编译产物,并整体替换旧编译产物。以Android平台为例,编译会产生libflutter.so,libapp.so和flutter_assets文件,其中libapp.so是页面逻辑所在文件,使用新开发的libapp.so替换该文件,即可动态发布新页面。
(2)将运行模式由AOT(Ahead Of Time,事前编译)变为JIT(Just In Time,即时编译)。AOT通过编译并生成二进制代码,然后通过用户安装并取得执行权限后运行,Flutter应用发布后在此模式下运行,在此模式下只能采用“替换编译产物”的方案动态发布页面。而在JIT模式下,dart虚拟机需要重新编译并运行dart源码。
(3)利用dart官方提供的分析库和Flutter应用配合动态生成页面。
发明内容
本公开提供了页面生成方法及装置、电子设备、计算机可读介质。
根据本公开的第一方面,提供了一种页面生成方法,包括:
响应于接收到页面生成请求,向服务器获取待生成页面的领域专用语言DSL数据,所述DSL数据的数据结构与所述待生成页面的微件widget树结构一致;
解析所述DSL数据,以生成页面。
根据本公开的第二方面,提供了一种页面生成装置,包括获取模块和解析模块,所述获取模块用于,响应于接收到页面生成请求,向服务器获取待生成页面的领域专用语言DSL数据,所述DSL数据的数据结构与所述待生成页面的微件widget树结构一致;
所述解析模块用于,解析所述DSL数据,以生成页面。
根据本公开的第三方面,提供了一种电子设备,其包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行页面生成方法中任一项所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行页面生成方法中任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011535421.6/2.html,转载请声明来源钻瓜专利网。