HarmonyOS应用开发快速上手心得荐

谈及接触到HarmonyOS应用开发,主要是因为在2020年年底接到华为一个项目为某两所985高校开发实验案例手册,一个是上层应用方向的,一个是操作系统层的。
说实话,当时只是知道HarmonyOS,而没有了解过其中任何开发技术。但是开发这两个层面自己也算很有底气去接,首先是对**新知识新技术的饥渴(特别还是国产化的)**,加上自己毕竟做过10年的开发商最怕的投诉电话应用开发armchair3年的操作系统以及底层协议栈开发。
下面谈谈我是如何学习一门新技术的吧。
作为一个开发老鸟肯定是项目驱动学习,这个已经很多年都os是这样了,从最初的vc到delphi到php、j应用宝最新版本下载2021官方ava到Android、python等等。
### 1、项目案例开发商最怕的投诉电话需求分析应用开发培训与项目移植
我这里就拿之前我之前编写的实验指导arm架构手册之一[《HarmonyOS 手机通讯录开发 实验指导手册》](https://harmonyos.51cto.com/posts/5829)这个说应用汇起吧。

**首先,在编写这个案例之前分析这个案例需求**。对于我这个老鸟来说基本不用多想,很小一个案osi七层模型例,头脑中已经有一个原型出来了,当然没有必要os是什么意思自己画原型图偶数,这里贴ost是什么意思一个最终实现的效果图。
![image.png](https://harmonyos.oss-cn-beijing.aliyuncs.com/images/202106/c88fc510867b57f86291367a21fbd6e1037b6a.png?x-oss-process=image/resize,w_655,h_442开发区搬家电话)

**然后,根据以往的项目经验来构想**,如果使用Android或者Vue实现该是怎样的几个步os骤。**armed其实Android和Vue的语法虽然不一样,其实基本思路应用开发专业也是类似的,不同技术栈的切换对比式学习非常重要**。
**这里还有点需要切记,拿到一个项目时,别着急看API和动手写代码**

经过以上的构思,我很快就**形成了一个初步的功能实现思路,并armchair且能尽开发者模式可能地多融汇一些开发常用的技术栈进来**。
(1)实现通讯录主页UI布局
疑问点:通讯录的UI布局在Harmon应用yOS中如何实现,里面涉及的UI组件Skd是否具备
(2应用开发者需要更新此应用)实现联系人列表静态数据渲染os是什么意思
(3)实现按钮点击、列表点击、长按等各种监听事件,使用日志打印模拟应用开发者业务、debug调试
(4)添加联系人详情页面,实现页面之间跳转传参
(5)通过弹出窗口来编写添加联系人页面
(6)联系人列表数据的动态刷新
(7)静态数据切换为本地持久化数据,比如是否存在sqlite,相应会对应数据的CRUD操作
(8)静态数据切换为服务端数据,http网络通信如何使arma3用?是否涉及权限控制
(9)自定义组件使用

**下面再来带着这个思路和疑问应用宝下载去网上找资料。我个人习惯优先查阅官网资料**。前期大家也别太依赖博客,毕竟博客里面的坑会一大堆,还跳不出来,讲到这希望社区别打我啊。起码我编写完成系列手册时没有翻阅博客,当然可能那个时候的相关博客也极其少吧,毕竟官网资料也很少并且还存在部分错误。
#armor## 2、阅读官方开发文档
现在华为官方文档非常强大,我觉得大家想学HarmonyOS应用开发来看我的博客都有点多余了。
我这里讲下看官方文档的技巧吧,**没必要全篇通读细读,带着项目需求去阅读**。开发首先我就是寻开发者模式找目录,看看我上面的功能需求HarmonyOS SDK是不是都支持。
阅读之后发现HarmonyOS 存在两个SDK,Java的和JS的,简单看了下入门案例就知道咋弄了,不用过于纠结其中细节了。**JS的就对比VUE和微信小程序的思路去进行即可,Java的就先类比Android的去弄,等后面具体编写代码实现功能的时候再来排坑**。
所以后面又对该项目编写了一个JS版本的通讯录开发,以及后面发现HarmonyOS 重要osi七层模型分布式开发技术,还编写了Java和JS混合开发,JS FA调用Java PA的数据的内容,这些都是在通读文档之后做了项目延申。
确认好了SDK基本都支持我要的需求之后,下面就开始实施代码编辑了
### 3、开发必备H开发区elloWoarm怎么读rld
开发为一个老鸟,我一直给学生强调HelloWorld的重要性。自行参照官网入门案例搭建开发环境,并且运行起来HelloWorld项目。官网步骤很详细,没有啥多解释的。我这里强调几个关键ospf点,**HelloWorld工程项目组织结构请arma3好好看看**,个人认为**前期最主要的应用开发培训就是要熟悉这个项目组织结构**,特别是还分JS版和Java版的,如有不清楚的请阅读官方文档对这块的讲解。
至于调试,前期只有网络版的应用开发商模拟器,并且要华为账号认证,每个小时应用会自动释放,这个清楚习惯即可,没必要osi七层模型纠结。
至于DevEc应用宝最新版本下载2021官方o Studio这个IDE我没什么多说的,**应用宝最新版本下载2021官方熟练使用过IDEA或者Android Studio等JetBrains全家桶产品的开发者开发来说,就顺手拈来了**。刚接触的读者还是先花心简单熟悉下常用操作吧。
### 4开发者模式怎么关闭、代码编写、阅读官方文档、填坑
由于前面已经分解了开发步骤,所以开发商编写代码目的性非常明确,思路清晰。
如果是初学者缺乏项目经验,从一个个小语法知识点开arms始学起,比如一个小小按钮学半天,那样开发应用开发专业和学习就太慢了。**所ost是什么意思以我还是建议多用项目式贯穿学习,特别是自己曾经做过的项目移植或者需求非常清楚的项目代入**。
既然知道了Java SDK开发,然后发现可以和Android进行对比开发,那么这**对Android老鸟来说要做的就是编写代码边做好差异化记录笔记即可*应用开发培训*。之前我同事也在社区上发布了[《安卓VS鸿蒙第三方件切换宝典》](https://harmonyos.51cto.com/posts/3260),就是这种开发思维下的产物。

**首先强调一个编写代码习惯**。包结构的合理划分,包名清晰,然后就是类名、方法名、变量名、常量名命名规范,这样即使注释很少没有详细设计文档也很方便阅读代码。
**然后是git的使用**,每完成一个核心步骤及时应用市场提交并army且编写简要明了的提交日志。
![image.png](https://harmonyos.oss-cn-beijing.aliyunostcs.com/images欧尚x7/202106应用开发工程师/5936fbb5533ad82ffb074923fe631b1830d246.png?x-oss-process=image/resize,w_590,h_745)
*欧尚*最后就是一步步去解决问题了**

(1)实现通讯录主页U应用开发平台I布局
针对本项目案例先把上下结构菜单栏和空列表布局出来,然后微微调整UI细节,此开发次元世界时你就会对布局内开发区搬家电话容掌握的七七八八了,没有必要进一步深究了。此时可以记录下armedAndroid和HarmonyOS的布局知识点异同点

(2)实现联系人列表静态数据渲染
发现HarmonyOS和Android列表数据渲染实现类似,也是采用一个lsit ui组件配合provider进行实现。
应用市场
(3)实现按钮点击、列表点击、长按等各种监听事件,使用日志打印模拟业务、debug调试
点击事件监听是应用中最常用来触发业务逻辑的,前期在没有实际业务的时候,请用日志打印来取代实际业务即可。
初学者往往会吐槽sysout、log好无聊,后面你就会发现它最好用。这里我重点强调一个问题,**做开发一定要hold住关键点,现在是要学习掌握点击事件的触发,不用真要出一个实际业务场景,比如做大数据分析,重应用开发工具点是采用哪些大数据技术去根据原数据集分析出我应用宝下载所关注的哪些维度的数据,这些才是核心,而不是这些数据os是什么意思如何漂亮的展示出来**。
当你觉得cons应用汇ole下打印这些数据最漂亮的时候,我会觉得你进步了。当然回过头来,后面还是要在些这些事件里面加入实际业务的操作,比如长按删除联系人的操作,这样你就完全知道实际业务和最初所学基础知识点是如何串联起来的了,达到此目的即可。

(4)添加联系人详情页面,实现页面之间跳转传参
**数据的交互可以说是应用开发时候的核心,比如传统的web开发、欧尚x7前后端分离模式的web开发、App类CS程序开发,都逃不过数据的交互**。
实现此功能arm什么意思英语我们首先arm什么意思英语要抛开某门特定的编程技术,而是想着以下几个关键点:**如何创建多个页面**、**开发游戏如何设置某个页面为首页**、**在哪应用开发者里触发页面跳转**、**前一个页面的数据如何传arm什么意思英语递到下一个页面**、**数据传递支持哪些数据结构**、**数据如何从下一个页面回传回来**,然后我们再来去阅读官方文档找寻相应API进行处理即可。
这里着重提示,**我个人开发理应用开发平台念里面把API语法放到非常低的地位,从来不记忆API**,比如你只需要知道SDK中肯定有个API能够实现页面跳转的功能,然后自己能够快速的查阅资料或者自己的笔记、编写过的demo,做到眼熟即可。保证常用的AP开发区I在你很长一段时间没有应用汇做此类开发之ARM后,依然能在1分钟之内解决arm怎么读问题。特别是在你学习过七八门编程语言之后,越发不可能去记各种API了。

(5)通过弹出窗口来编写添加联系人页面

(6)联系人列表数据的动态刷新
这两步依然是查阅官方资料即可实现,做好对比和记录即可。

(7)静态数据切换为本地持久化数据,比如是否存在sqlite,会对应用宝下载安装应数据的CRUD操作
开发次元世界步涉及到数据库的使用,**查阅资料之后,发现依然是传统的原生sql操作和ORM模型操作**。至于CRUD我不多说了,初学者最开始主要都是干应用宝最新版本下载2021官方这个,开发老鸟见到这个都想吐了。这里不多说,我认为原生sql虽然没有ORM操作起来清爽,但是学习成本低,学会原生sql玩转所有数据库,因此我还是更推荐原生sql使用。

到这一步有一个我非常想重点强调的步骤就是,对方法(即函数)的编写。**大的业务层面面向接口设计,落os是什么意思实业务的时候面向对应用开发工具象设计,实施落地的时候最重要的就是方法的设计编写。一个优秀的代码开发者,在想清楚需求之后,只需要开发者模式怎么关闭编写出方法的两个关键要素os系统,方法形参和返回值,那么他一定就能实现该业务。这开发者里就重点在于他对业务的深入理解和数据的交互,因此ost前期在编写代码的开发次元世界时候几步伪代码就可以完成一个功能模块的设计与实现**。

下面我编写下伪代码
```java
(1)---实现布局----
(2)在AbilitySlice中关联布局,并且初始化要使用的各个UI组件,初始化监听事件
(3)开发区编写三个核心业务方法,用于数据的几种场景切换
//获取sqlite数据库中的数据,集成sqlite之后调用这个方法取代之前的静态数据方法
pros系统i欧尚x5vate List getSqliteData() {
}
//生成静态的列表数据进行模拟,在对接s应用分身qlite或者服务端之后不再使用
pos是什么意思rivate List getData() {
}
//通过http请求获取服务端数据
pr偶数ivate void getServeost是什么意思rData() {
}
(4)菜单选择监听事件切换数据源加ost
switch (positionarmor) {
case 0:
getData();
break;
case 1:
getSqliteData()
breaarmedk;
case 2:
getServerData();ospf
break;
}
```
这里提到数据库的操作,我们也可以引入习惯的darmorao接口设计考虑,编写相应dao层,然后设计实现类进行实现,同时上面的伪代码方法还可以封装到一个获取数据服务的Service接口中,ost然后利用业务接口进行实现。此处依然是想强调设计先于代码。

(8)静态数据切换为服务端数据,http网络通信如何使用?是否涉及权限控制
**http网络通信在app开发中应用开发必不可少的东西,既然是应用宝Java SDK,那显然应用开发工具会想到支持最原生的HttpConnection API,查阅官网资料也会发现肯定是支持的**,但是一般不会使用原生的,往往会引开发游戏入一些第三方优秀库进行开发,比如okhttp就是存粹的Java jar包,进入开发即可。**由于不是Android开发,这里不要引入Android的aar库进行开开发次元世界发**。
网络开发中就会再遇到各种不同的坑,比如权限申请、ui主线army程不能执行网络耗时任务等,这些都可以通过应用开发商经验或者阅读报错日志一一解决。开发区
提到网络通信交互,不得不想应用商店到各种MVC、MVP、MVVosi七层模型M设计模式了,起初当然最熟悉的还是MVC,先使用传统的MVC去进行开发,后续可以自行封装MVP欧尚的开发模式。

(9)自定义组件使用
HarmonyOS处于起步应用宝阶段,最初的SDK开发包只会带有基础功能的开发,如果全部基于原生SDK进行开发,项目开发效率肯定会比传统的Android、iOS低太多,因为他们已经非常成熟,有大量优秀的开源第三方组开发游戏件库,说白了现在开发一个应用就跟码积木一样。**现开发者在就需要大量优秀开发者造出各种优秀的轮子出来让大家可以更快速的开发项目**。
应用开发者需要更新此应用写一个自定义组件确实比完成一个简单的项目需求要更加有意思和成就感arms,即使一个非常小的组件。这就需要耐心阅读官方SDK API甚至底层代码实现了,当然现在官网文档很齐全,我在编写第一个组件的时候还是消应用开发是什么耗了很多精力的,那个时候文档缺乏,只能看比较生涩的API文档,然后半猜半试捣鼓出来。

(10)重要特性功能引入
读完官方文档之后,发现了偶数分布式数据通信、协同、流转等重要应用开发是什么技术,后面就主要思考使用场景将其整合开发进去。本案例正好可以运用分布式PA和FA的互相调用,对ARM于这个功能引用也可应用开发培训以完美的通过该项目案例进行整合,**这种整合类的也能更考验对新知识的融会贯通**。比如JS开发一个通讯录FA,然os后Java开发通讯录数据服务PA,FA去获取PA中的数据即可。
### 5、无法解决的坑如何求助
**这里着重给初学者一个忠告,不要遇到一个问题就马上求助问人**,一个问题出现首先要通过查看日志进行解应用宝下载决,自行翻阅资料,反复尝试,错误复现手段arm是什么意思记录,对比场景解决等措施自行想办法解决,只有经过反复尝试发现是问题的时候再来求助老师,并且求助之前能够清晰的描应用开发工具述问题现象。
在项目开发中发现了官方文档、工具等各种bug,做好了充分记录和证据论证,然后提交给了华为方进ospf行求助和整改,对于缺失的关键API操作或者技术描述也能明确提出合理化诉求进行求助。
### 6、开发完成应用开发app之后的项目复盘
1. 梳理总结开应用开发工程师发思路,主要是分开发区析前期的思路是否存在不准确的地方;
2. 梳理回顾开发过程中遇到应用市场下载的坑点,应用开发平台自己是如何一步步填坑的;
3. 整理相关文档,进行归档留存;
4. 整理该项目中所运用到的技术栈;
5. 梳理该项目待持续改进的地方;
### 7、本项目所用到的相关的一些技术点
1.armyHarmonyOS移动应用开发工具(应用分身DevEco Studio)使用;
2.UI组件使用欧尚x5,包括Text,Button,TextFiled,Image,RadioButton,
RadioARMContainer,ToastDialog,ListContainer;
3.UI布局的使用,包括Direc欧尚x5tionalLayout,DependentLayout;
4.日志打印,HiLog的使用;
5.各种事件监听操作与业务逻应用开发app辑实现;(重难点armed
6.ListContaine欧尚x7r子布局结合RecycleItemProvider的使用;(重难点)armor
7.对话框以及自定义对话框的使用;(重难点)
8.页面生命周期以及页面之间跳转与传参;
9.自定义组件(同时涉及到Canvas)以及如何调用;(重os难点)
10.数据存储操作,开发商主要涉及开发者模式sqlite数据库存储;欧尚x7(重难点)
11.通过HTTP网络通信与服务端交互;(重难点)
1armed2.多线程通信;(重难点)
13.代码编程规范、设计模式;(重难点)
### 8应用宝最新版本下载2021官方、个人总结应用开发是什么
**学习没有捷径,只有依靠一腔热血和持应用开发专业之以恒的努力**。反arm怎么读复跳坑填坑,多了自然触类旁通,即使刚开发次元世界新接触一个技术,也能快速搞定一个项目的移植,比如这个小应用商店项目案例从刚接触到一天开发完成都足够了。
学习编程切忌执着语法和API,而要注应用开发者需要更新此应用思维锻炼,多练习多踩坑多对比多总结才是王道。
对于开发老鸟,我对快速掌握HarmonyOS开发的建议是将自己原有的项目移植,并且尽可能多融入一些技术点。
对于初学者,我建议是找到一个我这种项目贯穿式案例然后配合自己查阅官方资料进行结合学习,也会事半功开发商倍。

应用做多了,会慢慢失去兴趣了,都是各种数据交互和U应用开发I渲染,这时强烈推荐大家去关注下操作系统层的源码啊,此时c的代码或许会看起来更亲切哦,我这里推荐的不是开发板和上层传数据这类应用开发,而是操作系统内核代码,值得一看。
[想了解更多关于鸿蒙的内容,请访问:](https://harmonyos.51cto.com/#bkwz)
[51CTO和华为官方战略合作共建的鸿蒙技术社区](https://harmonyos.51cto.com/#bkwz)
https://ha应用分身rmonyos.51cto.c开发者om/#bkwz