草庐IT

鸿蒙应用开发 | 入门完整篇。

陈建朋 2023-03-28 原文
大家好,我是 朋哥,一个有十年工作经验的码农,一心追求技术。

先说说我的开发经历,10年毕业,到目前已经十多年开发经验,大学学习了多种语言,Java,Android,c,c++,到毕业时真正掌握了几乎没有,毕业以后很费力了找了一份Java开发。

后面业务需要在Android和Java之间来回切换,其实很多人都问我,为啥不转管理呢。

工作几年后一直都有做管理,带过很多团队,做过很多类型的项目,但是最后发现我更喜欢做技术,不适应做管理的勾心斗角和与客户的来回扯皮。

2020年开始接触鸿蒙开发,接触后让我感觉到不一样,不仅仅是因为是国产系统的开发,里面很多概念和场景是更加让我鉴定,未来鸿蒙开发是一种趋势。

写这个专栏也是为了,想学习鸿蒙但是没有一个系统资料,也不知道这么学习的小伙伴。

让我们一起进行鸿蒙开发的旅程吧!

简介

华为鸿蒙系统(英文:huaweiHarmonyOS,HongmengOS)。在2019年8月9日,华为在东莞举行华为开发者大会,正式发布操作系统鸿蒙OS,该版本是1.0。

鸿蒙OS是一款“面向未来”的操作系统,一款基于微内核的面向全场景的分布式操作系统,现已适配智慧屏,未来它将适配手机、平板、电脑、智能汽车、可穿戴设备等多终端设备。

2020年9月10日,华为鸿蒙系统升级至华为鸿蒙系统2.0版本。

余承东表示,2020年12月份将面向开发者提供鸿蒙2.0的beta版本

2019年8月虽然发布了鸿蒙操作系统1.0,但是并没有放出任何开发文档,对此感兴趣的人无从下手,只是知道概念,此后鸿蒙系统在很长一段时间都不被看好,甚至有些人认为这是一个骗局,2020年9月10日这一现象得到了改观。

2020年9月10日18:18 鸿蒙 OS 的代码正式开放,对应的也开放了有关的文档,开发工具等等,有了这些开发者可以进行demo的开发。

2021年4月22日,华为鸿蒙 HarmonyOS 应用开发在线体验网站上线   。5月18日,华为宣布华为HiLink将与Harmony OS统一为鸿蒙智联  。

2021年6月2日晚,华为正式发布HarmonyOS 2及多款搭载HarmonyOS 2的新产品(其中有,手环,手机,智慧屏)。

开源资料

分析几个开发必备的资料:

作为一个开发者,在鸿蒙出现的时候都一直关注,真正开源开发的时候 就开始看有关的资料,尝试实现了一个应用端demo的开发。

  1. 鸿蒙 OS 开发API:https://developer.harmonyos.c...
  2. 鸿蒙 OS 代码仓库:https://openharmony.gitee.com/
  3. 开发者中心:https://developer.harmonyos.c...
  4. 开发应用的工具下载地址:https://developer.harmonyos.c... 
    开发工具从2021年6月2号 已经更新成Release版本,在之前都是bate版本。
    当前版本号: DevEco Studio 2.1 Release
    6,开发者论坛:(1)https://developer.huawei.com/...
    (2)https://harmonyos.51cto.com/s...

做过鸿蒙APP开发后谈谈我的 几点 感受:

1,开发工具和Android的基本一致,开发工具很适合开发者,包括配置项,SDK,JDK等等。
2,开发代码的技术栈主要是三种方式:一种:Java 技术栈,另一种:JavaScript + HML + CSS,最后一种就是 native。
3,对开发者来说,简单 ,开发成本低,会Java 可以,会js也可以。

环境搭建

开发之前肯定要搭建环境,做过Java开发的的都知道,安装开发环境,主要的是需要JDK的安装,鸿蒙开发环境比较简单,在安装开发工具的适合会自动安装jdk。

如果你之前做过Java, JDK安装过的不受影响,没有安装的在安装开发工具的时候会自动安装。

有一点需要注意,鸿蒙开发需要安装Node.js,这个也是js技术栈开发的必备。

开发工具

鸿蒙应用开发 有自己的开发工具:
开发工具下载地址:https://developer.harmonyos.c...

当前工具版本:
DevEco Studio 2.1 Release
​​
工具下载

1,点击下载的时候需要进入华为授权,登录华为账号,请提前准备账号。
2,目前有Windows和Mac两个版本
3,点击直接下载,下载成功后文件如下:

​​

解压文件 后有一个安装文件 如下,后面就是傻瓜式安装(双击安装)。

工具安装-SDK安装配置

安装就是傻瓜试的安装,基本和idea一样:

  1. 安装的目录最好自定义
  2. 安装的时候需要下载SDK,会提示自定义下载SKD目录。或者不做选择,最后进入起始页面再去设置更新SDK。
    步骤:Settings ->搜索sdk->HomonyOS SDK

