OpenHarmony应用开发入门教程(一、开篇)

前言

华为正式宣布2024年发布的华为鸿蒙OS Next版将不再兼容安卓系统。这一重大改变,预示着华为鸿蒙OS即将进入一个全新的阶段。

都说科技无国界,这是骗人的鬼话。谷歌的安卓12.0系统早已发布,但是自从受到美影响,谷歌就拒绝再向华为提供安卓系统。你说它横不横,就是给你使绊子不让你用,你能咋地?就连电脑的win11及后续系统,个人都得同意信息上报到微软后台。国产化替代势在必行,老外的策略就是你只能搞低端,由它搞高科技主导世界。然后卖你昂贵的芯片,把你当韭菜收割。说不定哪天还卡卡你脖子,这已经是用烂的套路,就是这么的蛮横不讲武德。因此支持国产,支持国产系统。假如没有崛起的国货,你可能不得不买贵好几千块的三星和HTC手机。

再讲一个例子,华为从不会强制开发商必须使用自己的支付方式。苹果手机就强制开发商不得使用第三方的支付方式,因为使用苹果支付方式时,它就能从中收取30%的佣金。这样坐享其成的方式,谷歌也在使用。在2021年9月14日,韩国正式对于强制使用运营商支付方式的做法,进行明令禁止。因此,韩国成为反垄断的首个国家。据了解,近年来谷歌一直要求开发商签订合同,禁止开发商使用自己的支付方式,否则就不能继续使用谷歌的APP。而且,到现在为止,谷歌在韩国的占有率已经达到了97%,形成了垄断。

华为目前已经发布了鸿蒙OS 4.0版本,而鸿蒙OS Next开发者预览版将在2024年第一季度面向开发者开放,从这一版开始,鸿蒙OS将彻底剔除Linux内核与安卓AOSP代码,转而使用华为自研的鸿蒙内核。开始独立发展,在端系统上形成了三足鼎立的局面(iOS, Android, 鸿蒙)。

目前国内互联网大厂们已经开始与华为进行产业创新,技术应用、商业发展等方面全面合作。今年9月25日,华为正式公布了HarmonyOS NEXT,并且宣布不再兼容安卓应用。自从该消息公布以来,鸿蒙原生应用的进程就正式启动,作为iOS、安卓之外的第三大系统,目前已有金融、旅行、社交等多个领域的企业和开发者陆续宣布加入鸿蒙生态。

鸿蒙独有的分布式技术,以及一次开发、多端部署,能让服务在手机、平板、车机等设备上无缝流转,为用户提供场景化、智慧化的“服务合时宜”新体验。

后面的鸿蒙5.0及以后,会持续的更新迭代。相比4.0以前的系统,会变得更流畅,整体变得更加智能,最主要的是安全系数也会随之提高。我们再也不害怕我们的隐私数据被人偷窥。同时也不用担心手机隐私泄露,并且在万物互联方面将遥遥领先。

与Android的对比

Android架构介绍

从架构上对比下二者的差异,也许会带来不一样的收获。首先做了这么多年的端开发我们可以回顾一下Android的架构:

Android 软件包含一个开源 Linux 内核,其中包含大量通过应用程序框架服务公开的 C/C++ 库。 Android架构由五个层次组成,分别是Linux内核、库、应用程序框架、Android运行时和系统应用程序。在所有组件中,Linux 内核为智能手机提供操作系统功能的主要功能,而 Dalvik 虚拟机 (DVM) 则提供运行 Android 应用程序的平台。

Android架构的主要组成部分:

  • Applications 应用领域
  • Application Framework 应用框架
  • Android Runtime 安卓运行时
  • Platform Libraries 平台库
  • Linux Kernel Linux内核

Linux内核:它是Android架构的核心,存在于Android架构的根部。 Linux内核负责设备驱动、电源管理、内存管理、设备管理和资源访问。

Native Libraries:在Linux内核之上,有WebKit、OpenGL、FreeType、SQLite、Media、C运行时库(libc)等Native库。WebKit库负责浏览器支持,SQLite负责数据库,FreeType负责字体支持,用于播放和录制音频和视频格式的媒体。

