安卓开发转做鸿蒙后-开篇

9,689 阅读3分钟

一、为什么转做鸿蒙

本人从事安卓开发已近十年,大部分时间还是在不停的需求迭代,或者一遍遍优化各种轮子,自己的职业生涯已经进入了瓶颈期,同时现有工作也很难让自己产生成就感。正好年初有机会转入鸿蒙开发团队,虽然清楚肯定少不了加班,最终也不一定会有预期中的产出,还是希望自己能有一些新东西的刺激和积累。

二、App鸿蒙化的回顾

本人所在公司差不多算是中厂,C端App日活大概有个几百万,各部门团队大概有30人+,历时半年多的时间,差不多完成了全部功能70%左右。前期主要是个人自学及各种培训、前期调研、App基础库的排期、业务排期、开发上架等几个环节。

1、基础库

  • 网络库

  • 图片库

  • 埋点库

  • 路由库

  • 公共组件

  • 崩溃监控

  • 打包构建

2、业务排期

  • 业务拆分优先级

  • 分期迭代开发测试

三、跟安卓相比的差异性

1、ArkUI和Android布局

  • Android控件习惯于宽高自适应,ArkUI中部分子组件会超过容器组件区域,所以部分组件需要控制宽度

  • Android是命令式UI比较简单直接,ArkUI是声明式,需要重点关注状态管理的合理使用

  • Android列表重复相对简单,ArkUI中List懒加载和组件复用使用比较繁琐

  • Android基于Java可以通过继承抽取一些公共能力,ArkUI组件无法进行继承

2、鸿蒙开发便捷的一面

1、问题的反馈和响应比较及时,华为技术支持比较到位。

2、应用市场对性能要求和各类适配要求比较高,倒逼开发提高自己的开发能力。

3、跟安卓比提供了各种相对完善的组件,避免了开发者需要进行各种封装

  • 路由库

  • 网络库

  • 图片库

  • 扫码

  • 人脸识别

  • picker

  • 统一拖拽

  • 预加载服务

  • 应用接续

  • 智能填充

  • 意图框架

  • AI语音识别

3、鸿蒙开发不便的一面

  • ArkTS文档不够完善,没有从0到1的完整学习流程

  • ArkUI部分组件使用繁琐

  • DevEco-Studio的稳定性需要提升

  • 组件渲染性能需要提升,

四、跨平台方案

  • RN

  • Flutter

  • ArkUI-X

ArkUI-X作为鸿蒙主推的跨平台框架,主要问题是生态的建立和稳定性。所以还是要基于公司基建的完善程度和技术生态进行选择。同时由于鸿蒙的加入,适配3个OS系统的成本提高,公司为降本提效会加快跨平台技术的接入和推进。后续还是需要熟悉跨平台开发的技术。

五、知识体系(待完善)

1、ArkTS应用

1、应用程序包结构(hap、har、hsp)

2、整体架构

3、开发模型

2、ArkTs

1、基本语法

2、方舟字节码

3、容器类库

4、并发

3、ArkUI

1、基本语法

2、声明式UI描述

3、自定义组件

4、装饰器

5、状态管理

6、渲染控制

4、Stage模型

1、应用配置文件

2、应用组件

3、后台任务

4、进程模块

5、线程模型

5、性能优化

1、冷启动

2、响应时延

3、完成时延

4、滑动帧率

5、包大小