安卓应用移植鸿蒙(一)——先做个梳理

本文介绍了安卓应用迁移到鸿蒙系统的基本步骤,包括利用华为开发的转码工具进行初步转换,以及手动移植的策略。纯Java代码和已有鸿蒙原生版本的库可以直接使用,部分安卓特有功能如SharedPreferences和Handler需要替换为鸿蒙的Preferences和EventHandler。遇到鸿蒙尚未提供替代方案的功能,如多渠道打包和Kotlin协程,开发者需要自行处理。文章还提到了资源移植的挑战,因安卓XML与鸿蒙JSON的不同,可能需要手动转换。华为提供了官方文档供开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上篇文章说,鸿蒙应用开发和安卓应用开发非常像,那么你是不是有个想法,出个一键转码工具,直接给你转成鸿蒙的,我tm真是天才!

这个问题我咨询过华为的内部人士,确实有这样的工具,正在开发,预计2021年底能随着DevEco一起上线,但是泼个冷水,我觉得它只能简单转码,不能做到完全转码,因为安卓很多功能和接口鸿蒙都没有,现在的鸿蒙应用开发,和2011年安卓开发的市场资源是非常像的。

所以如果我们自己去移植自己的安卓应用到鸿蒙,应该怎么弄?先来做个梳理:

1)与安卓无关的代码

纯java代码,可以直接使用,比如Google的Gson,笔者验证过Gson2.85版本,okhttp4.91版本,都是可用的。多说一句okhttp3,里面有个Platform文件,封装了一些安卓平台的用法,猜测可能是对安卓平台的socket进行了一层筛选。

2)与安卓有关,但是有鸿蒙原生版本的应用

这些可以直接用,笔者验证的常用的Glide库是可以直接,lottie、ijkPlayer这些,现在有的华为官方的鸿蒙第三方库(猜测华为鸿蒙有个专门的团队在做这事,一些库我还看到了润和移植开发的)

所有鸿蒙原生第三方库完整的库链接:# Harmony-最新最全鸿蒙常用开源库总结

3)上述的两种都不存在

只能依靠自己移植了,这些库一部分是和安卓相关,还有一部分是纯Java写的,那么理论上,只要替代安卓相关部分为鸿蒙的组件即可,比如ViewModel,LiveData这些,举两个常用的组件例子:

        1、安卓的SharedPreferences,鸿蒙里替代的叫Preferences,轻量级存储

        2、安卓的Handler,鸿蒙里替代的叫EventHanlder

4)有些鸿蒙目前并没有替代方案

比如多渠道的Flavour打包,官方回复不支持,Kotlin和协程,官方回复目前也不支持!

先梳理到这里,下篇文章说说,怎么移植Resource的资源带鸿蒙里,因为安卓是xml写的,鸿蒙是json写的,如果不能批量移植,会写死人

给两个华为的官方开发这文档地址:

1.鸿蒙的组件介绍和简单示例

2.鸿蒙的api参考在线文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值