网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
前言
鸿蒙ArkUI开发要不要学暂且不说,但它的HelloWorld我还是建议你了解一下。
从2014年大学时入坑安卓到现在,不知不觉成了奔三的人。从java到kotlin,从原生到flutter再到uni-app,再到Compose和ArkUI,我不断的被忽悠着学习。
搭建环境
我不想像别的文章那样详细地告诉你需要一台电脑,需要从官网下载DevEco Studio编辑器,需要next、next安装,还需要下载nodejs、Ohpm以及SDK。毕竟我们处于一个很卷的时代。
如果你喜欢追求最新版本,并且你已经安装好了nodejs,好吧,你被恶心到了,它对nodejs的版本有要求,所以推荐直接在设置里面安装。为什么要安装nodejs呢,因为ArkUI是基于ArkTs语言的,而ArkTs是基于ts语言的。所以不仅要安装,还要先于SDK安装。至于Ohpm,它是华为的一个依赖管理工具。此外,对于我们应用开发工程师,主要是harmonyOS,而OpenHarmony比较偏向底层。
HelloWorld
万事俱备,开始HelloWorld吧,我仍然不会告诉你怎么创建,但我会告诉你不知道的就用默认的。
比如那个Model不知道选择Stage还是FA,那就用默认推荐的Stage。本身就已经跟不上时代的步伐了,你再去了解FA这些还没学就过时的东西纯属浪费时间。再比如它下面的Enable Super Visual,其实就是一个将可视化编辑的内容转为ets文件的功能,对于喜欢拖拽控件的来说比较适合,但我总感觉没有代码写出来的准确。
好吧,项目创建出来了,是不是该运行到模拟器了呢?别急,你先来体验一把Previewer,其实如果你做过Compose开发,你不会奇怪它相比于AndroidView的xml预览它居然能响应点击等事件了。最后,新建模拟器并运行。
目录结构
ArkUI目录结构大致可以分为三部分
AppScope
主要用于存放公共的信息和资源,比如字符串、布局文件、多媒体、全局信息配置等。
配置文件采用的是json和json5,既然它抛弃了java采用ArkTs开发,其实就可以猜到会采用json配置了,我之前做过一段时间uni-app开发,所以对于这种配置也没啥新鲜感了。
entry
entry稍显复杂,ets下有两个目录分别存放Ability文件和ArkTs文件,比如默认的Index页面。resources显然是用来存放当前模块下的资源文件,经常用到调试的还可以关注下ohosTest测试文件夹,至于其它的,基本上都是些配置文件。
其它
oh_modules是项目的依赖包,存放工程依赖的源文件,它都直接标黄了,一般不用管。
根目录的其它文件基本上都是些配置文件,或者脚本。再其它没介绍到的也是基本上不用管的,有好奇心是应该的,但是把时间浪费在用不到的知识上是非常不推荐的。
Hello工程里面的几个文件
…/AppScope/app.json5
至于AppScoped中的另外几个文件具体的内容就不一一介绍了,相信你一眼就能明白,其实app.json5里面也没啥特别的,唯一一个新词语就是vendor供应商,写自己公司名称就得了。当然还有其它一些没有在hello工程里面体现的可以去文档查看。
…/entry/src/main/ets/entryability/EntryAbility.ts
它继承自UIAbility,它对应于最近任务列表中的任务。而我们以前安卓开发时,一般情况下一个应用在任务列表只会出现一个,而UIAbility可以出现多个,一个UIAbility也是对应多个页面而不是照搬Activity。
UIAbility也是一个具有生命周期的系统调度的单元,我将Hello工程的该文件代码方法顺序按生命周期执行顺序做了调整,并添加相应的注释如图。
…/entry/src/main/module.json5
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
a57acb)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!