上周发了一篇 《鸿蒙终于不套壳了?纯血 HarmonyOS NEXT 行将到来》的相关资讯,没想到大家「讨(fa)论(xie)」的热情很高,莫名蹭了一波流量,尽管流量对我来说也没什么用,但几百条谈论也收成了一些比较有意思的问题,随着谈论区「沦亡」,这儿统一挑出来汇总下。

⚠️PS,不卖课不推广不站队,只考虑技能视点,假如有更进一步的材料或许问题就更好了,由于现在大部分人都在观望和评估

首要讨论的条件是依据 「HarmonyOS NEXT 版本,去掉了传统的 AOSP 代码,仅支撑鸿蒙内核和鸿蒙体系的运用」的场景,已然是剥离,那就不是「不支撑 apk 后缀装置」的场景了,那么适配的作业量也就随之而来。

现在现已有一些企业在进行适配或许现已适配的,适配的方法根本都是依据 skia 的场景去完成,由于 HarmonyOS NEXT 的烘托底层仍是 skia ,所以做一些兼容转化,游戏不用说,依据 OpenGL 和 unity 兼容难度相对不高,主要仍是集中于 App 怎么兼容的适配等问题上。

那么接下来便是一些风趣的抢手问题汇总

鸿蒙运用能装置在 Android 体系上吗?

鸿蒙现在用的是 ArkTs 和 ArkUI ,它们成了仅有指定言语和结构,依照现在的状况看,ArkUI 是无法直接用到 Android 体系,可是华为开源了别的一个项目 ArkUI-X ,ArkUI-X 扩展ArkUI 开发结构到多个 OS 渠道,所以从这个视点看,鸿蒙运用又能够运行到其他渠道

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

不负责任的说,有点相似于 compose 和 compose-multiplatform 的联系

当然,ArkUI-X 项目并不是从 0 开端,它和 Flutter 仍是有一些缘分

ArkUI-X 项目属于 OpenHarmony 管理,而在 OpenHarmony 下存有 third_party_flutter 等项目依赖,ArkUI-X 里 Flutter 应该仅仅用于窗口管理和烘托管道到 skia ,没用到 Dart 部分的 UI 结构,相似于之条件到的微信小程序 skyline 底层运用 Flutter 烘托输出场景相似。

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

尽管 ArkUI-X 让鸿蒙 App 能够运行到其他渠道,可是大家现在更多诉求是现有 App 能够持续「兼容」到鸿蒙 Next。

鸿蒙 Next 晋级会造成断代吗?会和WinPhone 相同滑铁卢吗?

的确,一旦鸿蒙开端正式不支撑 Android ,那么对开发者生态和用户必定会有直接的「冲击」,这也是鸿蒙 Next 需求面对的最大门槛。

现在我个人了解,鸿蒙的策略便是先稳住大厂,尽量让大厂能跟进「首发适配」,已知的小红书、百度、美团、京东等企业都有一定鸿蒙基础,一些团队也许是依据 KPI ,也许是依据领导要求,都提早开端了 鸿蒙 Next 的支撑,所以鸿蒙 Next 在开始生态基础上仍是比当年的 WinPhone 好一些。

例如美图从前就有在 skia 层适配鸿蒙的 《让 Flutter 在鸿蒙体系上跑起来》

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

当然,鸿蒙必定不会一上来就强制晋级,到时分正式推送更新的时分,应该会有提示框告知用户,我猜想会双线「鸿蒙 4」 和「鸿蒙 Next」 共存保护一段时刻,便是你不更新,能够持续用打补丁的鸿蒙 4 过度较长的一段时刻,过渡期和用户保护仍是需求的。

接下来是「个人屁话」时刻,用于解说别的一部分谈论问题:

从现在来看,鸿蒙 Next 是个博弈,便是华为有存量用户,也有新增用户,便是博弈企业的产品愿不愿意放弃这部分商场份额:

之前的谈论区说到的,假如网易音乐适配了,那 QQ 音乐是否会跟进?这是一个看谁愿意卷的问题。

现在华为商场份额大约 9.2%,鸿蒙现阶段还只在国内,Counterpoint 披露的数据显示,2023 年 Q1,在中国商场,鸿蒙操作体系的市占率为 8% 。。。。。而 2023 年第一季度,在中国商场,安卓体系占据 72% 商场份额,iOS为 20%,所以这是一个存量商场和新增商场的博弈

华为手机销量从 2.4 亿台(2019年)达到顶峰后,跌至3,000万台(2022年),而 2023 Q1 开端对比 2022 逆势增长41%,所以 2023 年给的方针手机出货量是 4000 万部。