Android Runtime:每个应用都在其自己的进程中运行,并且有其自己的 Android Runtime (ART) 实例。ART 编写为通过执行 DEX 文件在低内存设备上运行多个虚拟机,DEX 文件是一种专为 Android 设计的字节码格式,经过优化,使用的内存很少。ART主要包括:AOT和JIT编译,GC垃圾回收等很多优化。

Android 框架:在本机库和 Android 运行时之上,有 Android 框架。 Android 框架包括 Android API,例如 UI(用户界面)、电话、资源、位置、内容提供程序(数据)和包管理器。它为android应用程序开发提供了大量的类和接口。

应用程序:在android框架之上,有应用程序。所有应用程序(例如主页、联系人、设置、游戏、浏览器)都使用 Android 框架,该框架使用 Android 运行时和库。 Android 运行时和本机库使用 Linux 内核。

鸿蒙架构介绍

以下是鸿蒙的架构图:

 

从架构可知,仍已linux kernel为内核,各种硬件驱动都包含在内核。对上层进行抽象。在此之上形成系统服务层,以分布式设计为基础,又对框架层提供不同的基础能力集合,例如各种框架,服务其系统,API等等。

鸿蒙的理念:

  • 一次开发多端部署:指的是一个工程,一次开发上架,多端按需部署。目的是为了支撑开发者高效地开发多种终端设备上的应用。无需多说,这一定是趋势。
  • 可分可合自由流转:元服务是鸿蒙系统提供的一种全新的应用形态,具有独立入口,用户可通过点击、碰一碰、扫一扫等方式直接触发,无需显式安装,由程序框架后台静默安装后即可使用,可为用户提供便捷服务。支持运行在 1+8+N 设备上,供用户在合适的场景、合适的设备上便捷使用。可以理解为微信的小程序模式,区别在于是从原生支持以及跨设备终端。
  • 统一生态原生智能:移动操作系统和桌面操作系统的跨平台应用开发框架不尽相同,从渲染方式的角度可以归纳为 WebView 渲染、原生渲染和自渲染这三类,鸿蒙系统对应的提供系统 WebView、ArkUI 框架和 XComponent 能力来支撑三种类型的跨平台框架的接入。其目的是让其他框架开发的UI可以低成本迁移到鸿蒙。

在2019的大会上,华为不仅展示了鸿蒙系统的各项新功能,还特别强调了鸿蒙系统与安卓系统的区别,尤其是在架构和安全性方面。当时很多喷子说华为是骗子,鸿蒙是套壳android。现在还这么说吗?

鸿蒙系统与传统的安卓系统相比,最大的不同之处在于其独特的分布式架构。

传统的操作系统通常采用单一内核架构,而鸿蒙系统则采用了分布式架构,这使得它在多设备协同、资源共享和任务切换等方面表现出色。

这种分布式架构的设计使得鸿蒙系统能够更好地适应不同类型的设备,包括手机、平板、智能穿戴和物联网设备等。

除了分布式架构,华为鸿蒙系统在安全性方面也有着独特的创新。

传统的操作系统在安全性上存在一些漏洞,容易受到恶意软件的攻击。

鸿蒙系统通过采用分布式安全架构,将安全功能下沉到底层内核,实现了全场景、全连接、全时段的安全保护。

这意味着无论是在手机还是其他智能设备上,用户的隐私和数据都得到了更加坚固的保护,减少了恶意攻击的可能性。不过,当年的华为无法彻底脱离安卓系统,毕竟很多手机软件都是基于安卓去研发运行的。

总结

其实很多设备都可以跑android系统,只不过这种体验与数据迁移同步上需要应用开发者自行解决,大厂可能有这个实力,而中小开发者仅是对android的碎片化就已经头疼不已。

从大的趋势上讲,传统的移动互联网增长已见顶,万物互联时代正在开启,设备从几十亿手机扩展到百亿级IoT设备,这个是一个增长的蓝海。不同设备类型意味着不同的传感器能力、硬件能力、屏幕尺寸、操作系统和开发语言,还意味着差异化的交互方式。设备需要提供AI能力,例如语言交互,传感器智能感知,图像识别等。

