我的鸿蒙 2.0 App 到底是什么

我的鸿蒙 2.0 App 到底是什么

最近因为个人问题一直又烦又颓,知乎一直没什么动态,连 OpenPal3 都几个月没更新了。但是从昨晚开始好几个小号想过来打我的脸,原因是我一年之前回答了这个问题:

为什么很多人不相信鸿蒙系统是真的?www.zhihu.com图标


姑且不说你们搞清楚我讽刺的点在哪没有,请问你们可以拿现在的剑去圆去年前年吹的 b 吗?作为一个程序员,始终对华为终端在软件上的吹逼行为十分讨厌。而且花粉们似乎已经接受了这样的现实,还觉得“大嘴吹过的皮全都实现了”。这种空手套沸腾的行为,不是华为还真不敢干。论营销,你以为华为在负一层,其实他在第五层。这些人搞得我心态爆炸真的烦,我就想看看鸿蒙 2.0 到底是个什么东西。

一开始大家说华为电视上的鸿蒙 1.0 是安卓套壳,很多人纷纷跳出来说“adb 说明不了问题”,颇有见到胳膊就想到大腿的意味;后来又改了话术,说“按照路线图,1.0 就是安卓套壳。怎么了?”。那按照路线图,请问 2.0 就应该不是安卓套壳吧?


9 月 15 日 插播更新:

https://zhuanlan.zhihu.com/p/243981657zhuanlan.zhihu.com图标

DevEco Studio

所以我去下了 DevEco Studio。需要注意的是,DevEco Studio 并不是新做的,华为之前就有这个东西,是开发安卓的:

文档中心developer.huawei.com


DevEco 1.0 是用来开发安卓的

我一开始就找错了,这个是1.0。2.0 把安卓的支持“删掉”了,换成了鸿蒙。当然这都没什么问题,用 IDEA 二次开发也没什么问题,只是预防海军把 DevEco 拿来作为鸿蒙早就存在的论据。

工程方面现在支持新建电视、智能手表和半智能手表(个人归类,不喜你对)。电视和智能手表支持 Java 和 Javascript,半智能手表只支持 Javascript。比较关心电视的 Java 实现,所以新建了这个。

package com.example.myapplication;

import com.example.myapplication.slice.MainAbilitySlice;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;

public class MainAbility extends Ability {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setMainRoute(MainAbilitySlice.class.getName());
    }
}

Emmmm.... 虽然我不做安卓,但是很久以前学过一点。这好像跟 Activity 有点像?不过也没关系,毕竟(做)好的 API 设计拿来用用,也不是不行。

下面我就想去看看 Ability 的代码。SDK 里面包含的全是 Stub,我去

OpenHarmony: OpenHarmony是开放原子开源基金会(OpenAtom Foundation)旗下开源项目,定位是一款面向全场景的开源分布式操作系统,第一个版本支持128K-128M设备上运行。openharmony.gitee.com图标

上也没找到 aafwk 的源代码。只找到了 aafwk-lite,但这个明显不是电视上用的版本。各位海军请不要再随便丢一个链接过来说“鸿蒙已经开源了链接在这你还不服吗”,你们自己有去看过吗?还烦请哪位大佬找到了 aafwk 的源码的话留个言。

模拟器运行

找不到就算了,DevEco 还有一个 HVD 管理器,我想这既然模拟器都有,里面运行时肯定是全的吧?

不过这个 Manager 还需要下一些包才能运行,下载一直磕磕绊绊的出问题。这也导致我现在才把模拟器抱起来。

运行模拟器需要登录华为账号?也罢毕竟我以前用过荣耀手机,华为账号还是有的。然后实名注册了一波回来发现,模拟器运行每次限时 1 小时?大概各位也能猜到了,这模拟器其实是跑在服务器上的,界面再串流串回来!

这就堵住了我想看看模拟器里面内容的想法。也行,我先把 Hello World 跑起来吧。跑了 HelloWorld 起来之后,很快就会有 log 打出来。这个也有别人发过了,各位估计也见过:

嗯?

如果你随便下个断点,还能看到更具体的:

嗯?×2

点开 .shadow class,还可以看到:

可能有点看不清,我贴过来:

嗯?×3

dalvik 出现。以及,编译生成的 hap 是个 zip 吗?

嗯?×4

既有 dex 又有 apk,我们把 apk 再解一下,看看究竟是不是大白腿:

嗯?×5

半智能手表

上面也提到过,半智能手表只能使用 Javascript 开发,这是与电视和智能手表不同的地方。其实它们还有另一个不同之处,就是电视和智能手表支持由在服务器上串流调试,但是半智能手表不行。而且它连本地的模拟器(Emulator)都没有,只有一个用 Node 做的 Simulator:

启动 Simulator 的防火墙弹窗
本地 Node.js 做的的 Simulator

华为目前开源出来的代码,都是 Lite 版本,是基于它 2016 年就开源了的 LiteOS 做的。所以有理由相信,现在只有半智能手表会用 LiteOS 版本的鸿蒙。而且现在连完整的模拟器都没有,只能用 nodejs 顶一下。

结语

所以我觉得到这里可以大胆地做出结论了:

电视和智能手表上,完全就是安卓套壳;只有半智能手表,是华为在它 16 年开源出来的 LiteOS 的基础上做出来的。

以华为在嵌入式领域的积累,花一年多做成 LiteOS + 半智能手表这样的进度是合理的。这个答案 @世界树的影子

如何看待 9 月 10 日华为发布的鸿蒙 OS 2.0 系统,应用前景如何?www.zhihu.com图标

里有一段话,我想摘录在这里:

华为本来有两个选择:
1. 我们被美国制裁了,我们别无他法,我们决心从现在开始,用3到5年的时间,自主研发我们的一套体系,摆脱对美依赖;
2. 我们被美国制裁了,但是我们早就做好了准备,已经掏空安卓,随时能拿出鸿蒙来替代,引起一片沸腾;然后顶着沸腾、质疑和嘲讽暗戳戳的加班加点3到5年,终于拿出东西来。
我始终搞不懂的是,为什么华为选择了方案2,因为华为高管喜欢沸腾?
两种选择反映的其实是一家公司的做事态度,反映的是它的诚信度和责任感。


作者:世界树的影子
链接:zhihu.com/question/4204
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

说实话,要是我的老板把牛逼吹出去了(难听点说就是造假),但我现在的代码做不到,我会脸上滚烫,生怕谁过来问我说“这个 Feature 是还有问题吗?这里是还有 Bug 吗?”。不知道华为的程序员会不会如此。如果也是这样,我能做的也只是摸摸他们受伤的心灵了。

海军还要如何吹?

我也想了一下,海军还能怎么吹呢?

  • 不管,就是打你的脸了!鸿蒙真的存在!
  • 看到 apk 就想到安卓?鸿蒙兼容安卓,这不是很正常吗?
  • 你知道做操作系统多难吗?不用一些开源的东西,你能做出来?
  • 按照路线图,鸿蒙 2.0 就是这个样子,3.0 明年见。
  • 我只能说鸿蒙是中国的希望

当然,具体鸿蒙是什么里子他们是不会管的,华为是不是吹牛逼他们也不会管的。要是华为不吹了,他们大概反而会失落吧。


P.S 其实我很少在知乎上输出个人情感,这篇文章属于非典型个例。

编辑于 09-15

文章被以下专栏收录