自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 收藏
  • 关注

原创 鸿蒙OpenHarmony轻量系统源码分析

当前的开源鸿蒙LiteOS-M和LiteOS-A是通过gn和ninja编译的。Gitee官方只介绍了LiteOS-M的gn + ninja编译的流程,针对M3使用Keil编译的流程可能要参考社区代码使用Keil编译ARM Cortex-M3时,只需要kernel_liteos_m仓库和Keil工程仓库,不需要全量的OpenHarmony代码由此可知,开源鸿蒙轻量系统只是简单的由LiteOS-M内核 + 一些芯片厂商的驱动组成LiteOS-M 编码规范OpenHarmony轻内核编码规范。

2024-04-23 15:49:16 1223

原创 鸿蒙中芯片与开发板对应的源码(硬件相关的部分)

开源鸿蒙通过芯片仓存放指定芯片和指定的代码,硬件相关的代码和纯逻辑代码是分开存放的因为硬件各种各样,为了学习方便,这里选择几个核的QEMU模拟器(不使用硬件,使用虚拟开发板)verdor芯片仓的开发板配置device芯片仓的源码和配置。

2024-04-23 15:47:19 925

原创 鸿蒙OpenHarmony上电的第一行代码,boot代码简述

本来芯片上电后的第一行代码应该是能在源码中看到的,但是OpenHarmony中使用了ARM的CMSIS官方库,也就是说上电时的第一行代码已经融合进编译器里面去了,所以你看不到,只能看到第二行代码,那就是 Reset_Handler() 复位中断函数。上电的第一行代码是硬件复位中断的入口,也就是RAM零地址的代码,属于boot代码的一部分。搜索 Reset_Handler 这个函数,这是上电后执行的第二行代码。4.鸿蒙开发系统底层方向。5.鸿蒙音视频开发方向。6.鸿蒙车载开发方向。7.鸿蒙南向开发方向。

2024-04-23 15:43:38 421

原创 OpenHarmony 鸿蒙build编译模块的原理和系统配置解析

目的:使用这个模块里的脚本、配置来编译整个开源鸿蒙系统,生成一个操作系统可执行文件

2024-04-23 15:39:01 1079

原创 BUILD.gn文件怎么写,Gn + Ninja编译一个Hello world程序的例子Demo

simple_build/ 下载源码后进入其中的子目录。这是Gn官方的例子,在Gn的源码里面。4.鸿蒙开发系统底层方向。ls 先看看里面的文件。1.项目开发必备面试题。5.鸿蒙音视频开发方向。6.鸿蒙车载开发方向。7.鸿蒙南向开发方向。

2024-04-23 15:35:07 401

原创 Ubuntu18.04下安装Gn软件(和Ninja配合使用的,代替CMake、Automake + Makefile)

sudo cp ./out/gn /usr/bin 将编译完的程序拷贝到默认程序路径,不这么做的话就需要你自己加环境变量了,make install命令也是类似的作用。/lib/llvm-8/bin/clang++ clang++ 创建链接。sudo apt-get install clang-8 安装Clang-8或以上版本编译器。如果你使用的是Windows + MSYS2 + MinGW64,不能安装Gn,只能使用。/lib/llvm-8/bin/clang clang 创建链接。

2024-04-23 15:32:20 587

原创 运行的Ninja例子,build.ninja文件怎么写?

默认的构建文件为当前目录下的 build.ninja 文件,类似于Linux中的Makefile文件。将这个目录加入到Linux也就是msys2的环境变量中,如果你曾经添加过,则就不要重复添加了。新建一个mian.c文件,写上hello world输出。的 /mingw64/bin/ 目录下。进入到本仓库的ninja演示目录。4.鸿蒙开发系统底层方向。1.项目开发必备面试题。5.鸿蒙音视频开发方向。6.鸿蒙车载开发方向。7.鸿蒙南向开发方向。

2024-04-23 15:28:50 899

原创 OpenHarmony4.1的操作系统模拟器运行环境

Ubuntu回到OpenHarmony源码根目录下,使用命令行用QEMU模拟器运行开源鸿蒙系统。模拟器软件,可以在Windows下安装,也可以在Linux发行版下安装。Cortex-M4的轻型开源鸿蒙系统。我准备在QEMU模拟器中运行。4.鸿蒙开发系统底层方向。1.项目开发必备面试题。5.鸿蒙音视频开发方向。6.鸿蒙车载开发方向。7.鸿蒙南向开发方向。