这部分问题在于,它说多不多,可是你说它少,又不能完全忽视,毕竟有存量有新增。

扯远了,这个论题终究说一下两个忧虑的问题:

  • 晋级到 Next 之后,运用数据是否支撑晋级兼容,在整个体系结构都剥离重组的状况下,原先运用的本地数据是否支撑兼容或许迁移,这是一个非常影响晋级指标的要素,或许说晋级后丢掉率多高
  • App 后续支撑也是一个风向标,运用厂商在鸿蒙上「首发」App 之后,是否能和 Android/iOS 渠道相同及时迭代跟进,仍是「又不是不能用」的保护躺平?

鸿蒙为什么能够经过 OTA 晋级剥离 AOSP?怎么兼容高通芯片的机器?

这是谈论区一个抢手讨观点之一,首要大家或许会觉得,自己怎么更新自己的内核?看谈论区有人的说到的便是「一个人怎么举起自己来」。

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

这儿我也不知道鸿蒙更新的详细路线,依据我的了解和谈论区的内容,这儿做一些总结:

  • 首要 AOSP 是依据 Linux 内核开发,也便是 AOSP 尽管有 Linux 内核,可是它是以特别方法存在 AOSP 里,由于一些前史 GPL 传染性协议问题,AOSP 不是一个 GUN Linux发行版,所以 AOSP 和 Linux 内核能够分隔处理。
  • 相似于 OpenHarmony 运用 LiteOS 内核,HarmonyOS 这层壳能够在 LiteOS 与 AOSP 直接切换,「非常不谨慎」的比喻:「Flutter 能够经过晋级把底层烘托从 skia 更新到 Impeller」,这次 Harmony Next 说到的应该是替换为 “鸿蒙内核”与“华为方舟图形引擎”。
  • 相似 Android 的 bootloader 是支撑 A/B 更新,可用于引导和传递需求加载对应内核:source.android.com/devices/tec…

以上这个主要是从技能层面介绍「一个人怎么举起自己来」的完成,仅作为猜想,纷歧定是鸿蒙的路子

别的,华为现存高通芯片和麒麟芯片的机器,这些机器怎么经过 OTA 晋级支撑到 Harmony Next ?麒麟不用说,高通怎么能够直接说晋级兼容?

这个就要说到本来 AOSP 里边的 HAL(Hardware Abstraction Layer) 层的作用了,例如在 Android 8.0之后,framework 与 hal 进行了解耦, framework 存在于 system.img,hal 存在于 vendor.img,进行版本晋级时,分为两次晋级。

SoC 厂商的兼容,能够经过适配 hal, 将修改打包到 vendor.img, 生成OTA 晋级包,推送到手机进行 OTA 晋级(framework产生改变,hal 层产生改变) 。

详细能够参阅: m.elecfans.com/article/202…

这儿有个关键词,SoC 厂商的兼容,也便是到时分或许会是 mate40系列(麒麟)更早能够更新到 next,mate50 系列(高通)会相对晚一些。

剥离后的鸿蒙OS怎么样?和本来 Android 还像吗?开发方法怎么?

这个问题大家仍是比较关心,用谈论区一位网友的总结便是:

ArkUI这玩意很多运用了napi, 逻辑几乎都封装在c++写的framework里,说个笑话: 用他们的弹框组件改个圆角值都改不了,由于底层写死了。

framework很多借鉴了Android(看ability发动源码能够很好复习activity发动的八股文) , 权限和组件封装又和iOS靠齐,能够说非常合适跨渠道开发踩坑。”

所以从 java 层面 Android framework 等的代码现已不见了,Harmony Next 的 framework 根本封装在 c++ 层,与渠道调用多数走 ffi 调用。

是不是有一种了解的滋味?嗯,是 Flutter 的滋味。

开发体会上相似 Flutter/Compose 项目,假如硬要说,或许会是像是 SwiftUl 和 Compose 的优点缝合?主要是声明式 UI开发,然后链式写法和组件命名关于客户端开发来说应该会很有了解感。

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

开发构建上,鸿蒙 Next 运用的 ArkTS 相似 Dart 构建形式,都是 AOT ,ArkTS 经过 ArkCompiler 构建并优化成机器码:

ArkCompiler 运用 ArkTS 的静态类型信息,进行类型推导并生成目标描绘和内联缓存,加速运行时对字节码的解说执行;AOT(Ahead-of-Time)Compiler 运用静态类型信息直接将字节码编译生成优化机器码……

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

