Android 原生开发与Harmony原生开发浅析

news2024/11/29 23:49:47

Android系统 基于Linux ,架构如下

底层 (Linux )> Native ( C++层) > FrameWork层 (SystemService) > 系统应用 (闹钟/日历等)

从Android发版1.0开始到现在15,经历了大大小小的变革

从Android6.0以下是个分水岭,6.0之前权限都是直接卸载Manifest中配置

6.0开始 则分普通权限和敏感权限 比如 读写外部存储/打开摄像头/定位 等

7.0/7.1 应用快捷方式/圆形图标支持/键盘图片输入/指纹手势支持/夜间模式和屏幕色彩校准

8.0/8.1:通知渠道/画中画模式/后台限制/自动填充 API/自适应图标/应用安装的增强功能/WebView 多进程模式/下载速度指示器等

9.0 : 手势导航/数字健康/TLS 默认启用/多摄像头支持/ART(Android Runtime)优化等

10.0:深色模式/后台访问限制/暗黑模式 API/

11/12/13/14/15...................................

自从2020年之后,鸿蒙开发的热度逐渐增加

最开始鸿蒙开发是FA模型  即嵌入了JavaScript,模型如下:

现在则是Stage,模型如下:

现在FA模型逐渐被弃用,推荐是Stage模型,Arkts语言+ArkUI

风格类似于现在的Flutter

Android or Harmony系统差异:

Android 系统安装包为.apk  有着AOSP(Android Open Source Project)

Harmony早期版本也支持Android+Harmony 现在已经将AOSP剥离出去,如果有开发需求需要学习鸿蒙来进行适配

适配:

Harmony 从开始的 1.0到现在5.0 发展了几年,其中坑还是不少的,不少弃用的API以及API的变更

每个版本都需要单独适配,后续应该还会上仓颉编程语言 与现在的Arkts或许不兼容,ArkTs基于TypeScript 改进的,而仓颉则是独立开发的语言,未来变动,尚未可知

Android适配无非就是判断版本,单独适配以及现在ndk的page对齐

总结:

鸿蒙开发近几年不会代替Android开发,同样Android也不会代替鸿蒙,各自的领域不同

Android不管是手机还是车载等,发展空间还是比较大

Harmony新兴的系统,学习以及开发上需要投入一些成本,走Android以前走的老路,但未来发展前景较好,可以学习一波

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初识WebGL

思路&#xff1a; 构建<canvas>画布节点&#xff0c;获取其的实例。使用getWebGLContext() 拿到画布上下文。拿到上下文用clearColor() 设置背景颜色。最后清空canvas画布,是为了清除颜色缓冲区。 html结构&#xff1a; <!DOCTYPE html> <html lang"en&…

w外链如何跳转微信小程序

要创建外链跳转微信小程序&#xff0c;主要有以下几种方法&#xff1a; 使用第三方工具生成跳转链接&#xff1a; 注册并登录第三方外链平台&#xff1a;例如 “W外链” 等工具。前往该平台的官方网站&#xff0c;使用手机号、邮箱等方式进行注册并登录账号。选择创建小程序外…

【华为HCIP实战课程二十一】OSPF区域间汇总配置详解,网络工程师

一、OSPF汇总和默认路由 1、大规模的OSPF网络配置路由汇总,减小路由表的规模。 2、路由汇总讲多条连续的IP前缀汇总成一条路由前缀。 3、可以避免网络中的路由震荡,提高网络的稳定性。 4、ABR/ASBR完成路由汇总。 [R4-ospf-1-area-0.0.0.0]abr-summary 11.1.0.0 255.255.…

在C#中使用指针

C#向开发人员隐藏了大部分基本内存管理操作&#xff0c;因为它使用了垃圾回收器和引用。但是&#xff0c;有时候我们也需要直接访问内存&#xff0c;例如&#xff1a;进行平台调用&#xff0c;性能优化等等。 .Net平台定义了两种主要数据类型&#xff1a;值类型和引用类型&…

前端零基础入门到上班:【Day2】开发环境VSCode安装

VSCode 安装教程&#xff1a;图文保姆教程 引言 在前端开发中&#xff0c;选择合适的代码编辑器是提高工作效率的重要一步。Visual Studio Code&#xff08;简称 VSCode&#xff09;作为一款强大的开源编辑器&#xff0c;因其简洁易用、功能强大、扩展性好而广受开发者喜爱。…

MES系列- 统计过程分析(SPC)实现

MES系列文章目录 ISA-95制造业中企业和控制系统的集成的国际标准-(1) ISA-95制造业中企业和控制系统的集成的国际标准-(2) ISA-95制造业中企业和控制系统的集成的国际标准-(3) ISA-95制造业中企业和控制系统的集成的国际标准-(4) ISA-95制造业中企业和控制系统的集成的国际标准…

面对复杂的软件需求:5大关键策略!

面对软件需求来源和场景的复杂性&#xff0c;有效地管理和处理需求资料是确保项目成功的关键&#xff0c;能够提高需求理解的准确性&#xff0c;增强团队协作和沟通&#xff0c;降低项目风险&#xff0c;提高开发效率。反之&#xff0c;项目可能面临需求理解不准确、团队沟通不…

react 基础学习笔记

