扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
开发前可以了解下鸿蒙: [鸿蒙开发 序]华为鸿蒙操作系统(HarmonyOS)简介及开发环境搭建
创新互联专注于稷山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供稷山营销型网站建设,稷山网站制作、稷山网页设计、稷山网站官网定制、重庆小程序开发服务,打造稷山网络公司原创品牌,更为您提供稷山网站排名全网营销落地服务。
开发前的准备:「鸿蒙开发 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按钮后发现我们的页面成功跳转了。
到此,本章的目标就完成了。
首先祝贺华为的鸿蒙系统开发成功!我大中国终于等到了我们中国人自己的操作系统!![耶][耶][耶]
鸿蒙用了几天,不是专业人士,不做专业分析,只说说个人的使用感受。
单从电子小白的个人体验来说,升级之后数据没有丢失(我升级时没有备份[捂脸][捂脸]),软件打开和使用和以前一样快,也不卡死不闪退等,系统使用起来没有任何问题,感觉不出来跟安卓什么区别。[赞][赞][赞]
另外下载速度真是超快啊,平时快的有1M左右,刚换完系统的时候下载速度竟然有10M,有种飞起来的感觉,[大笑][大笑][大笑]现在一般也有3、4M左右[赞][赞][赞]
不过有个问题好像是换了系统后出现的,就是手机和蓝牙的音量小了好多啊,以前开大概30%左右的就已经足够了,现在同样音量根本听不到声音,差不多要开到80%才听得清楚,我一度以为是我耳朵出问题了。[捂脸][捂脸][捂脸]希望华为工程师加油继续努力优化啊[奋斗][奋斗][奋斗]
一、在华为如日中天的时候,华为都没敢推鸿蒙系统,而是把鸿蒙系统当作“备胎”慢慢发展。现在,华为被制裁了,只能把鸿蒙系统紧急推出来了。至少,鸿蒙是仓促上马的系统,却要和一个已经发展许多年,非常成熟的安卓系统竞争,还能轻而易举地赢了!三星真要哭死在厕所里了。昔日三星联合了英特尔搞出来的Tizen系统,还是按部就班进行的研发,依旧是无法弄出自己的生态圈,最后只能沦落成家电的系统了。从这个角度来看,安卓工程师不用太担心安卓的生态系统被威胁,鸿蒙的生态圈很难发展到能够与安卓比较。
二、华为自己都说了,鸿蒙系统当初设计就是想做家电的系统,是与三星Tizen类似的东西,主要应用方向是家电和物联网。现在是因为制裁的原因,赶鸭子上架成为了手机系统。这种临时改变用途的系统需要大动干戈才能完善对手机的应用支持。可以想象,如果鸿蒙系统对手机的支持有缺陷的话,做手机应用就会非常困难。也因此有理由相信,现在鸿蒙手机如果对安卓应用的支持特别完美,就更说明鸿蒙的“拉皮”可能性了。如此一来,安卓工程师就安心开发安卓应用就好了,因为鸿蒙一定可以完美运行你的应用,这就没有放弃安卓开发的必要了嘛!
至此,我想现在考虑鸿蒙把安卓的阵地攻破了实在是太早了。所以,大概率,没有哪个安卓工程师会放弃安卓去弄鸿蒙,顶多是测试一下应用能不能在鸿蒙环境下运行罢了。还是把兼容性这件事儿交给鸿蒙去搞吧。
鸿蒙出来的话,安卓工程师并不会失业,取决于自己想不想在鸿蒙上开发软件。
鸿蒙的应用程序开发,主要是基于Java和NodeJS,基于Java的整体框架结构与安卓极其相似,加上其开发环境DevEco Studio与Android Studio同宗,安卓工程师可以极短的时间迅速上手鸿蒙应用程序的开发。当然,一些做前端开发的小伙伴也会进入鸿蒙平台进行开发,但这部分小伙伴往往是会用一套代码、同时适配多个应用平台(类似国产的uni-app),这些本身就在和安卓开发有一种竞争关系,并不会因为鸿蒙的生产而发生多大变化。
另外鸿蒙的开发平台,也可以很轻松在智能屏、智能手表、车载智能设备等设备上调试开发,总体来说,如果鸿蒙火起来,就会有更多的软件开发需求了,安卓开发工程师会更吃香。建议大家多多接触鸿蒙生态,多学一点知识对自己是一个积累储备,总不会是坏事。
错,是谷歌、微软和苹果要倒闭了!
鸿蒙系统配备方舟编译器,兼容安卓应用,但运行效率……(此处省略1000字,翻2019年文章)……鸿蒙系统能在所有设备运行,支持手机、电脑、平板、物联网……(此处省略1000字,翻2019年文章)……
我想说的是你们太不懂华为了,其实鸿蒙早已开发完成并且随时可用!他一直在忍,在等一个机会……
非常肯定的说不会失业。我们知道鸿蒙OS有很多地方借鉴了Android,甚至是说底层有很多Android的代码,开发思维很多都跟Android相似。比如写UI有Java方式和JS方式,而Java方式的UI和Android如出一辙,在Xml里面写界面,在Java里面获取控件设置数据,处理逻辑等等。鸿蒙里面也有Intent来处理跳转传数据,而鸿蒙的Ability更是和Android里面的Context,Activity这一套很相似,分前台界面显示,后台不可以的服务,以及用来传数据的Ability,就像Android里的Content Provider。当然它们之前也有不同,但你在方方面面都能看见Android的影子,所以Android开发者转鸿蒙平台开发,相比于其它平台的开发者,是天然有优势的,只要企业有需要,几乎所有Android开发在适应一段时间后都能上手做项目了。
相反的是鸿蒙生态能不能发展起来,能不能解决Android,iOS生态的一些痛点。能否吸引企业去开发鸿蒙应用,开发时,能否降低成本。当企业花大量的人力,物力开发出来的应用,没用户使用,或者收益甚微,企业是不愿意去尝试的。要想发展鸿蒙生态,这方面不仅华为自己要努力,一些国企,知名大企些带头作用,像央视影音,新华网,京东等等已经发布鸿蒙平台的APP了。
如果鸿蒙生态发展的很好,有大量的用户大量的应用,挤占了Android和iOS的市场占有量,Android开发者能迅速转到鸿蒙平台上,iOS的开发者要怎么办呢。也许你会说iOS根本不需要考虑,Android的市场占有率这么高iOS还不是活的好好的,当年诺基亚也没想到自己会倒的这么快。
作为一名android开发工程师,我想说,失业是不可能的,这辈子都不可能失业!
也许身为移动端开发人员的我们,正处于一段乱流之中!
首先,来谈谈android的碎片化问题。
仅仅2014年,全球支持Android的机型为18796种,再来看看国内,华为、小米、oppo、vivo...,android手机厂商也很多,每个品牌都是基于android开源系统改造,android开发人员要在完成软件功能的同时,对不同品牌的手机做功能适配,非常麻烦。
除了手机品牌数量多,手机屏幕的尺寸适配问题也很麻烦,往往一个软件的开发,有60%的时间在适配工作上。
是的,现在鸿蒙来了,意味着什么?意味着android开发人员有必要或者就必须去学习一门新语言、一个新系统的开发、适配,对于一个企业来说,要么就增加人工成本请一个鸿蒙系统开发人员,要么就强制在职android开发人员重新开发一遍软件适配鸿蒙系统。
基于此,不知道有多少android开发人员会买账,不知道多少企业会加个鸿蒙系统平台,不知道鸿蒙系统能不能站住脚推广开来。
虽然现在鸿蒙系统可以兼容android应用,但以后必然会两级分化。
如果鸿蒙系统没有革命性的突破,如果美国不再卡脖子,如果没有国家的干预措施,只靠平民大众自觉爱国的方式支持鸿蒙系统,我看很悬啊,毕竟,苹果手机在国内的销量一如既往!!!
再者,在手机行业,小米、oppo等手机厂商和华为本是竞争关系,会放弃自己的系统换成鸿蒙系统吗?这样的话,其他手机厂商的生存空间会一天不如一天,就算鸿蒙开源使用,也只不过走android碎片化的老路!
系统之争本就不是一朝一夕,不用担心会不会失业,路,还很长!
实际上安卓系统的成功起初很大得益于中国市场,可以说中国市场选择谁,成功的几率非常大, 鸿蒙系统出世以后,安卓开发工程师会失业吗? 暂时不会的,毕竟有一个过程,也是一种博弈过程,实际上安卓系统与鸿蒙系统现在没必要刻意追求细小细节的优劣,前提是由于美国对中国的打压,谷歌断供服务华为,别看只是说切断了华为的服务,但是这种破坏性本身就是让各国包括中国对美国不可能再信任,今天是华为,明天有可能是另一家企业,无论美国怎么说,谷歌再会解释,实际上这种行为已经打破了行业规则,后期效应就是不可能再一味的依靠美国,各国发展自己的系统,中国也必须的推出自己的系统,大势所趋,安卓体系以后会慢慢萎缩,安卓开发工程师失业不失业就凭他们个人能力了,肯定减员,估计未来的鸿蒙系统会越来越强大,市场份额是固定的,就看谁的市场大了,也不排除安卓开发工程师跳槽来鸿蒙。
开发鸿蒙只能在华为支持的鸿蒙设备上运行,开发android,可以在所有安卓设备包括鸿蒙设备上也兼容运行,何来失业
做安卓的一天不用就能写鸿蒙。可以忽悠甲方加钱了[泪奔]
不会,确切的说鸿蒙的出世,给Android工程师提供了更多的机会。鸿蒙生态的建设,安卓工程师会贡献绝对的力量。
另外,从技术上讲,安卓开发的应用完全兼容鸿蒙,安卓工程师开发安卓应用的时候,可能会针对鸿蒙系统做适配工作,工作量的增加,工程师的价值也会增长。
是得我就是干这个 但是我都计划改行了
单从技术上讲,开发一个单独的操作系统内核并没有想象中的那么困难。网上搜一下 至少能找到几十个甚至上百个OS内核实现,虽然绝大多数只是玩具级别的,但很多都是麻雀虽小,五脏俱全,基本的功能都有实现。
先说下自己的一些经历吧。
我在几年前曾经从零开始写过一个简单的操作系统内核,实现了基本的boot, 内存管理,进程管理,中断管理,IPC,简单的文件系统,简单的磁盘驱动,键盘驱动,简单的终端等基本功能,还实现了一个简单的调试器,支持断点等基本功能。当时对操作系统简直达到了痴迷的程度,只要工作上的事情一做完就去看操作系统方面的书籍资料,晚上下班和周末更是几乎宅在家里不出门,真的可谓是废寝忘食。
终于在参考了Linux, VxWorks还有国外一些大牛写的OS内核之后,最后搞出来了一个玩具级的OS内核,前后大概持续了半年左右。当时也纯粹是为了学习的目的,也是觉得比较好玩,基本功能实现后,就慢慢遗忘在在磁盘的角落里积灰了。。。
所以,从技术上说,开发一个OS内核并没有想象中的那么困难,很多大公司其实技术上都完全有能力开发一个具备基本功能的OS内核。当然,功能完备性、安全性、性能等方面能不能搞好就另说了。
我现在所在的公司,就有完全自主开发的微内核OS,并且在公司上百万台的电信级的分布式集群服务器产品上已经稳定运行了二十多年。并且,还围绕这个OS建立了一系列配套生态,比如基础开发库,一系列配套的开发调试工具,甚至还有专门为这个系统开发的编程语言和编译器等。我曾经有几年的主要工作,就是在维护这个OS内核。可惜的是,这几年公司已经在慢慢用Linux替换这个OS了,估计几年之后就要彻底退役了。
开发一个操作系统的真正难点在于创建围绕在这个内核周边的生态系统。一个单独的内核远远不能构成一个完整的系统,它需要大量的支持环境,如系统支持库,应用程序,开发调试工具等等,此外还要能够推广出去,要有其他上下游的公司愿意使用,能够被广大开发者认可并愿意为其开发新的应用等等,这才是真正的难点所在,是需要投入大量人力物力财力才有可能完成的。
很多公司也正是从技术积累上,时间上,成本上,风险上来考虑,不愿意花大力气在这上面。所以才有了如今Windows,Linux,Apple三分天下的局面。
咱们国家虽然急切渴望能有一个自研的OS,但现状是,有实力的厂商更愿意投资一些能看得到摸得着的实实在在的应用产品上,这样来钱快,才能在最短的时间内看到收益回报,也就是更高的投入回报比。
对于像操作系统,编译器之类的基础软件,除了需要雄厚的技术实力外,还需要耗费大量的人力财力物力,而且失败的风险较大。即便开发成功,还要花大力气进行推广,建立周边生态,这更是需要更大投资,时间成本也更大,往往需要几年甚至十几年时间才能看得到收益。
这对于习惯吃快餐、赚快钱的国内企业来说,根本无法接受。这也需要企业决策层领导具有很大的魄力和战略眼光,但现实中,这样的领导简直是凤毛麟角。
这也正是国内厂商大都不愿触碰自研OS的主要原因,也造成了我国至今仍没有自己的操作系统编译器的局面。
此外,现在市场上对一个新的OS的需求其实也没有那么急迫,没有需求,就没有利益,自然就没有动力。尤其在快餐文化盛行的今天,更是很少有公司愿意去触碰这吃力不讨好的事情。
当然也无须太过悲观,任何东西,只要有需求,就会有利益吸引力,就会给企业研究机构足够的动力。相信将来某一天,一旦Windows, Linux, Apple三巨头不再适用市场需求,马上就会有新的操作系统出现。
或许也用不了等很久吧,毕竟微软已经宣布Win10之后将不会再有大的Windows更新版本,而Linux虽然现在社区的开发仍然很活跃,新的功能仍在被源源不断的添加进去,但也正是由于这个原因,它现在变成了一个大而全的通用操作系统,已经变得越来越臃肿,很多场景其实已经不是很适用了,只是没有更好的替代品,很多公司又不愿意投入自研OS,所以只能选择相对成熟并且生态资源丰富的Linux。
Google不是几年前就已经开始开发Fuchsia了吗? 咱们拭目以待吧。也希望国内有实力的企业和科研机构能够迎头赶上,早日实现自研OS梦。
github上放出来的只是一个迷你的嵌入式OS内核LiteOS,翻看过代码,本身并没有很大的难度。至于鸿蒙OS,源码还没开放,目前为止还只是在PPT上出现过,所以不好评价,但愿能够不负众望吧。
Hongmeng OS是基于Linux内核源代码的开发。 OS实现代码主要是C语言,内核提供的本机系统调用接口肯定也是C语言接口。上层APP应用程序与现有的Android JAVA程序兼容,可能需要重新编译JAVA应用程序。程序代码将运行。至于应用程序编程SDK不支持JAVA以外的编程语言,还需要等待系统正式发布后才能发布,但是你可以先了解下面的编译器,据说这是一个业界开源编译器,用于编译APP程序。 。但是,我仍然希望鸿蒙操作系统的应用程序编程接口支持更多的编程语言(如CC等),这样程序可以有更多的选择。
操作系统从运行效率 和 可控性来看是要用C语言。 解释性语言,比如python、PHP就不大可能的。Java 也不太可能,一方面运行效率不如C语言,另外不可控:在内存方面,C语言内存申请和释放都很实时,不像Java 语言内存释放 要等GC。在操作系统层面,内存申请和释放是很频繁的,不能用GC定时释放,万一来不及释放 就OOM了,另外的万一发生full GC 那就更糟糕了,操作系统底层指令运行稍微一抖动,应用程序的执行性能就震了三震。
希望对你有所帮助!
从技术上讲,操作系统是一个没有多少技术含量的事情。一个明白操作系统原理的人用几个月就可以写出一个操作系统。
这个世界上的操作系统成千上万,到处都是,任何一个自动设备中都可以认为里面有一个操作系统,电话、门禁、共享自行车中都有。
鸿蒙系统是否好写要看他的目标是什么,只是简单使用当然简单,但要成为一个流行的系统则难度非常的高。
个人看法是鸿蒙系统有天生的缺陷,他是对抗美国产生的,华为一家独大,包括国内的其它厂商都不能干涉,同时他并非开源,他想怎么办就怎么办。这样就造成开发者特别是国外的开发者面临的风险非常的大。要是和谁闹翻了给禁用那怎么办?
安卓有一个最大的优势在于开源,世界上的开发者都可以使用,共同推进发展。当然本次事件更多的来源于政府的制裁,作为google当然要遵守政府的规定。但鸿蒙同时要遵守政府及企业的双层管制。
因此鸿蒙更多的是国内华为的系统,无论是阿里、小米还是谁想用都面临具体的风险,国外的开发者更是这样,要是他的国家一不小心辱华了,华为就给他们禁用,他们就死定了。
操作系统没有一个可以用好写来形容。
首先从代码量上来讲,操作系统作为一个系统,其代码量工作是非常庞大的,如果由单个开发者来完成,会是一项非常艰巨的任务。比如Windows内核的代码在5000万行以上,Linux目前在2500万行左右。如果题主从事开发工作的话,可以大概估计一下代码量的多少。
作为操作系统来说,兼容不同设备以及不同代的设备是必须的,向上和向下兼容保证了操作系统可以运行在不同的平台上,而向后兼容则保证了开发者的产品不会由于系统升级而出现不能使用的情况。
鸿蒙是分布式系统,显然需要支持不止一种类型的设备,这意味着操作系统本身需要考虑大量的底层硬件区别并给予支持。
操作系统最主要的一个功能是调度,即使在微内核架构里,调度依然被保留为内核的功能之一。
而调度在不同的负载下面,不同的设备上面以及不同的使用场景下面,都应该表现出不同的性能,那么开发者需要考虑到这其中最优并且最稳定的方案,最简单的方法不够智能,最智能的方法又可能引入一些问题。
所以总体来讲,不论操作系统本身性能优劣,从头开发一套系统就是一件工程量极其庞大的工作。
对于像华为这种公司来说,写出一个基于Linux的类似于安卓的系统应该是没有什么难度。但为什么鸿蒙系统到现在还没有正式退出使用?
其次一个系统主要是的就是它的生态系统,就是我们使用的各种app,就像当初微软的手机系统,就是死在软件生态不全,而形成生态就需要比较长时间和财力的投入,要吸引开发者去适配新的系统,而华为目前正在做这件事,通过高于其他系统的收益分成或者收益全部让利开发者的方式慢慢完善自己的生态。目前国内外已经有很多软件及 游戏 厂商已经开始适配HMS服务了,相信不久我们就能看到生态完善的华为新的系统了[赞]
听到鸿蒙,华为都不知道是谁家系统,也许根本就不存在
凑合吧,笔画有点多[捂脸]
难!
但对任何一家世界级体量的公司,都写得出!连黑莓手机都能写得出!
但生态很难!收费没人用,开源也没人用[捂脸]
不好写
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流