扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
开发前可以了解下鸿蒙: [鸿蒙开发 序]华为鸿蒙操作系统(HarmonyOS)简介及开发环境搭建
成都创新互联公司主营柘城网站建设的网络公司,主营网站建设方案,手机APP定制开发,柘城h5小程序定制开发搭建,柘城网站营销推广欢迎柘城等地区企业咨询
开发前的准备:「鸿蒙开发 1」华为鸿蒙应用集成开发环境DevEco Studio安装和设置
了解鸿蒙应用开发的基本开发流程:「鸿蒙开发 2」第一个华为鸿蒙(HarmonyOS)应用程序(App)
本章目标:
1 了解华为鸿蒙应用开发的可视化(低代码)方式
2 通过构建一个简单的具有页面跳转功能的应用
低代码开发方式,即通过可视化界面开发方式快速构建布局、编辑UI界面,可有效降低用户的上手成本并提升用户构建UI界面的效率。
1 打开DevEco Studio,创建一个新工程,选择支持Phone / Tablet / Wearable(手机 / 平板 / s可穿戴)的模板,我们在此直接选择Empty Ability
Project name工程名称填SuperVisual
Development mode开发方式选择Super Visual
其它的可以使用默认设置,点击完成,进入编辑界面
1 在Project(项目)窗口,删除工程运行默认的入口文件夹:“entry src main js default pages index”文件夹
2 在Project窗口,选择工程中的“entry src main js default pages”,单击鼠标右键,选择“New JS Visual”
JS visual name填first,点击完成,进入编辑界面
创建完成后,可以看到“entry src main supervisual default pages page page.visual”的文件目录结构
3 第一个页面内有一个容器、文本和一个按钮,通过Div、Text和Button组件来实现
(1)分别选中first.visual画面中的Text、Div组件,单击鼠标右键,选择Delete删除
(2)选中UI Control中的Div组件,将其拖至画布
点击右侧属性样式栏中的通用样式图标(General),设置Div组件的高度Height为100%,使其占满屏幕
点击右侧属性样式栏中的样式图标(Flex),设置Div组件的FlexDirection样式为column,使Div的主轴垂直;设置Div组件的JustifyContent样式为center,使得其子组件在主轴上居中显示;设置Div组件的AlignItems样式为center,使得其子组件在交叉轴上居中显示
(3)选中UI Control中的Text组件,将其拖至Div组件的中央区域
点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hello World ”
点击右侧属性样式栏中的通用样式图标(General),设置Text组件的宽(width)为100%,高(height)为100px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为60px,使得其文字放大;设置组件的TextAlign样式为center,使得组件文字居中显示
(4)选中UI Control中的Button组件,将其拖至Text组件下面
点击右侧属性样式栏中的属性图标(Properties),设置Button组件的Value属性为 “ Next ”,
点击右侧属性样式栏中的通用样式图标(General),设置按的宽(width)为40%,高(height)为60px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为40px
至此,第一个页面创建完成
我们可以在预览窗口中看效果,点击右侧边栏的Preview打开预览窗口
1 在Project窗口,选择工程中的“entry src main js default pages”,单击鼠标右键,选择“New JS Visual”
Visual配置界面,JS visual name填second,回车(Enter键)或者点击完成,进入编辑界面
2 第二个页面中有一个容器和文本,通过Div、Text组件实现,现在编辑器已经为我们创建好了,我们就来修改下它们的属性(你也可以删除原有的自己创建,具体步骤参考本章第二节“二 创建第一个页面”)。
选中Text组件,点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hi,I'm always here. ”
点击右侧属性样式栏中的通用图标(General),设置组件的宽(width)为100%,高为60px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为36px,TextAlign样式为center
这样我们的第二个页面创建成功了
1 在Project窗口,打开工程中的“entry src main js default pages first first.js”, 导入router模块,页面路由router根据页面的uri来找到目标页面,从而实现跳转。示例代码如下:
2 打开或者切换到first.visual页面,选中画布上的Button组件,点击右侧属性样式栏中的事件图标(Events),鼠标点击Click事件的输入框,选择launch事件
3 在预览窗口中查看项目效果,点击Next按钮后发现我们的页面成功跳转了。
到此,本章的目标就完成了。
鸿蒙os所用的语言开发APP软件,这个只有是内部人员才能够知道的,应该是一些计算机方面的c语言之类的或者是更高级的语言。
鸿蒙对标的是安卓系统,而且鸿蒙为了兼容现在的设备,鸿蒙一定需要兼容安卓的某些特性「 比如adb 」,要不然现在的所有设备使用上就有问题。
OS和内核是两个东西,鸿蒙的内核可以是Linux,也可以是华为自己开发的内核,看代码命名是Liteos_a,这个是一个实时内核,实时内核和非实时内核有非常明显的区分,我们正常使用的windows,Linux等都是分时系统,每个任务都有一个时间片,实时系统调度算法和分时系统是不同的,像嵌入式系统freertos,rtt是实时系统。从这里隐约可以看出来华为的对手并不是Linux。
ps:Linux内核也可以打上实时补丁。
如果鸿蒙VS安卓
安卓开发的应用需要重新开发,这部分不仅需要华为方面的努力,还需要产品公司的人去学习鸿蒙的api,一款应用可能需要ios、安卓、鸿蒙三个系统的开发人员,因为现在世面上的鸿蒙手机还没有,所以这个技术积累还是很少的。
厂商愿意不愿意使用鸿蒙,这个才是最大的问题。
我们知道,手机芯片原厂释放芯片的同时也会释放SDK包,如果需要占领手机市场,那就需要搞定这些芯片原厂,适配他们的芯片,适配他们的外设,虽然安卓发展到现在已经很多个版本了,但是依然每天有很多问题需要解决。
安卓发展到现在,也出现了很多新颖有用的特性,比如我之前在视频里面提到的,Android 9之后有一个特性 「 就是不需要关闭WIFI也能打开手机热点 」, 这是一个非常有效而且有用的功能,这个功能可以让信号覆盖不到的地方组网,而且安卓的很多现有特性对用户来说是非常重要的,用户会为了鸿蒙而抛弃体验吗?
鸿蒙想达到安卓,我觉得路子还是非常长。 但是 Liteos是非常值得期待的。
因为Liteos要打的可能不是Linux而是一些嵌入式RTOS,比如Freertos。
但是这也会遇到同样的问题,芯片厂商愿意不愿意花精力和心思去做这个事情,比如说Nordic,这个是一个非常典型的蓝牙芯片,它有自己的app,协议栈,如果让他们在他们的芯片上重新开发Liteos,不管从稳定性,可量产性,都还是未知的。
我之前做的ESP32,用的是Freertos,如果Liteos想占领IOT市场,就需要在这方面下功夫,比如让厂商在芯片上移植Liteos,相对于搞定高通这样的芯片厂商,搞定乐鑫这样的国产芯片相对容易多了。
鸿蒙的出来,在学生和开发者之中是比较轰动的,学生和开发者都喜欢大牛,喜欢新鲜的技术,而且学生和开发者大部分有情怀,但是鸿蒙想靠开发者和学生去一统江湖,有困难,因为资源在厂商手里,不是在开发者和学生手机。但开发者和学生的作用却很大,他们可以移植Liteos到不同的芯片上去,扩大Liteos的使用,提升Liteos的稳定性和扩展性。
13年,那时候,平板行业非常火热,然后也有一家国内大企业想吃一下这块蛋糕,跟方案公司合作,但是后来没有量产,一个原因是芯片原厂技术支持不到位,出现的问题比较多,做产品跟做技术不一样,做产品的周期非常短,不可能原地等待原厂研究很长时间。
为啥Liteos使用驼峰命名?
这个就是一个习惯的问题,并不能说谁好谁不好,但是如果以前看底层代码都是下划线的形式,突然变成大写,第一时间就有点不习惯。
缩进方式只能用空格缩进我觉得这是一个提升,tab键因为在不同的软件中会显示不同,总是需要设置才能显示正常,也算是制定了好的标准。
中文注释
在每个文件的前面,会有一串英文解释这段代码的作用,有点疑问,为什么不直接写成中文。毕竟中文的话,阅读起来会相对轻松一些。
其他
其他也说不出个所以然,大家看到鸿蒙应该都会有自己的看法,也想知道要不要跟着华为走,现在要不要开始学习鸿蒙,我觉得这些都是太过于着急了。
那天直播结束,我们就联系了一个朋友,说要买点海思的芯片,得到的消息是芯片已经是断货状态,我猜测,可能已经有人开始操作了。
看代码可以看到其实很多技术是相通的,而且因为是中国人维护和开发,文档和交流上会方便很多,我觉得没必要紧张,该怎么学习还是怎么学习,至少我觉得可以说明一点,到目前位置,脱离C语言来写内核还不太现实,好好学习C语言,学习操作系统,不说其他的,学习51单片机也差不到哪里去。
根据华为公布的方舟编译器资料,可以得知鸿蒙系统是用C、C++语言编写。
鸿蒙系统和方舟编译器的思路是一样:直接使用机器语言编写app,取消安卓系统的ART虚拟机,直接编译为二进制机器码;
这样的好处是:不需要中转,执行速度快;劣势是:必须要有大量的静态方案、内存空间要求更高。
扩展资料
系统简介
鸿蒙微内核是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全,主要用于物联网,特点是低时延,甚至可到毫秒级乃至亚毫秒级。
鸿蒙OS实现模块化耦合,对应不同设备可弹性部署,鸿蒙OS有三层架构,第一层是内核,第二层是基础服务,第三层是程序框架 。
可用于手机、平板、PC、汽车等各种不同的设备上。还可以随时用在手机上,但暂时华为手机端依然优先使用安卓、华为电脑端依然优先使用windows和Linux。
参考资料来源:百度百科-华为鸿蒙系统
参考 鸿蒙官方文档(点击传送门) ,做一下流程梳理简化,及踩坑记录
华为将真机调试分成物理真机和远程真机。这里说的都是物理真机(手机、平板)。鸿蒙真机调试巨复杂,不像Android那么容易方便。
贴一下官方的调试流程图:
总结一下:
上面这个流程可以忽略,没讲到重点。真机调试是需要在 AppGallery Connect 中创建应用的,调试应用需要的cer和p7b文件是从这里生成的。
先决条件:
1. 鸿蒙手机通过USB连接电脑,并开启USB调试。
2. 一个华为开发者账号,实名认证
3. APP开发工具DevEco-Studio
关键流程:
1. Studio创建应用
2. 如果未登录过,File Project Structure Project Signing Configs签名配置页,点击“Sign In”
3. AppGallery创建应用(包名和Studio创建的一样)
4. 官方文档到这在签名配置页就点Try Again可以自动签名,我试了不行,以下全是手动
5. Studio中Build Generate key and CSR 生成p12和csr文件
6. 获取手机udid,命令行hdc shell bm get -udid(下一步设备管理要用)
7. AppGallery主页 用户与访问 左侧设备管理添加udid的设备(生成p7b时要用)
8. AppGallery主页 用户与访问 左侧证书管理生成cer文件(生成p7b和签名配置要用)
9. AppGallery主页 我的项目 左侧HarmonyOS应用 HAP provision profile,生成p7b文件
10. 最后在签名配置页配好 p12、p7b、cer等参数,运行鸿蒙应用到真机就行了
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流