2024-04-23 15:21:13 1194

原创 OpenHarmony4.1源码下载、编译,生成OHOS_Image可执行文件的最简易流程

执行 sudo docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2 将源码路径导入到Docker中。安装完之后进入系统,使用命令行将官方源换成华为源,这样下载软件时更快。将你下载好的鸿蒙源码在Ubuntu下解压,进入已经解压的源码根目录。在Ubuntu系统中解压上面已经下载的openHarmony源码。准备一台Windows电脑。

2024-04-23 15:18:01 1062

原创 OpenHarmony4.1源码下载和编译流程

开发期间的代码不可能在每一种环境下都没有错,或者找个做过鸿蒙系统开发的,让他把他的虚拟机直接打包发给你,这样最省事。在编译结束后,编译所生成的文件都会被存放在out/{device_name}/目录下,结果镜像输出在out/{device_name}/packages/phone/images/目录下。bash build/prebuilts_download.sh 安装和芯片相关的编译器和二进制工具,全自动的,会下载的同时进行安装,要等待一段时间,有进度条。如果依然编译有报错,那还可以试试Docker。

2024-04-23 15:14:11 1414

原创 OpenHarmony轻型系统全量源码4.1版本下载流程

如果你下载特定类型(轻型小型标准)、特定芯片的系统,则需要在Linux发行版如Ubuntu下进行,总共11G左右;如果你下载OpenHarmony4.0全量代码,则最简单,直接网址下载,总共30G左右。4.鸿蒙开发系统底层方向。1.项目开发必备面试题。5.鸿蒙音视频开发方向。6.鸿蒙车载开发方向。7.鸿蒙南向开发方向。

2024-04-23 15:11:05 1267

原创 2024年鸿蒙技术可以学习吗 ?

学习路线图中的每一个技术点都能够紧贴企业需求,经过多次真实实践,每一个知识点、每一个项目,都是码牛课堂鸿蒙研发团队精心打磨和深度解析的成果,注重对学生的细致教学,每一步都确保学生能够真正理解和掌握。路线图将包含完全基于鸿蒙内核开发的应用,比如一次开发多端部署、自由流转、元服务、端云一体化等,多方位的学习内容让学生能够高效掌握鸿蒙开发,少走弯路,真正理解并应用鸿蒙的核心技术和理念。想象一下,当你手中的手机、平板、电脑,甚至是家中的智能家居设备,都能够无缝连接,实现信息的自由流通,这将是一种怎样的体验?

2024-04-22 22:16:00 269

原创 HarmonyOS ArkUI容器类组件-相对布局容器(RelativeContainer)

ArkUI 开发框架提供了 RelativeContainer 组件实现相对布局的能力,该布局适用于复杂场景下多元素对齐的情况。该组件可以包含多个子组件,本节笔者简单介绍一下 RelativeContainer 的使用。

2024-04-22 16:52:08 472

原创 HarmonyOS ArkUI容器类组件-计数器组件(Counter)

ArkUI 开发框架提供了 Counter 组件实现计数器功能,计数器的使用场景很常见,比如购物类 APP 在添加或者减少商品的时候会使用到计数器,它可以包含一个子组件,本节笔者简单介绍一下 Counter 的使用。

2024-04-22 16:39:11 518

原创 HarmonyOS ArkUI容器类组件-角标组件(Badge)

ArkUI 开发框架提供了 Badge 容器组件,它用来标记提示信息的容器组件,最常用的场景比如 `Launcher` 桌面上的消息提示等,本节笔者简单介绍一下 **Badge** 的使用。

2024-04-22 16:37:13 813

原创 HarmonyOS ArkUI容器类组件-Tabs组件(Tabs、TabContent)

ArkUI开发框架提供了一种可以通过页签进行内容视图切换的容器组件,每个页签对应一个内容视图的容器组件 Tabs ,它允许包含子组件且子组件只能是 TabContent ,本节笔者介绍一下 Tabs 的简单使用。

2024-04-22 16:34:03 1124

