一种在Android系统中运行OpenHarmony应用的方法技术方案

技术编号:35309295 阅读:42 留言:0更新日期:2022-10-22 13:00
本发明专利技术提供了一种在Android系统中运行OpenHarmony应用的方法,步骤包括:移植OpenHarmony的JSUI框架和包管理子系统到安卓系统,将ShellAPK存储至安卓设备;主机端HDC工具调用安卓端HDCD守护进程基于bm指令安装HAP;根据规则生成HAP和ShellAPK的映射关系将映射关系持久化;以供选择对应ShellAPK并安装运行ShellAPK,提供安卓的上下文环境;找到OpenHarmony应用的程序包名及路径,为加载JS文件做准备;加载展示HAP的内容;使用ace.so将ACE视图承载于AndroidView上。籍此将OpenHarmony应用在安卓系统上运行。OpenHarmony应用在安卓系统上运行。OpenHarmony应用在安卓系统上运行。

【技术实现步骤摘要】
一种在Android系统中运行Open Harmony应用的方法


[0001]本专利技术涉及Android系统应用技术,尤其涉及在Android系统中运行Open Harmony应用的方法。

技术介绍

[0002]Open Harmony 是由开放原子开源基金会孵化及运营的开源项目,由开放原子开源基金会 Open Harmony 项目群工作委员会负责运作。Harmony OS是华为基于开源项目Open Harmony开发的面向多种全场景智能设备的商用版本。
[0003]目前Harmony应用可以运行在Android系统上,但Open Harmony应用却不能运行在Android系统上,其中一个原因是Open Harmony应用没有自己的壳应用程序包Shell APK(桩),从而导致android无法给其提供运行环境和窗口环境。
[0004]因此如何使Open Harmony应用运行在Android系统,成为各Android系统开发商急需解决的问题。

技术实现思路

[0005]为此,本专利技术的主要目的在于提供一种在Android系统中运行Open Harmony应用的方法,以使Open Harmony应用得以在Android系统上运行。
[0006]为了实现上述目的,根据本专利技术的一个方面,提供了一种在Android系统中运行Open Harmony应用的方法,其步骤包括:步骤S100移植Open Harmony中的JS UI框架和包管理子系统到Android系统,将Shell APK存储至Android设备上;步骤S200利用主机端HDC工具通过usb协议调用Android端HDCD守护进程基于bm指令调用BundleMgrService类来安装HAP;步骤S300根据规则生成HAP和Shell APK的映射关系并将映射关系持久化;利用BundleMgrAdapterl类根据所述映射关系选择对应Shell APK并安装;步骤S400运行Shell APK,基于ACE Application提供Android的上下文环境;找到Open Harmony应用的程序包名及路径,为加载JS文件做准备;基于AbilityShellActivity提供加载展示HAP的内容;步骤S500使用ace.so将ACE视图承载于Android View上包括:在AbilityShellActivity中创建AceAbiltiy实例,在AceAbiltiy内部实例显示容器AceContainer。
[0007]在可能的优选实施方式中,步骤S100中,将Shell APK存储至Android设备上的步骤包括:通过编译脚本将Shell APK打包到系统镜像文件中,再存储至Android设备上。
[0008]在可能的优选实施方式中,步骤S300中,所述映射关系的生成步骤包括:当安装HAP时检查Shell APK的状态,若Shell APK的状态为未使用状态,则安装;若Shell APK的状态为使用状态,则根据顺序直至检测到未使用状态的Shell APK后进行安
装;安装完毕后,记录Shell APK和HAP的KV