安装后手动更新SDK效果图:

SDK信息

目前sdk版本是: API Version5  ,2.1.1.21 。

这里说一下SDK中都有哪些信息?

  1. SDK配置更新包括:SDK Platforms 和 SDK Tools

下图是 SDK Platforms:

说明:HarmonyOs sdk按语言分类,包括Java、JavaScript和Native。它们允许你在java、javascript和C/C++中开发应用程序。同一API版本的SDK彼此兼容。

下图是SDK Tools:

说明:一组HarmonyOs应用程序开发工具,包括打包、签名和预览

注意在更新下载SDK的时候上面两个图中的都需要下载完整,否则会出现build项目的时候失败。

到这里开发工具就按照好了,可以进项项目的创建了。

创建项目

点击Create HarmonyOS Project 创建项目 
点击Open Project 打开一个已经存在的项目

  1. 点击 上一步的 Create HarmonyOS Project 下一步就是 项目选择项

1,第一个选项是js工程的项目,当然可以修改配置改成Java的工程,也能进行js交互
2,第二个选项是Java工程的项目
3,选中每一个会提示适合哪些设备,这点鸿蒙做的很人性化。

我们进行Java项目的开发,所以选择第二个选项。

  1. 添加名称和创建目录

1,项目名称
2,应用还是服务,我们选择应用
3,包名,可以自己修改,也可以默认
4,项目存储目录
5,sdk版本选择,选择最新
6,开发设备,选择Phone(可以选择其它,目前我们开发手机设备)
  1. 项目构建 Gradle

为啥要说Gradle呢 ,整个项目的构建主要就是基于它的,在创建项目后该配置下载。

这里提醒一个开发的小伙伴,如果遇到下载其它别人的项目,建议删除这些配置,从新下载,这样构建项目运行不容易出现问题。

5.创建项目后会更新gradle

目前默认是更新 gradle-6.3版本,这个更新有时候会比较慢,如果有下载失败的,建议多试几次,或者使用流量下载。有时候服务器下载人过多,或者网络问题。

6.整个项目(application)build.gradle 配置

里面的一些添加配置几乎和Android是一样的,毕竟工具是一样的,这样开发上手更快。(工具就是为了开发者,约简单越好)

变化的主要是maven仓库 都更换成鸿蒙专有的了,如果使用一些三方库,或者开源仓库的配置都可以添加。

7.APP(入口demo) build.gradle配置

app 中gradle配置也是和Android类似的,还有增加了鸿蒙的一些配置

引用了开发库和单元测试库

引入jar包的引用和单元测试。

下载模拟器

点击开发工具的头部 Tools-> Device Manager 首先会进入模拟器分类界面,需要登录华为开发平台,提前准备好需要的账号。

登录账号后需要认证开发者,可以选择 身份证认证和 银行卡认证。

(1)身份证认证后需要审核1 - 2天审核期。
(2)银行卡认证完就能审核通过。

认证成功后 点击Tools-> Device Manager ,进入登录账号,登录成功后在浏览器界面会提示授权同意的弹出框。

点击 允许 后 模拟器会自动更新下来 ,界面如下:

模拟器类型:手机,智慧屏,手环。
运行一个手机 模拟器 效果:

当前模拟器还是在线版本,有时间限制,快慢和网络有关。后续鸿蒙会更新离线的 ,那时模拟器会更快。

运行项目

所有一切准备好以后,就差运行效果了,因为创建项目的时候选择一个空的默认界面,所以只会显示一个 Helloword 。

运行很简单,点击头部的三角号 是启动,虫子图标是debug运行。

运行结果:

最新版本 运行结果显示 :你好 ,世界。    这也说明鸿蒙是有远大抱负的,不仅仅是一个领域。

好了 一个完整的鸿蒙开发入门就结束了,有问题留言或者私信我。

原创不易,有用就关注一下。要是帮到了你 就给个三连吧,多谢支持。

觉得不错的小伙伴,记得帮我  点个赞和关注哟~**

作者:码工,一个有十多年工作经验,一心在技术上的程序员。

有任何问题可以留言,私信, 也可以关注公众号:微信搜索:程序员漫话编程 ,获取更多免费学习资料。

后记

希望这篇文章能够帮助大家更好的理解 鸿蒙开发入门,同时也希望大家能够点赞、在看、分享、转发!

另外,我整理了很多鸿蒙的学习资料,全网传播超过1w+ ,微信搜索「程序员漫话编程」关注公众号后,在后台回复 ”鸿蒙“ ,领取全部 资源 如下

 

https://gitee.com/codegrowth/haomony-develop

 

有关鸿蒙应用开发 | 入门完整篇。的更多相关文章

  1. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  2. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  3. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  4. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  5. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  6. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  7. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  8. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  9. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  10. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

随机推荐