Android也在不断更新,提供越来越丰富的能力。华为鸿蒙就是直接面向这种趋势的架构。究竟谁更有优势,谁才能统一江湖。我想我们不用去纠结这个问题,这些系统都很优秀。我们作为开发者,需要关注的谁能让我更方便的开发,低成本的接入,保姆级的自适配,快速迭代业务,更方便触达用户,更多的增长空间,这才是王道。相信都会有自己的判断。

之前个人对OpenHarmony一直保持观望态度。想不到华为动真格了,宣布2024年不再兼容android。想想华为智慧屏和超级终端带来的非凡体验(现在电视上的各种广告和会员收费,你就多么希望有个智慧屏。断言下未来电视会淘汰,智慧屏会替代它),时代在召唤,追上时代的步伐。看好未来的OpenHarmony,真正意义上的万物互联时代的操作系统,希望此时开始还不晚。

其他资源

华为文档中心 

华为开发者联盟-智能终端能力开放,共建开发者生态

OpenAtom OpenHarmony 

HarmonyOS系统Codelabs技术指导_华为HarmonyOS源代码 - HarmonyOS应用开发官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/152244.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FPGA模块——IIC协议(FPGA做主机操作24C64)

FPGA模块——IIC协议(FPGA做主机操作24C64) EEPROM(24C64)向器件写数据时序向器件读数据时序 IIC协议FPGA主机代码IIC驱动 EEPROM(24C64) 掉电不丢失,采用固定的读写协议。数据的稳定性和可重复…

vite动态配置svg图标及其他方式集合

文章目录 前言使用vite-plugin-svg-icons动态配置安装插件引入图标下载新建组件svg-icon.vue使用 使用vue组件动态配置总结如有启发,可点赞收藏哟~ 前言 在配置化的情况下,图标配置也显得极为重要的 使用vite-plugin-svg-icons动态配置 参考vite-plugin…

入职算法工程师后敲的非常有趣使用的小工具

NOTE:代码仅用来参考,没时间解释啦! 🍉一、自动从数据库从抽取数据。 在某台服务器中,从存放数据集的数据库自动抽取标注好的数据标签,这一步操作有什么用呢?当我们发现我们数据不均衡的时候&a…

【Linux】vscode远程连接ubuntu失败

VSCode远程连接ubuntu服务器 这部分网上有很多,都烂大街了,自己搜吧。给个参考连接:VSCode远程连接ubuntu服务器 注意,这里我提前设置了免密登录。至于怎么设置远程免密登录,可以看其它帖子,比如这个。 …

FastAdmin表格顶部增加toolbar按钮

效果入下图&#xff0c;在表格顶部增加一个自定义按钮&#xff0c;点击确认后请求服务器接口 表格对应的index.html中 <div class"panel-body"><div id"myTabContent" class"tab-content"><div class"tab-pane fade active …

JVM GC 调优命令看这一篇就够了

JVM GC 调优命令看这一篇就够了 2023-11-11 23:27IT果果日记 jstat 可用于统计内存分配速率、GC次数&#xff0c;GC耗时 jstat常用命令格式 jstat -gc <pid> <统计间隔时间> <统计次数> 例如&#xff1a;jstat -gc 6 1000 10 &#xff0c;统计pid6的进…

【设计一个缓存--针对各种类型的缓存】

设计一个缓存--针对各种类型的缓存 1. 设计顶层接口2. 设计抽象类 -- AbstractCacheManager3. 具体子类3.1 -- AlertRuleItemExpCacheManager3.2 -- AlertRuleItemSrcCacheManager 4. 类图关系 1. 设计顶层接口 // 定义为一个泛型接口,提供给抽象类使用 public interface Cach…

技术管理责任制度《三》

为了加强新时期科技档案的保密工作&#xff0c;确保档案在保管、利用、复制、销毁过程中的保密工作&#xff0c;特规定如下&#xff1a; 彩虹图纸管理软件_图纸管理系统_图纸文档管理软件系统_彩虹EDM【官网】 1、档案员要认真学习和严格执行国家有关安全、保密制度规定&#…

【java学习—十四】反射获取类的父类、接口、构造方法、方法(3)

文章目录 1. 通过反射获取一个类的父类和接口2. 反射获取一个类的构造方法3. 反射获取全部构造器4. 通过反射创建一个对象5. 反射机制获取类的方法 1. 通过反射获取一个类的父类和接口 使用反射可以取得&#xff1a; 实现的全部接口 public Class<?>[] getInterfaces(…