键值对关系到系统属性中,并更新Shell APK的使用状态,以完成映射关系的生成,其中K为Shell APK的Package Name,V为HAP应用Bundle Name。
[0009]在可能的优选实施方式中,所述Shell APK使用状态更新步骤包括:以二进制编码各Shell APK的使用状态,如将1代表安装使用,0代表卸载未使用;当Shell APK被安装时,将二进制编码的使用状态以进位方式作为标识位,然后用当前使用状态的二进制编码和位运算后的状态值的二进制编码进行或运算得到最终状态;当Shell APK被卸载时,将二进制编码的使用状态以进位方式作为标识位,然后取补码,用当前使用状态的二进制编码和补码进行与运算得到最终状态;将Shell APK使用状态通过SettingsProvider进行保存。
[0010]为了实现上述目的,根据本专利技术的另一方面,还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其中所述处理器执行所述计算机程序时实现上述中任一项所述在Android系统中运行Open Harmony应用的方法的步骤。
[0011]为了实现上述目的,根据本专利技术的另一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,其中所述计算机程序被处理器执行时实现上述中任一项所述在Android系统中运行Open Harmony应用的方法的步骤。
[0012]通过本专利技术提供的该在Android系统中运行Open Harmony应用的方法,能使Open Harmony应用得以在Android系统上运行,同时在一些实施方式下,由于采用了二进制编码数值保存所有Shell APK(桩)的使用状态,并用于更新Shell APK(桩)使用状态进行位运算,因此相比使用SettingsProvider可以节约内存,同时位运算使程序速度更快。
附图说明
[0013]构成本申请的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为本专利技术的方法中移植JS UI框架到Android中的构思示意图;图2为本专利技术的方法中Harmony应用、Open Harmon应用的结构及其之间的结构关系示意图;图3为本专利技术的方法中Open Harmony应用和Shell APK(桩)映射关系逻辑示意图;图4为本专利技术的方法中PC端HDC通过USB协议对Android设备端安装HAP的逻辑示意图;图5为本专利技术的方法中根据映射关系选择并安装 Shell APK(桩)的逻辑示意图;图6为本专利技术的方法中ACE框架结构示意图;图7为本专利技术的方法中在AbilityShellActivity中创建AceAbiltiy实例,在AceAbiltiy内部实例显示容器AceContainer的逻辑结构示意图;图8为本专利技术的计算机设备的功能结构示意图。
具体实施方式
[0014]为了使本领域的技术人员能够更好的理解本专利技术的技术方案,下面将结合实施例
来对本专利技术的具体技术方案进行清楚、完整地描述,以助于本领域的技术人员进一步理解本专利技术。显然,本案所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思及相互不冲突的前提下,本申请中的实施例及实施例中的特征可以相互组合。基于本专利技术中的实施例,在本领域普通技术人员没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术的揭露及保护范围。
[0015]此外本专利技术的说明书和权利要求书及附图中的术语“第一”、“第二”、“S1”、“S2”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在Android系统中运行Open Harmony应用的方法,其特征在于步骤包括:步骤S100移植Open Harmony中的JS UI框架和包管理子系统到Android系统,将Shell APK存储至Android设备上;步骤S200利用主机端HDC工具通过usb协议调用Android端HDCD守护进程基于bm指令调用BundleMgrService类来安装HAP;步骤S300根据规则生成HAP和Shell APK的映射关系并将映射关系持久化;利用BundleMgrAdapterl类根据所述映射关系选择对应Shell APK并安装;步骤S400运行Shell APK,基于ACE Application提供Android的上下文环境;找到Open Harmony应用的程序包名及路径,为加载JS文件做准备;基于AbilityShellActivity提供加载展示HAP的内容;步骤S500使用ace.so将ACE视图承载于Android View上包括:在AbilityShellActivity中创建AceAbiltiy实例,在AceAbiltiy内部实例显示容器AceContainer。2.根据权利要求1所述的在Android系统中运行Open Harmony应用的方法,其特征在于,步骤S100中,将Shell APK存储至Android设备上的步骤包括:通过编译脚本将Shell APK打包到系统镜像文件中,再存储至Android设备上。3.根据权利要求1所述的在Android系统中运行Open Harmony应用的方法,其特...

【专利技术属性】
技术研发人员:张旭
申请(专利权)人:上海卓易科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1