华为方舟编译器深度解读 颠覆安卓体验就靠它( 四 )

方舟编译器则解决了静态编译动态语义的两点最大难题 , 设计数据模型和运行时候的高效获取动态信息问题 , 前者大规模研究了java动态语句 , 进行数据建模 , 在面对后者问题时 , 华为单独设计了一套具有核心专利的动态语义匹配机制 。

这样在克服这两点困难后 , 就不再需要虚拟机了 , 笔者认为 , 其实安卓系统卡顿的一切缘由 , 都是虚拟机在作祟 。 此外 , 笔者也大胆猜测 , 方舟编译器或许就在为鸿蒙系统做准备 。

干掉混合语言互相调用带来的JNI开销

这点其实同样和java语言有关系 , 目前大部分常用的软件都是Java和C/C++等语言混合编写而成 , 为了能够让APP可以正常运行 , 就需要互通有无 , 这样一个“通用”接口就出现了——JNI , 手机在调动APP时候 , 需要分配一部分资源给到JNI做调度 , 这样会大幅度占据硬件资源 , 而方舟编译器其实统一了各种语言 , 实现统一中间IR , 为此 , 华为对IR已经进行了超过五年的研究 , 并研发了一套专利 , 这样使用不同代码 , 可以在相应开发环境中 , 统一成一套可以直接执行的机器代码 。

推荐阅读