原创 HarmonyOS ArkUI容器类组件-侧边栏容器(SideBarContainer)

(type?type:设置侧边栏的显示类型,定义了一下 2 中类型:Embed:侧边栏嵌入到组件内,侧边栏和内容区并列显示。Overlay:侧边栏浮在内容区上面。build() {Column() {Text("侧边栏区域").width(10)Column() {Text("侧边栏区域")left?: number;top?: number;width?: number;height?: number;icons?

2024-04-22 16:12:02 595

原创 HarmonyOS ArkUI容器类组件-格栅布局容器(GridContainer)

ArkUI开发框架提供了纵向排布栅格布局容器 `GridContainer` ,它仅在栅格布局场景中使用。

2024-04-22 16:00:02 364

原创 HarmonyOS ArkUI容器类组件-层叠布局容器(Stack)

ArkUI开发框架提了堆叠容器组件 `Stack` ,它的布局方式是把子组件按照设置的对齐方式顺序依次堆叠,后一个子组件覆盖在前一个子组件上边。

2024-04-22 15:57:58 544

原创 HarmonyOS ArkUI容器类组件-弹性布局容器(Flex)

(value?direction?wrap?: FlexWrap;alignItems?value:设置子组件的排列样式,direction:设置子组件的的排列方向即主轴方向,Row(默认值):子组件水平排列,即主轴为水平方向纵轴为竖直方向,子组件由左向右排列。RowReverse:子组件水平排列,即主轴为水平方向纵轴为竖直方向,子组件由右向左排列。Column:子组件竖直排列,即主轴为垂直方向,起点在上边,子组件由上到下排列。

2024-04-22 15:43:24 282

原创 HarmonyOS ArkUI容器类组件-线性布局容器(Row、Column)

线性容器类表示按照水平方向或者竖直方向排列子组件的容器,ArkUI开发框架通过 `Row` 和 `Colum` 来实现线性布局。

2024-04-22 14:54:55 435

原创 抗衡苹果安卓!华为宣布一年内将99%主流应用迁移原生鸿蒙

在未来一年时间里,华为将全力推进99%以上手机使用时间占比的5000个应用完全迁移到鸿蒙原生操作系统上,以实现操作系统和应用生态的统一。路线图将包含完全基于鸿蒙内核开发的应用,比如一次开发多端部署、自由流转、元服务、端云一体化等,多方位的学习内容让学生能够高效掌握鸿蒙开发,少走弯路,真正理解并应用鸿蒙的核心技术和理念。路线图包括ArkTS基础语法、鸿蒙应用APP开发、鸿蒙能力集APP开发、次开发多端部署开发、物联网开发等九大模块,六大实战项目贯穿始终,由浅入深,层层递进,深入理解鸿蒙开发原理!

2024-04-20 22:37:30 629

原创 OpenHarmony 查看文档与媒体文件功能实现(API 10)

应用使用等接口,实现了picker拉起文档编辑保存、拉起系统相册图片查看、拉起视频并播放的功能。

2024-04-20 22:10:00 945

原创 OpenHarmony 文件分享与访问

本示例主要展示了沙箱文件分享相关的功能,使用等接口,实现了获取文件uri、创建沙箱文件、提供want中操作want常数和解释Flags说、应用组件间的信息传递的功能。

2024-04-20 22:07:56 671

原创 OpenHarmony 媒体管理合集

网络流播放能力音视频播控能力音量调节能力。

2024-04-20 22:05:56 733

原创 OpenHarmony 文件管理组件功能介绍

本示例主要展示了文件管理相关的功能,使用等接口,实现了增添文件、删除文件、查找指定类型文件文件、复制并移动文件、切换加密分区和预览图片、监听文件的功能;

2024-04-20 22:03:32 1111

原创 OpenHarmony 文件管理—应用接入数据备份恢复(API 10)

应用接入数据备份恢复需要通过配置BackupExtensionAbility实现。BackupExtensionAbility,是Stage模型中扩展组件的派生类。开发者可以通过修改配置文件定制备份恢复框架的行为,包括是否允许备份恢复,备份哪些文件等。本sample主要给备份流程提供应用,用于生成数据和显示数据。

2024-04-20 22:00:03 770

原创 OpenHarmony 数据管理—标准化数据定义与描述

本示例主要使用展示了标准化数据定义与描述的功能,在新增预置媒体文件后,对媒体文件的utd标准类型获取、utd类型归属类型查询、获取文件对应的utd类型的默认图标、支持自定义数据类型等功能。实现过程中还使用到等接口。在dev_eco开发时的资源配置目录中添加自定义数据类型配置文件utd.json5,路径:entry/src/main/resources/rawfile/arkdata/utd;utd.json5中新建自定义数据类型数组UniformDataTypeDeclarations;

2024-04-20 21:55:56 685

原创 OpenHarmony 数据管理—首选项

本示例使用接口,展示了使用首选项持久化存储数据的功能。

2024-04-20 21:53:09 373

原创 求求大家了!别再学鸿蒙了!实在卷不动了~

年轻人搞鸿蒙大有前途,也是大有钱途啊,当前鸿蒙工程师收入比安卓工程师高!

2024-04-19 23:03:13 977

原创 OpenHarmony容器文件—avro

本软件是参照开源软件源码适配OpenHarmony实现的数据序列化系统,支持丰富的数据结构,将其转化成便于存储或传输的二进制数据格式。它同时也是一个容器文件,用于存储持久数据。

2024-04-19 15:39:17 304

原创 OpenHarmony(数据)通信协议、数据存储—protobuf

ProtoBuf(protocol buffers) 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。,是一种灵活,高效,自动化机制的结构数据序列化方法比XML更小,更快,更为简单。本项目主要是OpenHarmony系统下以为主要依赖开发,主要接口针对OpenHarmony系统进行合理的适配研发。

2024-04-19 15:34:40 460

原创 OpenHarmony环境的ArangoDB数据库—@ohos/arangojs

是一款适用于 openharmony 环境的 ArangoDB 数据库 javascript 版驱动。本库基于arangojs原库 v8.3.1 版本进行适配。

2024-04-19 15:30:24 289

原创 OpenHarmony 对象序列化库——msgpack

MessagePack是一个非常高效的对象序列化库。它像JSON,但速度很快,而且很小。

2024-04-19 15:22:22 368

原创 OpenHarmony 关系映射数据库—dataORM

dataORM 是一个轻量级 ORM(对象关系映射)库,用于简化本地数据库的操作。提供了高效的数据库访问性能和低内存消耗。dataORM 支持多线程操作、链式调用、备份、升级、缓存等特性等功能。其设计理念是轻量、快速且易于使用,帮助开发者快速构建高性能的应用程序。

2024-04-19 15:17:45 681 1

原创 OpenHarmony 对存储框架—MMKV

一款小型键值对存储框架支持存储 number、boolean、string、Set类型数据存储支持继承组件中 SerializeBase.ets 的 class 类对象的序列化反序列化支持存储数据备份支持存储数据恢复。

2024-04-19 15:06:11 256

原创 OpenHarmony 文件操作功能fileio-extra

创建文件/文件夹。删除文件/文件夹。移动文件/文件夹(可选择是否覆盖同名文件/文件夹)。读写文件。清空文件夹。拷贝文件/文件夹。判断文件/文件夹是否存在。

2024-04-19 15:03:43 403

原创 OpenHarmony打造的一款磁盘缓存库—DiskLruCache

本项目基于开源库支持应用内存空间存储文件。支持存储ArrayBuffer数据类型和File文件路径。支持存储容量的动态设置。

2024-04-19 15:00:51 243

原创 你做好准备去车企面试了吗?最新鸿蒙车载面试案例!

近日华为鸿蒙 OS 官微宣布,首批汽车行业伙伴加入鸿蒙生态。其实在此之前比亚迪也早早的与华为达成了合作造车,搭载的车机系统也是 HarmonyOS。目前局势看来要开始进军一些车企,但最终会不会像手机APP应用端这么疯狂不,这个不好判断,但目前据我看到的一些为了帮助到大家能够高效的应对面试官的各种提问,由于内容太多,平台篇幅长度限制不能一一的在此展示,为此我将其整理成了文档格式,

2024-04-18 22:35:18 534

原创 OpenHarmony UI开发-组件material-dialogs

material-dialogs是自定义对话框库。

2024-04-18 21:16:08 414

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除