自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于OpenHarmony5.0开发系统服务

本文介绍了OpenHarmony中系统服务(SA)的配置与实现过程。首先通过创建sa_profile子文件夹和BUILD.gn文件定义系统服务配置,其中3302.json文件详细配置了系统服务的运行进程、库路径等参数。重点分析了powermgr进程的启动流程,该进程通过sa_main加载多个系统服务库(如libbatteryservice.z.so等),并解析了这些库对应的源码结构和依赖关系。文章还详细列出了系统服务进程所需的权限和配置参数,为开发者理解OpenHarmony系统服务机制提供了清晰的实现路径

2025-09-01 14:29:39 359

原创 在OpenHarmony5.0上预置系统应用

本文介绍了在HarmonyOS系统中预置HAP应用的方法。通过修改BUILD.gn配置文件,可以将HAP包安装到/system/app/指定目录,并设置part_name和subsystem_name等参数。系统预装通过install_list.json文件控制,其中可配置应用目录和是否可卸载。应用保活和权限分别通过install_list_capability.json和install_list_permissions.json文件配置。这些配置文件位于vendor/hardmony目录下,共同完成系统应

2025-08-29 16:13:15 286

原创 基于OpenHarmony5.0挖掘 Init 进程

摘要:本文介绍了init进程配置文件的分类与加载机制,包括三类配置文件(init.cfg、子系统配置和厂商配置)的优先级。重点解析了InitSysAdj函数维持进程不被终止的原理(设置oom_score_adj为-1000),以及通过/system/etc/下的JSON格式cfg文件启动服务的方式。文中提供了设备充电服务配置示例,并指引开发者参考OpenHarmony官方文档了解服务开发规范。文章最后注明出处要求并引导关注相关技术公众号。(149字)

2025-08-28 15:37:44 312

原创 基于OpenHarmony5.0分析App的启动流程

SystemAbility实现机制分析:init进程通过解析cfg配置文件(如foundation.cfg)拉起SystemAbility进程,并传递json参数指定要加载的so库文件(如libbms.z.so对应包管理服务)。该机制实现了模块化服务管理,类似Android的systemserver架构。其中foundation进程作为核心容器,通过json配置动态加载各功能模块(PMS、WMS、AMS等),体现了OpenHarmony的服务化设计思想。

2025-08-27 16:43:37 214

原创 OpenHarmony5.0中的Napi之 - Cpp中获取ArkTs传递的参数

本文介绍了Node-API(Napi)在C++中处理ArkTS参数传递的方法。通过示例代码展示了如何获取参数、进行类型转换和返回值处理:1)使用napi_get_cb_info获取参数;2)通过napi_typeof进行类型判断;3)利用napi_get_value_double转换数值参数;4)最后用napi_create_double创建返回值。该示例演示了Napi接口开发的基本流程,适用于OpenHarmony系统开发场景。

2025-08-26 14:35:50 187

原创 基于OpenHarmony5.0分析系统启动

摘要:OpenHarmony系统通过init进程进入用户态,启动/etc目录下配置的服务完成系统启动。其中foundation进程通过sa_main可执行文件启动,类似Android的zygote。sa_main源码位于foundation/systemabilitymgr/safwk,编译后生成/system/bin/sa_main。该进程使用CFI安全防护技术,依赖系统基础库,是系统能力管理的关键组件。更多技术细节可参考官方文档或关注相关技术公众号。(150字)

2025-08-25 15:11:37 221

原创 开发OpenHarmony5.0 原生应用,ArkTS语法学这些就够了

本文总结了HarmonyOS开发中的TypeScript基础要点:1.严格类型声明,推荐使用let+类型标注;2.有效数据类型包括number/string/boolean/数组,避免使用any;3.方法特性包括参数默认值、可选参数、重载和不定参数处理;4.模块化通过export/import实现共享;5.字符串拼接支持+和模板语法;6.类与接口语法类似Java,需注意构造方法实现;7.泛型与Java机制相同;8.集合操作参考官方文档。特别强调:高版本(api12+)类型检查更严格,需规范语法避免报错。

2025-08-22 10:38:25 334

原创 OpenHarmony5.0系统架构-从编译角度分析

本文介绍了OpenHarmony系统的层级架构和编译体系。系统采用分层设计,包括内核层、系统服务层、框架层和应用层,通过"系统>子系统>部件"逐级展开。子系统由部件构成,部件是最小可复用单元,包含源码和编译配置。编译过程使用GN生成Ninja文件,通过hb命令行工具执行。文中详细说明了子系统配置文件、部件定义文件(bundle.json)和模块定义(GN文件)的结构,并列举了不同编译目标的定义方式。系统支持根据设备需求裁剪子系统和部件,实现灵活部署。

2025-08-21 15:56:57 643

原创 OpenHarmony5.0之竖向通信:arkts调用cpp代码

摘要:本文分析了ArkTS与C++在OpenHarmony系统中的竖向通信机制,以屏幕刷新率设置为例展开说明。在Settings应用中通过settings.setValueSync接口调用,最终通过NAPI机制转换为C++实现。具体流程涉及数据共享服务(DataShareHelper)进行URI处理,实现键值对更新操作。文章详细展示了NAPI接口注册、函数实现和日志追踪过程,并建议使用HiSimplePerf工具抓取trace进行深入分析。该机制体现了OpenHarmony中应用层与框架层之间的跨语言通信实

2025-08-21 15:49:22 216

原创 基于OpenHarmony5.0新增系统接口给应用使用

本文详细介绍了在OpenHarmony系统中新增系统接口的完整流程。以系统设置接口为例,首先在napi头文件和cpp文件中声明并实现新接口函数;然后通过napi模块注册该函数;接着在.d.ts文件中暴露给应用层;最后编译fullsdk并替换开发环境中的ets部分。整个过程涵盖了从底层实现到上层调用的完整链路,展示了OpenHarmony作为开源系统在接口扩展方面的灵活性,为开发者提供了系统级功能扩展的参考范例。

2025-08-21 15:36:49 802

原创 OpenHarmony5.0系统卡顿优化

基于OpenHarmony5.0,定位了系统卡顿的问题。

2025-08-21 15:28:03 784

空空如也

空空如也

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

TA关注的人

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