下载并编译OpenHarmony 2.0-canary后的研究结果

OpenHarmony 2.0-canary与手机上运行Harmony OS不同,canary是全新的系统,与AOSP没有任何关系。

应该可以肯定,canary是个完整的系统,目前已经支持运行于Hi3516DV300开发板,

Hi3516DV300开发板的配置:DDR3 1GB、EMMC 8GB,Soc搭载 双核Cortex-A7 MP2 @900MHz处理器、高性能NNIE引擎,1.0Tops算力

基本上是一个iphone4手机的配置。

可以接入touchscreen,并且已经自带如下hap应用可以运行:

./out/ohos-arm-release/packages/phone/system/app/Shopping_Demo.hap

./out/ohos-arm-release/packages/phone/system/app/Ecg_Demo.hap

./out/ohos-arm-release/packages/phone/system/app/Gallery_Demo.hap

./out/ohos-arm-release/packages/phone/system/app/SystemUI-NavigationBar.hap

./out/ohos-arm-release/packages/phone/system/app/Settings.hap

./out/ohos-arm-release/packages/phone/system/app/SystemUI-StatusBar.hap

./out/ohos-arm-release/packages/phone/system/app/Clock_Demo.hap

./out/ohos-arm-release/packages/phone/system/app/Flashlight_Demo.hap

./out/ohos-arm-release/packages/phone/system/app/Launcher_Recents.hap

./out/ohos-arm-release/packages/phone/system/app/Launcher.hap

./out/ohos-arm-release/packages/phone/system/app/Calc_Demo.hap

./out/ohos-arm-release/packages/phone/system/app/Airquality_Demo.hap

canary中有窗口、UI、应用程序、多媒体服务,毫无疑问这个系统完全可以替代android,运行在手机上,不过需要手机厂商基于hdf开发自己的硬件驱动,然后重新编译。

canary应用开发只支持js,可以使用开发工具deveco开发,这个工具支持js和java(java是用来开发Harmony OS上的应用)。

内核上有linux-4.19 liteos_a liteos_m,编译时指定–product-name会自动选用对应config.json中配置的kernel_type,3516开发板用的liteos_a。

也就是说可以不用linux内核,也能直接编译对应的系统,烧写在手机上运行。

对于liteos_a,非kernel人员,查看drivers,只有一个char,推测为微内核,看名字也是个微内核(lite):

HP-EliteDesk-800-G3-SFF:~/basecode/HarmonyOS/code-2.0-canary/kernel/liteos_a/drivers$ ls

char

对于目前手机上运行的Harmony OS:

可以简单理解为Harmony OS=OpenHarmony 2.0-canary+鸿蒙framwork+AOSP

  1. 为什么有AOSP:

这个已经很明确了,目前无法脱离android生态,所以必须要有AOSP,否则Android App无法运行,api接口找不到。

  1. 鸿蒙framwork是什么:

这部分华为没有公布,但是根据目前开发工具deveco下载的java SDK,其中的api接口与android完全不同,注意根本不是改包名这么简单,

刚才说了canary只支持js,因此这里推测鸿蒙是有一套java的framework用以支持java开发,当然这部分代码没有开源,只能猜测,也可能有更好的技术方案。

  1. 既然canary与AOSP完全无关,Android App是如何兼容的:

这部分比较复杂,有以下两点,第一点是推测,第二点应该是确定的:

1)Java API部分:

因为要兼容Android App,首先要保证API接口一致,然而这里面又有一套鸿蒙自己的一套java sdk,因此可以推测存在如下转换调用:

Android App API->鸿蒙java sdk api->鸿蒙framwork->canary native层

纯属推测,可能有更高级的办法。

2)Native部分:

Android App除了java部分,还有Native的直接调用,包括bin程序及jni调用的so等,这块在canary中是存在的,可以确认是用以兼容Android App Native部分的调用的:

HP-EliteDesk-800-G3-SFF:~/basecode/HarmonyOS/code-2.0-canary/prebuilts/aosp_prebuilt_libs$ ls

asdk_libs host_tools LICENSE minisys update_prebuilts.sh

里面有./asdk_libs/ndk/sysroot/usr/include/linux/android/等等,足以说明这部分native是用来适配Android App Native的。

  1. 生态:

目前支持js及java两种开发:

在canary上只支持js开发。

在HarmonyOS上支持java开发,即使用android sdk的app,或是使用鸿蒙java sdk开发的hap/app都能运行在手机上。当然要想完全脱离android,生态还是需要使用鸿蒙java sdk开发。

在应用生态上,华为可能是有以下两个两种开发方式

对于轻量级的系统上,用js开发。

对于手机平板或是电视上,支持js及java开发。

这样推测下来,将还会有代码公布,JAVA SDK的这部分代码,或是猜想的鸿蒙framework是要公布的,否则无法定制。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值