【技术实现步骤摘要】
应用程序的生成方法、运行方法以及相应的装置
[0001]本公开涉及计算机技术、研发工具的开发等
,具体而言,本公开涉及一种应用程序的生成方法、运行方法以及相应的装置。
技术介绍
[0002]随着科学技术的飞速发展、人们生活水平的提高,各式各样的应用程序已经成为人们生活中不可或缺的一部分。为了更好的满足应用需求,研发人员也在不断的研发或更新能够为使用者提供更优质服务的应用程序。由于电子设备种类的多样性以及多样性的需求,对于同一个应用程序,研发者经常需求针对不同的程序运行平台(如网页平台、小程序平台、原生应用程序app平台)开发不同的版本。
[0003]目前的开源框架中,虽然有些框架也能够实现程序代码的多端复用,实现一套代码可以在两端或者三端上复用,但是目前支持多端复用的框架中,对于app端应用程序的实现并不理想,有的框架会对app端应用程序的落地和后续的开发及维护造成不可以预估的风险和埋坑,有的框架则是对研发人员的代码编写规范有很大的约束。因此,如何改善目前程序研发过程中存在的问题中的一个或多个,仍是本领域技术人 ...
【技术保护点】
【技术特征摘要】
1.一种应用程序的生成方法,其特征在于,所述方法包括:获取基于uniapp框架的目标应用程序的程序源代码;对所述程序源代码进行编译,得到适用于app平台的所述目标应用程序的目标代码文件,以基于所述目标代码文件生成适用于app平台的所述目标应用程序的程序包;其中,在编译过程中,所述方法包括:获取所述程序源代码对应的源样式数据;若所述源样式数据中存在hippy框架不支持的待转换样式数据,根据所述待转换样式数据的样式类型,对所述待转换样式数据进行样式转换,得到hippy框架支持的样式数据,以基于转换后的样式数据进行编译。2.根据权利要求1所述的方法,其特征在于,所述待转换样式数据包括第一样式数据、第二样式数据或第三样式数据中的至少一项;其中,所述待转换样式数据是通过以下方式确定的:若所述源样式数据中包含第一指定图片格式的源格式图片,将所述源格式图片确定为第一样式数据;获取第一黑名单,将所述源样式数据中包含在所述第一黑名单中的样式数据,确定为第二样式数据;其中,所述第一黑名单中包含uniapp框架支持且hippy框架不支持的样式缩写格式和样式值格式;确定所述源样式数据中的组件数据,所述组件数据包括所述目标应用程序对应的各组件的组件名称和组件样式数据;获取第二黑名单,若所述各组件的组件名称中存在包含在所述第二黑名单中的组件名称,则将包含在所述第二黑名单中的组件名称对应的组件样式数据,确定为第三样式数据;其中,所述第二黑名单中包含至少一个组件名称,所述第二黑名单中的组件名称对应的组件样式类名为至少两个组件的组件样式类名。3.根据权利要求2所述的方法,其特征在于,所述根据所述待转换样式数据的样式类型对所述待转换样式数据进行样式转换,包括:对于所述第一样式数据,基于所述程序源代码,得到所述源格式图片对应的抽象语法树,根据该抽象语法树,获取所述源格式图片的图片参数值;基于所述图片参数值,将所述源格式图片转换为第二指定图片格式的目标格式图片;对于所述第二样式数据,确定所述第二样式数据中的每一样式数据的样式类名,对于所述第二样式数据中的每一样式数据,根据该样式数据的样式类名和第一映射关系,确定该样式数据的样式转换策略,并根据该样式转换策略对该样式数据进行转换,得到转换后的样式数据;其中,所述第一映射关系包括至少一种样式类名与对应的样式转换策略之间的对应关系;对于所述第三样式数据,在组件名称包含在所述第二黑名单中的每个组件的组件参数中,添加该组件的组件样式类名的隔离父层,将每个组件的组件样式类名和隔离父层作为该组件的新组件样式类名。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:在编译过程中,获取所述程序源代码中包含的各标签的标签名;根据所述各标签的标签名,确定所述各标签中hippy框架不支持的待转换标签;对于每个所述待转换标签,若该待转换标签属于uniapp框架的内置组件,则将该待转
换标签转换为基于hippy框架的自定义组件中的标签,其中,所述自定义组件在所述目标应用程序在app平台运行时进行注册;对于每个所述待转换标签,若该待转换标签不属于uniapp框架的内置组件,则将该待转换标签替换为hippy框架中与该标签相对应的标签。5.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:在编译过程中,获取所述程序源代码中包含的各标签的属性信息;对于任一所述标签,若该标签的属性信息包含指定格式的埋点数据,则根据所述埋点数据为该标签添加对应的目标事件和目标属性,以在该标签被创建时通过触发所述目标事件,在所述目标事件中通过调用所述目标属性获得所述埋点数据对应的要采集的目标数据。6.根据权利要求5所述的方法,其特征在于,所述目标事件为布局layout事件,所述目标属性为带有键值的ref属性,所述ref属性作为所述layout事件的调用参数;其中,所述ref属性的键值是根据所述埋点数据生成的唯一标识值。7.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:在编译过程中,通过读取所述程序源代码对应的组件文件,得到所述程序源代码对应的各组件的组件名称和组件所在的路径,以在所述目标应用程序在app平台运行时,执行以下操作:对于每个组件,根据该组件所在的路径获取到该组件的组件内容;基于各组件的组件名称和组件内容进行组件的自动注册。8.根据权利要求1至3中任一项所述的方法,其特征在于,在编译过程中,所述方法还包括:对所述程序源代码对应的应用层组件添加组件入口层,以在所述目标应用程序在app平台运行时,通过该组件入口层调用对应的应用层组件;若所述程序源代码中包含具有条件编译的代码,若该代码的编译条件与app平台不匹配,则在编译时过滤该代码。9.根据权利要求1至3中任一项所述的方法,其特征在于,在得到转换后的样式数据之后,所述方法还包括:将所述程序源代码对应的目标样式文件转换为对应的脚本js对象,并将所述js对象打包到所述目标代码文件中;其中,所述目标样式文件包括:所述源样式数据中除所述待转换样式数据之外的样式数据、以及所述待转换样式数据对应的转换后的样式数据。10.一种应用程序的运行方法,其特征在于,所述方法包括:响应于针对目标应用程序的程序启动操作,对所述目标应用程序进行初始化,所述目标应用程序的程序包是采用权利要求1至9中任一项所述的方法生成的;通过所述目...
【专利技术属性】
技术研发人员:陈肇龙,徐凯鹏,许清华,张梁,梁宇轩,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。