1.react 语法 ①数据渲染 函数组件将HTML结构直接写在函数的返回值中 JSX只能有一个根元素 JSX插值写法 插值可以使用的位置 1.标签内容&#xff1b; 2.标签属性 JSX 条件渲染&#xff1a;三目运算符&#xff1b; JSX根据数据进行列表渲染&#xff1a;map()方法&#x…

Elastic Stack - FileBeat 入门浅体验

Filebeat 是 Elastic Stack 中的一个轻量级日志转发器&#xff0c;主要用于收集和转发日志数据。Filebeat 作为代理安装在您的服务器上&#xff0c;可以监控您指定的日志文件或位置&#xff0c;收集日志事件&#xff0c;并将其转发到 Elasticsearch 或 Logstash 进行索引。 一…

XCode16中c++头文件找不到解决办法

XCode16中新建Framework&#xff0c;写完自己的c代码后&#xff0c;提示“<string> file not found”等诸如此类找不到c头文件的错误。 工程结构如下&#xff1a; App是测试应用&#xff0c;BoostMath是Framework。基本结构可以参考官方demo&#xff1a;Mix Swift and …

“循环购体系:创新消费回馈模式引领电商新风尚“

各位听众&#xff0c;你们好&#xff0c;我是吴军&#xff0c;今天我想与你们分享一种创新且引人注目的商业模式——循环购体系。这是一种融合了消费回馈与积分制度的新型购物模式&#xff0c;它在顾客与商家之间搭建了一个全新的、互动性强的桥梁。 在循环购体系的运作中&…

云联网对等连接--实现内网互通

云联网 今天给大家介绍一款产品&#xff0c;腾讯云的云联网。 云联网&#xff1a;为您提供云上私有网络间&#xff08;VPC&#xff09;、VPC 与本地数据中心间&#xff08;IDC&#xff09;内网互联的服务&#xff0c;具备全网多点互联、路由自学习、链路选优及故障快速收敛等…

详细解读 CVPR2024:VideoBooth: Diffusion-based Video Generation with Image Prompts

Diffusion Models专栏文章汇总:入门与实战 前言:今天是程序员节,先祝大家节日快乐!文本驱动的视频生成正在迅速取得进展。然而,仅仅使用文本提示并不足以准确反映用户意图,特别是对于定制内容的创建。个性化图片领域已经非常成功了,但是在视频个性化领域才刚刚起步,这篇…

构建自然灾害预警决策一体化平台,筑牢工程安全数字防线

近年来&#xff0c;国家和部委也强调了要切实加强地质灾害监测预警。作为国内智慧应急领域的先行者&#xff0c;Mapmost持续探索利用数字孪生技术&#xff0c;推进自然灾害风险预警精细化&#xff0c;强化对监测数据的综合分析和异常信息研判处置。建立健全区域风险预警与隐患点…

.NET Core WebApi第7讲:项目的发布与部署

一、理解 二、项目的发布与部署 1、点击Publish进行发布 2、等待生成publish文件&#xff0c;如下图 3、把上图中发布的文件在服务器里面装上&#xff0c;即在windows的IIS里把它挂上去。如此便可以直接去访问当前的前/后端了。 &#xff08;1&#xff09; 注意&#xff1a;…

Python自动化测试中的Mock与单元测试实战

在软件开发过程中&#xff0c;自动化测试是确保代码质量和稳定性的关键一环。而Python作为一门灵活且强大的编程语言&#xff0c;提供了丰富的工具和库来支持自动化测试。本文将深入探讨如何结合Mock与单元测试&#xff0c;利用Python进行自动化测试&#xff0c;以提高代码的可…

前端获取csv或者excel 静态数据并使用

这里我将空格全部替换成了 || 好让我变成数组&#xff0c;从而拿到每一条数据中的第一项&#xff0c;相当于excel或者csv文件的第一列的东西 axios.get("/csv/zhongxiang").then((res) > {let rows res.data.split("\n");for (let row of rows) {let c…

Axios 请求超时设置无效的问题及解决方案

文章目录 Axios 请求超时设置无效的问题及解决方案1. 引言2. 理解 Axios 的超时机制2.1 Axios 超时的工作原理2.2 超时错误的处理 3. Axios 请求超时设置无效的常见原因3.1 配置错误或遗漏3.2 超时发生在建立连接之前3.3 使用了不支持的传输协议3.4 代理服务器或中间件干扰3.5 …

Windows 11 24H2:阻碍新更新的硬件和软件

由于 Microsoft 对特定设备和软件配置采取了保护措施或兼容性限制&#xff0c;数千名用户无法使用 Windows 11 24H2。 微软对使用可能与 Windows 11 24H2 冲突的硬件或应用程序的特定设备设置兼容性限制&#xff0c;从而导致崩溃、性能问题、死机或其他异常行为。 这些限制将…

HelloCTF [RCE-labs] Level 6 - 通配符匹配绕过

开启靶场&#xff0c;打开链接&#xff1a; GET传参cmd /[b-zA-Z_#%^&*:{}\-\<>\"|;\[\]]/ b-zA-Z 过滤b到Z范围内的任何单个字符 _ 过滤下划线 :{}\-\<>\"| 匹配这些符号之一 ;\[\] 匹配这些符号之一 可以尝试在Linux终端中做下面的几个实验&a…