鸿蒙设备开发入门,鸿蒙系统如何开发
深度解析:华为的鸿蒙系统和你想的可能完全不一样
(杭州健澜 科技 有限公司编辑:张景领 全文约4390字,预计12分钟可以读完)
创新互联建站专注于周宁网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供周宁营销型网站建设,周宁网站制作、周宁网页设计、周宁网站官网定制、成都小程序开发服务,打造周宁网络公司原创品牌,更为您提供周宁网站排名全网营销落地服务。
华为的鸿蒙(Harmony OS)系统正式发布了,在发布会之后意料之中的出现了两极分化的评论趋势,说什么的都有,像什么忽悠人、改别人的、手机不能用等等,但如果你仔细去分析发布会上有关鸿蒙系统的全程内容,你会发现它和大多数评论中的那个“系统”是不一样的,大家不要盲目去诋毁“鸿蒙系统”,同时也不要肆意吹捧,否则很容易变成“捧杀”,在参与讨论之前,我觉得大家有必要先搞清楚,它是一个什么样的系统。
在发布会上,他们用了很多专业的名词进行功能解释,我相信这是大多数观众听不懂的,甚至大多数媒体的编辑也听不懂,在这种背景下,不管是吹捧的,还是诋毁的,都没在靠谱的频道上。
以下为我个人对鸿蒙(Harmony OS)系统的理解,现在就分享给大家:
目前我们正在使用的各种智能设备,如:手机、PC电脑、平板电脑、智能手表等,它们全都有自己的系统,即使是同一个品牌下的产品,也会有专门为它定制的系统,如苹果公司:
手机 iOS
电脑 MacOS
手表 watchOS
电视 tvOS
平板 iPadOS
虽然苹果公司将它们之间的互动做得很好,但仍然需要大量的人工来编写和维护不同的系统,站在开发者的角度来看,可能需要针对不同的平台调整不同的架构和UI,这是一个比较耗时的工作。
在使用的过程中,不同设备之间的系统需要去判断你的操作,然后根据不同的平台,不同的操作来给你调用不同的程序来执行,对苹果产品来说,自家产品之间互通体验还算不错,但如果和安卓设备或windows设备之间互动就显得麻烦很多,早期用苹果手机的人,想把照片拷贝到电脑上都很费劲,甚至这是很多苹果手机用户需要学习的第一课“如何把照片复制到电脑上”。
对Android系统的设备来说就更别提了,除了系统的碎片化之外,不同厂商之间都有自己的规则,没有一个统一的标准,再加上乱七八糟的第三方APP,导致安卓设备体验极差,相互之间想要达到完美契合的程度,需要比苹果付出更多人力和时间,所以很多大 游戏 或是应用,都是最新上架苹果商店,更新也是苹果设备先更新,因为相对来说,苹果系统更容易维护。
Android系统现在看上去还不错,但其实它有个很狼狈的过去。我学过软件开发,学会网站编程,学过数据库等N种编程语言,甚至稍微有那么一点点开发经验的人都会知道,如果你去修改一个别人的程序,如果这个程序一直在被不同的人,不同的时期维护,这里面就会出现大量的垃圾代码。
有垃圾代码不可怕,可怕的是谁也不敢动,不敢删。这些垃圾代码虽然看上去没用,但说不定某一条就与另一个指令相连,如果你删了就会产生连锁反应,甚至会导致系统崩溃,所以比较稳妥地做法就是,在不改变原有代码的情况下,把自己想要的功能再加进去,备注上自己的名字。
这会造成什么问题呢?我们举个例子:
你想从16楼到1楼拿快递,原本只要从固定的电梯直接到1楼即可,也就30秒不到,结果你从家出来发现楼道有30个电梯,上了一个之后发现它只到13楼,你只好下来再进另一个,运气好能到1楼,运气不好估计还得在6楼停一下,运气最差的情况你可能坐了20个电梯都还没到1楼。
这就是垃圾代码带来的副作用,现在的Android就是这个情况,大家都知道有垃圾代码,也知道它会影响运行效率,但谁也不敢动,或者说谁也不会去动,都不想承担系统崩溃的风险,这是人之常情。
华为的鸿蒙系统提出一个“微内核”的概念,其实这个谷歌新系统Fuchsia OS就是微内核的系统,它们希望用这个全新的系统来替代Android这种老弱病残的现状,因为它身上的顽疾太多了,还是没药可救的那种。
这种“微内核”的系统最大的好处就是,可以让开发者提交的应用,最方便、最快地适配所有硬件,这对消费者来说也有非常大的好处,你可以第一时间更新你手里的所有智能设备,类似苹果每年的大版本系统更新,几乎全球的用户都可以同时更新,这是国内Android用户这辈子都体验不到的,所以我们只能寄托于新的系统。
Harmony OS 鸿蒙,基于微内核的全场景分布式OS。
“基于微内核的全场景分布式OS”这句话是重点,它不是一个专门为单独设备准备的系统,它是一个平台式的系统,可以通过中心网络派发资源和功能,所有功能又可以单独使用,灵活多变但统一和谐。
我们再来深入地拆解一下鸿蒙系统,它与普通系统最大的不同之处在于,它在运行程序的一开始并不是直接执行所有内容,而是先判断你是什么设备,然后直接走单独的通道去执行,而所执行的这些程序,不管你是电视、电脑、还是手机,它们用的都是同一套系统,只是在最开始的时候选择了一下设备,这个系统并不是给某种设备单独定制的,而是一个通用的系统。
这样做的好处就是,每次你需要维护的时候,只需要把第一层的东西做升级,下面的底层是不用动的。这就好像系统是一台CD机,不管谁家的CD都可以在我这里播放,只要你按统一的Copy程序做的光盘就行了,如果你想听其他人的音乐,只要换张CD即可。
而以往的系统就比较麻烦,如果你想换一张CD,可能需要针对这张CD去制造一台CD机,最差也得把这台CD机修改成可以播放的样子。
除了设备间的独立之外,它会让硬件本身的功能成为系统可以调配的东西,比如手机上的摄像头,它甚至可以通过系统间的调度被电视或手表使用,因为它们用的是同一个系统,所以具备了相互通信的能力。
你们有没有看过《速度与激情》这部电影,它里面的天眼系统其实就是在调配所有生活周边的摄像头来获取画面,从而准确地追踪到目标人物。虽然鸿蒙还没有这么高级,但它已经是个雏形了。
相信很快我们就可以用家里的电视屏幕当大疆无人机的显示屏用了,这会给我们带来无限的 娱乐 空间。
当然要实现这种功能上的调用需要二个条件,第一个就是必须是采用了鸿蒙系统的硬件;第二就是必须登陆了相同的华为账号。这里面涉及到了另一个生态的问题,我们后面再讲,还是先说系统。
可以单独调配资源的另一个好处就是,它可以像我们现在的智能路由器一样,根据你正在做的事情来给你不同的性能。如果你正在玩 游戏 ,它可能会保证你玩 游戏 的同时,再去帮你升级一下系统,但它还不能影响你的网速;如果你正在看视频,在这种几乎不需要性能的场景时,它可能会在后台帮你彻底杀毒或自检一次,这种优化能力其实现在的手机也可以做到,但这个逻辑本身就是吃性能的,所以当它以系统的一部分出现的时候,才是最完美的。
这功能其实你是看不到的,但从其它地方你也可以间接发现,如:费电小了、发热小了、打开东西更快了、不用老去清理缓存了,蓝牙耳机玩 游戏 或许都没延时了(我发现了一些端倪,他们已经在做蓝牙耳机玩 游戏 降低延时的测试了,EMUI 10.0见)。
至于系统安全性方面,我并不是专家,所以在这里没办法给大家更深度的普及,但我可以说一下我个人的理解。鸿蒙系统这类微内核的系统,本身是非常小巧的,代码量也不大,所以它可以用到更深度的安全级别措施。
另外它天生就没有root权限,也就是说不会给任何第三方应用或个人系统最核心的权限,这也算是最大限度的保证安全的措施之一了。可能很多人说手机不能root就没什么可玩性了,但我个人认为没有是对的,因为这样可以最大限度的保证系统的安全以及流畅性。
可能你们还没注意到,很多手机第三方主题、字体、甚至动态壁纸,都会明显影响手机的流畅性,这里面字体的影响是最大的,很多莫名卡顿的现象换成系统默认字体立刻就好了。
我们来看一下鸿蒙OS的整体结构,其实它仍然保留了Linux内核,这样一来就可以直接兼容安卓应用,这在初期是非常重要的,毕竟不能让用户买回来没得用,在这段过度期中间,华为方面肯定会联合各大主流厂商定制属于鸿蒙OS的专用APP,这才是发挥它性能的最佳方式。
也就是说,在兼容安卓APP的这个时间里,它的威力还没办法完全施展出来,当那些采用“方舟编译器”开发的应用上线之后,才能发挥它至少八成以上的实力,当鸿蒙OS的生态建立完全时,才可以发挥接近100%的实力。这也是我为什么说,鸿蒙OS需要时间来沉淀,它不可能一上来就是满血状态。
我们可以理解为,现在所有用“方舟编译器”开发的应用,都可以在鸿蒙OS中发挥最快的效率。
当使用方舟编译器的应用足够多时,或者说90%以上常用APP都有方舟编译器的版本时,鸿蒙OS的底层会完全抛弃Linux内核,只保留鸿蒙微内核,这个时候才是鸿蒙(Harmony OS)系统正式独立且完全独立的日子,这一天才是它的真正崛起的日子。
为了早日实现这一天,其实华为方面下了很多功夫,甚至他为开发者提供了非常舒服的便携环境,很多基础操作都可以直接用拖拽的方式来完全设计,模块化编程是未来的趋势,我这种曾经只会手动敲代码的老古董已经被淘汰了。
它可以让你一次开发,同时适配所有搭载了鸿蒙OS的设备,这是无数安卓开发人员的梦想,只可惜在安卓系统上已经没办法实现了。
我估计后面华为会为开发者提供不错的奖励措施,有奖励,有平台,有目标,有未来,生态成型基本上就是时间问题。
【产品的诞生】
现在的鸿蒙OS是可以用在手机上的,但支持的APP并不是很多,而且生态还没有建立起来,这些都需要时间,之前我和瓦力读者说是2年时间,这与发布会上华为方面的规划基本是吻合的。
现在拿出鸿蒙OS的目的很简单,告诉大家鸿蒙OS并不只是PPT,它已经是完整的系统了,顺便让那些喷子闭嘴。另一个原因是,它的电视用上了鸿蒙OS,没必要藏着掖着,同时也是给那些应用开发者一个定心丸,让他们可以放心为鸿蒙OS开发应用。
这里有一个“因素”很重要,如果明天美国不让华为用安卓系统了,鸿蒙OS就必须提前应用到手机上,这是一个没办法的备选方案,至少可以用,虽然和常规安卓没什么大区别。
但如果换了另外一个厂商,如小米、OPPO、vivo等,这几乎是毁灭性的打击,所以防患于未然是必须要做的。但小米他们暂时没办法弄自己的系统,因为这需要很多钱,很多人,很多时间,即使有一天美国禁止全中国的手机厂商使用安卓系统,其实鸿蒙OS也可以给大家用,与其说它是华为的应急方案,倒不如说是全中国手机厂商的应急方案,其实如果不是万不得已,华为也不想这么早就把鸿蒙OS用在手机里,时间点太靠前了。
到了2020年,鸿蒙OS会被用到笔记本电脑、手环、手表中,2021年才是应用到手机上的最佳时机,那时候有没有安卓系统都已经无所谓了。这样做也是为了先把生态和周边做好,手机出来的时候,可以直接整合,用户上手就是完全版本的体验,这也是最稳妥的方式。
如果你对手机系统或是手机行业有一些了解,相信看完我上面的分享之后应该明白了,鸿蒙(Harmony OS)的目标根本不是Android,而是谷歌正在开发的Fuchsia OS,以及苹果正在部署的相应系统。
所以那些经常用Android来和鸿蒙(Harmony OS)说事的人,应该换换思路,是时候接轨下一代系统了。
2021-02-05鸿蒙开发(二.五)
Intent
Intent是对象之间传递信息的载体。当一个Ability需要启动另一个Ability时,或者一个AbilitySlice需要导航到另一个AbilitySlice时,可以通过Intent指定启动的目标同时携带相关数据。Intent的构成元素包括Operation与Parameters。
Intent的构成元素
Operation
Action: 表示动作,通常使用系统预置Action,应用也可以自定义Action。例如IntentConstants.ACTION_HOME表示返回桌面动作。
Entity:表示类别,通常使用系统预置Entity,应用也可以自定义Entity。例如Intent.ENTITY_HOME表示在桌面显示图标。
Uri:表示Uri描述。如果在Intent中指定了Uri,则Intent将匹配指定的Uri信息,包括scheme, schemeSpecificPart, authority和path信息。
Flags:表示处理Intent的方式。例如Intent.FLAG_ABILITY_CONTINUATION标记在本地的一个Ability是否可以迁移到远端设备继续运行。
BundleName:表示包描述。如果在Intent中同时指定了BundleName和AbilityName,则Intent可以直接匹配到指定的Ability。
AbilityName: 表示待启动的Ability名称。如果在Intent中同时指定了BundleName和AbilityName,则Intent可以直接匹配到指定的Ability。
DeviceId: 表示运行指定Ability的设备ID。
当Intent用于发起请求时,根据指定元素的不同,分为两种类型:
如果同时指定了BundleName与AbilityName,则根据Ability的全称(例如,“com.demoapp.FooAbility”)来直接启动应用。
如果未同时指定BundleName和AbilityName,则根据Operation中的其他属性来启动应用。
2021-03-23鸿蒙开发(五.二)
定位使用
位置能力用于确定用户设备在哪里,系统使用位置坐标标示设备的位置。有GNSS定位、基站定位、WLAN/蓝牙定位
GNSS定位包括GPS、GLONASS、北斗、Galileo等,通过导航卫星,设备芯片提供的定位算法,来确定设备准确位置。定位过程具体使用哪些定位系统,取决于用户设备的硬件能力
位置能力作为系统为应用提供的一种基础服务,需要应用在所使用的业务场景,向系统主动发起请求,并在业务场景结束时,主动结束此请求,在此过程中系统会将实时的定位结果上报给应用。
使用设备的位置能力,需要用户进行确认并主动开启位置开关。如果位置开关没有开启,系统不会向任何应用提供位置服务。
设备位置信息属于用户敏感数据,所以即使用户已经开启位置开关,应用在获取设备位置前仍需向用户申请位置访问权限。在用户确认允许后,系统才会向应用提供位置服务
网页名称:鸿蒙设备开发入门,鸿蒙系统如何开发
转载来源:http://azwzsj.com/article/dsdehce.html