标题: 手机版本的鸿蒙一些问题
时间: 2021-06-09发布,2021-06-09修改
『回复列表(30|隐藏机器人聊天)』
@o,https://zhuanlan.zhihu.com/p/359103680
你发的这篇文章中的这个图片已经可以说明,11楼中所说的转换应该没有办法做到。因为两者的应用程序编程接口不仅是命名上的差异,而是模块的功能本身就存在差异。
所以,把鸿蒙应用转换为安卓应用,不是在源代码中简单的查找替换就能完成的,而是需要对功能模块进行重新设计,重新编码。也就是说,要让鸿蒙应用在安卓上运行,必须进行软件工程层面上的“移植”。而这,就是一个与其他操作系统不同的独立操作系统所具有的最明显特征。
@o,https://zhuanlan.zhihu.com/p/363827562 这篇文章也在最后说出了他的结论:
目前看,应用需要重写才能兼容鸿蒙。
和上面那篇文章作者的观点类似。
这是另一段:
鸿蒙工程
回头再来看下鸿蒙工程文件,整个工程有些部分和安卓还是相似的,这对于安卓程序员来说比较友好,可以快速上手,有一些概念也可以相互对照,比如安卓的AndroidManifest.xml对应鸿蒙的config.json。
看一下项目的布局文件和源码,UI部分代码需要完全重写了,不可能兼容安卓的Layout和控件了,大部分的API都不一致了,只是有些在安卓中可以找到一个依稀的影子,但接口都是不一样的。
这说明了一个问题,如果不是以安卓兼容模式运行,现有的安卓应用要想移植到鸿蒙,工作量还是很大的,基本上需要完全重写。
我把aosp里面的Android替换成HuangDiOS,生成的apk也不能在安卓机上运行,能证明我也开发了一个新系统?
有一个简单的判断方法,如果项目在两个操作系统间的双向移植可以完全靠简单程序自动完成,不需要人类智力的参与,那么这两个操作系统可能是同一个操作系统。反之则不是,如果移植需要人类智力参与,需要重新设计,重新思考功能如何实现,那这两个操作系统的差异就足够明显,不再是同一个操作系统。
@o,HarmonyOS上的安卓兼容层就是安卓本身,这应该是毫无疑问的,华为肯定不会闲的蛋疼自己把这部分重新实现一下。
但就你目前发给我的这两篇文章来看,我认为它们证明了hap应用(或者OpenHarmony应用)与安卓的关系较远,安卓最多只是影响了hap应用开发框架的设计思路。hap的具体编程方法和安卓应用是完全不同的。
所以,现阶段的手机版HarmonyOS是什么?
基于OpenHarmony深度开发的系统?
但安卓是它的重要组成部分,而且现阶段绝大多数用户都必须日常使用它的安卓部分。
基于安卓深度开发的系统?
但是它可以运行与安卓完全不同的应用,这些应用在级别上与安卓应用等同,不属于“小程序”范畴。并且,它的系统应用可能是或者至少部分是(需要证明)由这些与安卓完全不同的应用组成的。
那它是什么?
我更愿意把它称为“OpenHarmony+安卓”操作系统,两个部分用一种有趣的方式结合在一起,并且是同等重要的。
至于 DevEco Studio 和 Android Studio 那么像,难道不是抄袭 Android Studio 这个问题?
就算是抄袭,谷歌也拿华为没办法。因为和华为一样,谷歌的 Android Studio 也是拿来的,并不是谷歌自己原创的,两者都是用开源项目 IntelliJ IDEA Community 改的。所以既然都是拿来主义,也就不用争论 DevEco Studio 和 Android Studio 到底谁抄袭谁了,它们都抄袭 IntelliJ IDEA Community 开源项目,而 IntelliJ IDEA Community 看起来对这种抄袭持欢迎态度。
我deepin电脑上安装了老虎的wine游戏助手,可以跑Windows的软件,那就说明Deepin就是Windows套壳吗?
Windows7上面安装了安卓模拟器,可以跑安卓应用,就能说Windows7是安卓套壳吗?
有人说鸿蒙可以跑安卓应用,就说明鸿蒙是安卓的皮,把我给整蒙了,后来我看到上面一段话
@希望自己长胖胖,至于wine,它是由无数工程师花费了无数时间开发出来的软件移植工具,里面包含着数不清的人类智慧。你之所以可以通过wine在macOS和Linux上启动Windows原生应用,是因为wine开发者已经帮你把移植工程做好了。这只是移植工程的前置,而不是移植工程的不存在或者自动化。
有一个简单的判断方法,如果项目在两个操作系统间的双向移植可以完全靠简单程序自动完成,不需要人类智力的参与,那么这两个操作系统可能是同一个操作系统。
而wine显然不属于这样的简单程序,它不仅极度复杂(开发和使用都很复杂),而且也无法实现自动的完美移植。无论是开发还是使用wine都需要大量的人类智慧参与,而且它也不能让macOS和Linux应用在Windows中运行(不符合“双向”)。所以,wine的存在显然不能证明macOS、Linux与Windows是同一个操作系统。
有一个简单的判断方法,如果项目在两个操作系统间的双向移植可以完全靠简单程序自动完成,不需要人类智力的参与,那么这两个操作系统可能是同一个操作系统。
该判断标准的关键词: