Android应用想适配鸿蒙,难吗?

您所在的位置:网站首页 适配鸿蒙的软件 Android应用想适配鸿蒙,难吗?

Android应用想适配鸿蒙,难吗?

2023-10-27 21:10| 来源: 网络整理| 查看: 265

在 7 月初的 GMTC 大会上,我听了京东 App 架构负责人狄彩林的分享,深入了解了下目前京东 App 鸿蒙版的开发历程。这篇文章,不谈具体的技术接入细节(细节文末我会给出一篇文章,里面有代码),只谈整体的思路,希望能对你有帮助。

1、官网上明明白白写着,HarmonyOS 支持 Java 和 JavaScript 两种开发语言。但是(有转折),Java UI 框架只有大型系统支持(手机、电视之类),而 JS UI 框架覆盖平台更广,轻量系统、小型系统、标准系统、大型系统都支持。

2、也就说说,官方更推荐你用 JS,Java 呢,只是一种过渡方案,毕竟 Android 应用的底子是 Java。

3、就当从手机看,鸿蒙系统有两个重要特性,一个是 FA 可以在多个设备间无缝流转,一个是桌面卡片,用户上画 App 图标就能生成一个卡片。设备流转你可以看看下面这个图。

4、FA 的全称是 Feature Ability,Ability 是鸿蒙的概念,它类似 Android 的 Activity,iOS 的 UIViewController。简单说,鸿蒙的应用程序就是由很多个 Ability 组成的,UI 界面的 Ability 就叫 FA。

5、要让 App 在鸿蒙上运行,理论上有三条路,第一条是借助 Flutter 之类的跨端框架,第二种是基于鸿蒙的 API 重新开发一个 App,第三种是混合包开发模式,即在原有 Android 应用的基础上加入鸿蒙的特性。

6、Flutter 目前还不支持鸿蒙,第一条路没戏。第二条路,从商业视角看,ROI 划不来。用脚丫子想,也知道只有第三条路可以走,这也是华为预设好的一条路,当然,正是因为有了这条路的存在,所以才有了前段时间鸿蒙是不是套壳 Android 的争论。

7、那个争论,到现在,基本平息了,我当时还写了篇文章,后来没发。为啥呢,因为是口水战,说不清楚。“套壳”是个很抽象、主观的带有情绪的贬义词,王成录的官方说法是鸿蒙使用了 AOSP 的代码,大家之所以争议,是因为业界对开源的认知不一样。

8、混合模式下,鸿蒙模块和 Android 模块是怎么融合的呢?从原理上看,鸿蒙能调用 Android 是因为在 Framework 层有一个 PlatformBridge 模块来桥接 Android。而在 Android 侧可以拉起鸿蒙组件是通过编译生成一个 shell.apk,这样安装时,就可以注册相应的鸿蒙组件。

9、你感兴趣的话,还可以看看最近 Windows 11 说他支持 Android 应用了,他们的方案和鸿蒙完全不一样。首先,Windows 和 Android 的指令集就不一样,一个是 x86,一个是 ARM。其次,Windows 支持 Android,不像鸿蒙这样,需要混血。

10、具体怎么在代码层面落地,你可以看看京东的实践,他们写的挺细的。包括 Android 工程改造、配置鸿蒙工程、Android- 鸿蒙互调用。

11、GMTC 京东的同学分享了下他们感受,整体看,Android 的同学上手鸿蒙开发难度不大(基于 Java 的)。视图层面,View 相关的 API、功能的 API 大部分和 Android 类似,比如页面生命周期、权限、线程间消息机制。当然,也有一些缺陷,比如不支持本地虚拟机调试、布局文件不支持实时预览等。

12、因为是混合应用,所以基本思路就是把部分必要的模块给鸿蒙化,以让这些模块充分利用鸿蒙的特性。比如京东,他们主要就做了三个特性,一个是直播间的流转,一个是商品详情页的近场分享,一个是搜索卡片。

13、注意,前面说的都是手机层面 Android 应用的鸿蒙化。鸿蒙的发力点还是 IoT,你有兴趣的话,还是可以去学习 JS,看看 IoT 上的应用开发。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3