前段时间,有一个很火的消息,引发了数码圈的广泛关注,就是搜狗输入法官网上架了鸿蒙版app,基于openharmony3.1平台开发的;很多数码圈的人科普说,手机上最新的鸿蒙OS3.0是基于openharmony3.0的,由于oh版本过低,所以暂时无法运行,等手机上的鸿蒙OS3.1出来后就可以运行了;那么,事实真是这样的吗?

我抱着求真务实的态度,下载了搜狗输入法鸿蒙版app,细心研究了一番;它的扩展名是hap,为了解压它,我将其扩展名改成了zip;与华为应用市场小巧玲珑的鸿蒙版app相比,这77M的体积显得很大;

接下来,我们解压它,它的根目录如下图;其中,ets目录存放的activity;libs目录存放的动态链接库;resources存放的应用资源;

接下来,我们看一下ets目录,其它目录没啥可看的,就不上图了;

我们看一下MainAbility目录,里面包含了3个文件,名字一样,带扩展名不同,其它目录的文件也都是类似的;abc和js文件都是JS代码,map文件是js代码的资源映射;

下图是MainActivity.abc文件的内容,没查看abc文件之前,我天真的以为这就是传说中的方舟编译器输出的字节码,原来是js文件换了个扩展名,这是一种纯文本格式文件;

现在,回到我们的主题,它不兼容手机鸿蒙OS的真正原因是什么?其实,手机上的鸿蒙OS并不是基于openharmony,而是实现了open harmony的API(应用编程接口),它们的app运行环境有相当大的差异,手机上的鸿蒙版app运行环境是ART(Android runtime),要在手机上运行,必须有一个apk文件(安卓应用包);解压后的目录里并没有这个文件,所以手机鸿蒙OS不管是3.1还是4.0都是无法运行搜狗输入法鸿蒙版的,连安装都不能;
感谢阅读!可能即将上市的P60系列会搭载鸿蒙OS3.1,虽然我知道一定是不兼容的,但还是希望有一天,华为能在软件领域有真正意义上的突破,让各路程序员们刮目相看!