之所以提一嘴这个编译,是由于有如下图相似的谈论,质疑 ArkTS 是一种网页运用的,所以也就当纯做一个回应,尽管叫 TS,可是其实它并不能「直接」开发 Web。

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

顺带提一句,华为这次仍是「明确」指出了,ArkTS 是在 TypeScript(简称TS)的基础上进行自研的开发言语,便是不知道这个到了自媒体宣传上会怎么解读了。

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

接着不得不提一句的便是 「三棵树」,Flutter 开发应该关于这个很了解,官方的解说是:

ArkUI3.1 经过编译期生成特定函数的方法将 UI 组件更新和数据改变进行细粒度地绑定,完成 UI 更新 Diff 算法从 COMPONENT 和 ELEMENT 树形结构对比晋级为单节点 NODE的函数式更新。

从这儿看,如图所示仍是了解的滋味 ,其实 「ArkUI 对 Flutter 开发者的确很友爱」

终究,ArkUI 还供给了一些「高级UI组件扩展才能」大约便是:

  • XComponent 组件的 C++ 自制作引擎接入(比如游戏引擎)才能
  • 依据Web组件的 HTML5/Web 的烘托能

主要是为了满足开发者在游戏、相机、地图、浏览器等复杂运用场景的开发诉求,降低了这类运用移植的门槛。

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

关于这部分有待后续大家的体会报告了,能够了解此刻大约便是「又不是不能用」的状况。

是否会封闭侧载?

其实这个问题我也很猎奇,不过我也不确定,Harmony Next 是不是会让自己生态「对齐」 iOS ,由于这个决定很大程度会影响它以后的命运。

我这儿不负责任的猜想是很大约率会封闭侧载,先说明这个我没有任何依据,仅仅是一个猜想,由于已然都不兼容 Android ,那么作为一个全新的体系形式下,构建生态能够会由于「安全」和「合规」等考虑,依照现在「大环境」的了解,我更倾向它终究会封闭侧载。

我仅仅更倾向终究或许会封闭侧载,可是我不希望封闭侧载。

现有 App 怎么兼容 Harmony Next ?

纯原生运用(Java/Kotlin + XML)形式直接兼容的或许性,或许说兼容方案现在我是看不到直接兼容的或许性,由于没了 JVM ,没了AOSP ,非响应式布局开发,直接兼容的本钱不低于从头再来。

跨渠道结构支撑上:

  • Cordova/Ionic 等本身只需求 WebView 和 JSBridge 等相关支撑,兼容反而不难,便是插件部分需求额定弥补,本钱相对较低
  • React Native / Weex 部分作业量偏重,前端标报到原生控件映射的适配,还有样式兼容会是一个「体力活」,插件生态也是一个问题
  • Flutter 由于前面说到过的种种原因,纯 Flutter 兼容 Harmony Next 本钱不会很高,可是未来或许会产生「分叉」,由于现在 Flutter 官方现已开端逐步选用自研 Impeller 代替 skia 烘托,这后续或许会和 Harmony Next 呈现分叉,别的插件生态兼容会是一个特别头痛的问题
  • uni-app/uts ,这个我不负责的猜想后边它自己就会直接适配了,一点点不慌。

从谈论区和私信更新的音讯看,华为内部也主导适配现在的主流跨渠道方案,主动供给反向适配支撑,估计后边就会有相似 Flutter for harmony 的社区支撑,现在华为适配的跨渠道结构包括有:Flutter、ReactNative、Weex、Taro、uni-app、electron、qt 等等,都是依据 API10 (即 harmonyos next & open harmony 4 的 api),后续应该者会开源出来交给社区共建。

HDC 现场的 NEXT 展现机也有相关案例:

  • React Native 的华为商城展现
  • Weex 的航旅纵横展现
  • 京东关于 Taro 展现
  • 开鸿智谷 futter 展现
  • 才智生活 ArkUI-X 在 IOS 和安卓的跨渠道展现
  • cocos 和 Unity 适配展现

当然,就像前面说到了,中心的兼容难点,仍是在于 Plugin 生态对接 native 的适配作业,这部分没办法一触而就,需求共建时刻。

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

原生 xml + java/kotlin 的怎么是好?

GSYVideoPlayer 有适配鸿蒙方案吗?

没有

终究

好了,现在主要的问题就这些,假如有什么问题欢迎大家「心平气和」地讨论,假如有什么有用的新论题点,到时分会弥补上来。

我不是「专业」的,我仅仅练习时长两年半的「小黑子」。