【小黑嵌入式系统第二课】嵌入式系统的概述(二)——外围设备、处理器、ARM、操作系统

上一课&#xff1a; 【小黑嵌入式系统第一课】嵌入式系统的概述&#xff08;一&#xff09;——概念、特点、发展、应用 下一课&#xff1a; 【小黑嵌入式系统第三课】嵌入式系统硬件平台&#xff08;一&#xff09;——概述、总线、存储设备&#xff08;RAM&ROM&FLASH…

优思学院|新版ISO9001:2015质量体系的优势(一)高阶结构

在全球商业环境中&#xff0c;不断提高产品和服务的质量至关重要。因此&#xff0c;国际标准组织&#xff08;ISO&#xff09;于2015年发布了更新的ISO 9001标准&#xff0c;即ISO 9001:2015质量体系标准。这一更新旨在适应不断变化的商业需求和挑战&#xff0c;为组织提供更强…

母婴行业数字化发展趋势:内容多元化、服务定制化、人群全覆盖

母婴行业数字化发展趋势&#xff1a;内容多元化、服务定制化、人群全覆盖 引言&#xff1a;时代的高速发展&#xff0c;在经济压力、生活节奏、婚育观念等多重因素的影响下&#xff0c;我国人口出生率自2016年&#xff08;人口出生数量统计1883万&#xff09;到2022年&#xf…

nn.Embedding()的原理

nn.Embedding()的原理&#xff1a; 定义一个Embedding&#xff1a; embeddings nn.Embedding(num_embeddings10, embedding_dim3)vocab_size : 10 输出维度为&#xff1a; 3 假定输入inputs如下&#xff1a; inputs torch.tensor([[1,3,6, 8],[9,1,3,5] ],dtypetorch.lo…

zabbix基本介绍 安装部署 页面访问

这里写目录标题 一、zabbix 监控1、zabbix 监控架构2、zabbix 监控报警渠道3、Zabbix 优点4、Zabbix 缺点5、Zabbix 监控系统监控对象6、Zabbix监控方式7、zabbix 架构1、Server2、数据库存储3、Web界面4、Proxy 代理服务器5、Agent监控代理6、数据流 8、Zabbix常用术语的含义1…

『Linux升级路』基本指令

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;Linux &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、认识操作系统 &#x1f4d2;1.1什么是操作系统 &#x1f4d2;1.2操作系统…

基于ssm的高校共享单车管理系统(有报告)。Javaee项目,ssm项目。

演示视频&#xff1a; 基于ssm的高校共享单车管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm项目。 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 项目介绍&…

torch_cluster、torch_scatter、torch_sparse三个包的安装

涉及到下面几个包安装的时候经常会出现问题&#xff0c;这里我使用先下载然后再安装的办法&#xff1a; pip install torch_cluster pip install torch_scatter pip install torch_sparse 1、选择你对应的torch版本&#xff1a;https://data.pyg.org/whl/ 2、点进去然后&…

智慧工地AI视频管理平台源码

智慧工地是指以物联网、移动互联网技术为基础&#xff0c;充分应用人工智能等信息技术&#xff0c;通过AI赋能建筑行业&#xff0c;对住建项目内人员、车辆、安全、设备、材料等进行智能化管理&#xff0c;实现工地现场生产作业协调、智能处理和科学管理。智慧工地的核心是以一…

HBase中的数据表是如何用CHAT进行分区的?

问CHA&#xff1a;HBase中的数据表是如何进行分区的&#xff1f; CHAT回复&#xff1a; 在HBase中&#xff0c;数据表是水平分区的。每一个分区被称为一个region。当一个region达到给定的大小限制时&#xff0c;它会被分裂成两个新的region。 因此&#xff0c;随着数据量的增…

[C++]:8.C++ STL引入+string(介绍)

C STL引入string(介绍&#xff09; 一.STL引入&#xff1a;1.什么是STL2.什么是STL的版本&#xff1a;2-1&#xff1a;原始版本&#xff1a;2-2&#xff1a;P. J 版本&#xff1a;2-3&#xff1a;RW 版本&#xff1a;2-4&#xff1a;SGL版本&#xff1a; 3.STL 的六大组件&…