上篇文章说,鸿蒙应用开发和安卓应用开发非常像,那么你是不是有个想法,出个一键转码工具,直接给你转成鸿蒙的,我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、安卓的Handl

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

被折叠的 条评论
为什么被折叠?



