安卓开发转做鸿蒙后-开篇
一、为什么转做鸿蒙
本人从事安卓开发已近十年,大部分时间还是在不停的需求迭代,或者一遍遍优化各种轮子,自己的职业生涯已经进入了瓶颈期,同时现有工作也很难让自己产生成就感。正好年初有机会转入鸿蒙开发团队,虽然清楚肯定少不了加班,最终也不一定会有预期中的产出,还是希望自己能有一些新东西的刺激和积累。
二、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、包大小
作者:村口老王
来源:juejin.cn/post/7409877909999026217
来源:juejin.cn/post/7409877909999026217