性能提升80%?OpenHarmony中Python模块优化技巧,你不可错过的秘密武器

第一章:OpenHarmony中Python环境概述

OpenHarmony作为一个面向多设备的分布式操作系统,其生态支持多种开发语言,Python作为广泛应用的高级编程语言,在OpenHarmony的开发、测试与工具链构建中扮演着重要角色。尽管OpenHarmony核心系统基于C/C++实现,但在开发辅助、自动化脚本、构建系统和测试框架中,Python被广泛用于提升开发效率。

Python在OpenHarmony中的主要用途

  • 构建系统脚本:OpenHarmony使用Python编写部分编译构建逻辑,如gn生成器调用、ninja文件解析等
  • 自动化测试:通过Python编写HAT(HarmonyOS Automated Testing)框架的测试用例
  • 设备管理工具:利用Python的串口或ADB库与开发板通信,实现日志抓取和设备控制
  • 代码生成与配置管理:自动化生成IDL接口文件、资源索引表等中间产物

典型Python依赖环境

依赖包用途说明
python3.8+确保兼容OpenHarmony构建脚本的语法要求
pip安装第三方库,如pyserial、requests等
virtualenv隔离项目依赖,避免版本冲突

配置Python开发环境示例

# 安装Python3及pip
sudo apt update && sudo apt install -y python3 python3-pip python3-venv

# 创建虚拟环境
python3 -m venv oh_env
source oh_env/bin/activate

# 安装常用库
pip install pyserial requests

# 验证Python版本是否符合要求
python --version
上述命令依次完成环境准备、依赖隔离和基础库安装,为后续参与OpenHarmony开发提供稳定Python运行时支持。

第二章:OpenHarmony与Python的集成配置

2.1 OpenHarmony系统架构与Python运行时适配原理

OpenHarmony采用分层设计,包含内核层、系统服务层、框架层和应用层。其微内核架构支持多语言运行环境,为Python等动态语言的集成提供了基础。
Python运行时嵌入机制
通过轻量级解释器移植,Python可在OpenHarmony的用户态服务中以共享库形式运行。关键在于对接HDF(Hardware Driver Foundation)驱动模型与ACE(Ability Cross-platform Engine)框架。

// 示例:注册Python native模块
#include "python_api.h"
static PyModuleDef module = {
    .m_name = "harmony",
    .m_size = -1,
    .m_methods = HarmonyMethods
};
PyMODINIT_FUNC PyInit_harmony(void) {
    return PyModule_Create(&module);
}
该代码定义了一个原生扩展模块,用于桥接Python与OpenHarmony底层服务。其中m_methods指向可被Python调用的C函数数组,实现跨语言交互。
资源调度与内存管理协同
Python的GC机制需与OpenHarmony的内存回收策略对齐,避免双重重入问题。通过统一任务调度器,将Python协程映射为系统轻量级线程。

2.2 在OpenHarmony中部署Python解释器的实践步骤

在OpenHarmony设备上部署Python解释器需首先确保系统支持POSIX标准并具备足够的存储空间。推荐使用轻量级Python实现如MicroPython或通过交叉编译CPython适配ARM架构。
环境准备与依赖安装
确保开发主机已安装必要的构建工具链,包括gcc、make及OpenHarmony SDK。目标设备需启用开发者模式,并通过hdc(HarmonyOS Device Connector)建立连接。
  1. 下载适用于嵌入式平台的Python源码分支
  2. 配置交叉编译环境变量以匹配OpenHarmony内核版本
  3. 执行编译并生成静态链接的解释器二进制文件
部署与验证
将编译后的Python二进制文件推送至设备系统分区:
hdc file send python3 /system/bin/python3
hdc shell "chmod +x /system/bin/python3"
该命令将Python解释器推送到设备并赋予可执行权限。随后可通过hdc shell python3 --version验证部署结果,输出应显示Python版本信息,表明运行环境已就绪。

2.3 跨平台模块编译与依赖管理技巧

在构建跨平台应用时,统一的模块编译策略与精准的依赖管理至关重要。不同操作系统和架构对二进制兼容性有严格要求,需借助工具链实现可复现的构建过程。
使用 Go Modules 管理依赖版本
Go 的模块系统支持语义化版本控制,确保跨环境一致性:
module example/app

go 1.20

require (
    github.com/sirupsen/logrus v1.9.0
    golang.org/x/sys v0.12.0
)
该配置锁定日志库和系统调用库版本,避免因依赖漂移导致编译失败或运行时异常。
交叉编译实践
通过环境变量指定目标平台进行编译:
  • GOOS=linux GOARCH=amd64:生成 Linux 64位二进制
  • GOOS=windows GOARCH=386:生成 Windows 32位可执行文件
结合 CI/CD 流程可自动化多平台产物打包,提升发布效率。

2.4 Python与Native代码交互机制解析(FFI/IPC)

在高性能计算与系统级编程中,Python常需与C/C++等原生代码协同工作。主要交互方式分为两类:外部函数接口(FFI)和进程间通信(IPC)。
使用ctypes调用Native函数
import ctypes

# 加载共享库
lib = ctypes.CDLL("./libmath.so")
lib.add.argtypes = [ctypes.c_int, ctypes.c_int]
lib.add.restype = ctypes.c_int

result = lib.add(5, 7)
print(result)  # 输出: 12
该代码通过ctypes加载本地共享库libmath.so,声明函数参数与返回类型后直接调用。适用于简单、低开销的函数调用场景。
交互方式对比
机制语言支持性能复杂度
FFI (如ctypes)C兼容库高低
IPC (如socket)跨语言中高

2.5 集成过程中的常见问题排查与性能基线测试

在系统集成过程中,网络延迟、数据格式不一致和认证失败是常见问题。使用日志聚合工具(如ELK)集中分析各服务输出,可快速定位异常源头。
典型错误排查清单
  • 检查服务间通信协议是否匹配(HTTP/gRPC)
  • 验证API密钥或OAuth令牌的有效性
  • 确认数据库连接字符串与目标环境一致
性能基线测试示例

# 使用wrk进行HTTP接口压测
wrk -t12 -c400 -d30s http://api.service/v1/users
该命令模拟12个线程、400个并发连接,持续30秒。重点关注每秒请求数(RPS)和延迟分布,建立性能基线以对比优化前后差异。
关键性能指标对照表
指标预期值告警阈值
平均响应时间<200ms>500ms
错误率<0.5%>2%
RPS>1500<800

第三章:核心优化技术详解

3.1 利用JIT加速Python模块执行效率

Python作为解释型语言,其执行效率常受限于运行时解析开销。引入即时编译(Just-In-Time, JIT)技术可显著提升关键模块的执行速度。
使用Numba实现函数级JIT加速
Numba是专为数值计算设计的JIT编译器,通过装饰器将Python函数编译为机器码。

from numba import jit
import numpy as np

@jit(nopython=True)
def compute_sum(arr):
    total = 0.0
    for i in range(arr.shape[0]):
        total += arr[i] * arr[i]
    return total

data = np.random.rand(1000000)
result = compute_sum(data)
@jit(nopython=True) 启用高性能模式,强制将函数完全编译为原生代码,避免回退到Python解释执行。参数 arr 应为NumPy数组,以确保内存连续性和类型推断准确。
JIT优化效果对比
方法执行时间(ms)加速比
纯Python循环1201x
Numba JIT815x
JIT在首次调用时进行编译,后续调用直接执行本地机器码,适合高频调用的计算密集型函数。

3.2 内存管理优化与对象生命周期控制策略

在高性能系统中,内存管理直接影响应用的响应速度与稳定性。通过精细化的对象生命周期控制,可显著降低GC压力。
对象池复用机制
使用对象池减少频繁创建与销毁的开销:
// 对象池示例:sync.Pool 缓存临时对象
var bufferPool = sync.Pool{
    New: func() interface{} {
        return new(bytes.Buffer)
    },
}

func getBuffer() *bytes.Buffer {
    return bufferPool.Get().(*bytes.Buffer)
}

func putBuffer(buf *bytes.Buffer) {
    buf.Reset()
    bufferPool.Put(buf)
}
上述代码利用 sync.Pool 实现缓冲区对象复用。New 字段提供初始化函数,Get 获取实例,Put 归还并重置状态,有效减少内存分配次数。
内存逃逸控制策略
  • 避免局部变量被外部引用,防止栈逃逸到堆
  • 小对象优先值类型传递,减少指针间接访问开销
  • 结合 go build -gcflags="-m" 分析逃逸情况

3.3 多线程与协程在OpenHarmony中的高效应用

在OpenHarmony系统中,多线程与协程机制为高并发任务提供了高效的执行模型。通过合理使用线程池与纤程调度,开发者可在保证响应性的同时降低资源消耗。
协程的轻量级并发优势
OpenHarmony支持基于纤程(Fiber)的协程实现,相比传统线程显著减少内存开销。每个线程可承载数千个协程,适用于I/O密集型场景。

// 启动一个协程处理异步任务
auto fiber = std::make_shared<Fiber>([]() {
    OHOS::HiviewDFX::HiLog::Info(LOG_LABEL, "协程执行中...");
    Fiber::Sleep(100); // 模拟异步等待
});
FiberScheduler::GetInstance()->Post(fiber);
上述代码通过FiberScheduler提交协程任务,由运行时统一调度。协程挂起时不阻塞线程,提升CPU利用率。
线程与协程协同策略
  • 主线程负责UI更新与事件分发
  • 工作线程执行耗时计算
  • 协程处理网络请求与文件读写
该分层结构确保系统响应流畅,同时最大化并发能力。

第四章:实战性能调优案例分析

4.1 图像处理模块的CPU耗时优化实战

在图像处理模块中,CPU耗时主要集中在像素矩阵运算与滤波操作。通过引入SIMD(单指令多数据)指令集优化核心循环,显著提升并行处理能力。
使用SIMD加速灰度化处理
void grayscale_simd(uint8_t* rgb, uint8_t* gray, int width, int height) {
    for (int i = 0; i < width * height * 3; i += 24) {
        __m256i pixel_block = _mm256_loadu_si256((__m256i*)&rgb[i]);
        // 提取R/G/B分量,加权求和转换为灰度值
        __m256i gray_vals = _mm256_srai_epi16(_mm256_add_epi16(
            _mm256_maddubs_epi16(pixel_block, _mm256_set1_epi16(77 + 151 + 28)),
            _mm256_set1_epi16(128)), 8);
        _mm256_storeu_si256((__m256i*)&gray[i/3], gray_vals);
    }
}
上述代码利用AVX2指令集一次处理24个字节(8个RGB像素),通过向量化乘加运算减少循环次数,灰度转换效率提升约3.5倍。
性能对比数据
优化方式处理时间(ms)提速比
原始循环1281.0x
SIMD优化363.56x
OpenMP + SIMD1210.7x

4.2 数据序列化与通信瓶颈的压缩提速方案

在分布式系统中,数据序列化效率直接影响网络传输性能。低效的序列化方式会导致带宽浪费和延迟增加。
主流序列化协议对比
  • JSON:可读性强,但体积大、解析慢
  • XML:结构清晰,冗余信息多
  • Protocol Buffers:二进制编码,体积小、速度快
  • Apache Avro:支持模式演化,适合流式数据
高效序列化示例(Go语言)

message := &User{Name: "Alice", ID: 1001}
data, _ := proto.Marshal(message) // 序列化为紧凑二进制
该代码使用 Protocol Buffers 对结构体进行序列化,生成的字节流比 JSON 小 60% 以上,且编解码速度提升 3~5 倍。
压缩策略优化表
策略压缩率CPU开销
Gzip75%中等
Zstandard80%低
NoCompression0%无

4.3 模块冷启动时间缩短技巧与预加载机制设计

预加载策略设计
为缩短模块冷启动时间,可采用异步预加载机制,在系统空闲期提前加载高频模块。通过分析用户行为日志,构建模块调用热度图谱,优先预载 Top 10% 模块。
  • 静态资源预加载:利用浏览器 prefetch 指令提前获取资源
  • 动态模块懒初始化:在主流程外启动轻量级初始化线程
  • 缓存 warmed-up 实例池:复用已初始化的模块实例
代码实现示例
func PreloadModule(name string) {
    go func() {
        module := LoadModule(name)     // 异步加载
        module.Init()                  // 初始化
        ModulePool.Put(name, module)   // 存入实例池
    }()
}
上述代码通过 goroutine 在后台加载并初始化模块,LoadModule 负责解析依赖,Init() 执行注册逻辑,最终存入全局池 ModulePool,供后续快速获取。

4.4 基于性能剖析工具的热点函数识别与重构

性能优化的关键在于精准定位系统瓶颈。通过使用如 pprof、perf 等性能剖析工具,可采集程序运行时的 CPU 使用、函数调用频次与执行时间等数据,进而识别出占用资源最多的“热点函数”。
使用 pprof 识别热点
以 Go 语言为例,可通过导入 net/http/pprof 包启用内置性能分析接口:
import _ "net/http/pprof"
func main() {
    go func() {
        log.Println(http.ListenAndServe("localhost:6060", nil))
    }()
    // 正常业务逻辑
}
启动后访问 http://localhost:6060/debug/pprof/profile 获取 CPU 剖析数据。pprof 分析结果会明确指出耗时最长的函数调用路径。
重构策略
识别热点后,常见优化手段包括:
  • 减少高频函数中的内存分配
  • 引入缓存避免重复计算
  • 算法复杂度降级(如 O(n²) → O(n log n))
通过持续剖析与迭代重构,系统性能可实现数量级提升。

第五章:未来展望与生态发展

随着云原生技术的持续演进,Kubernetes 已成为构建现代分布式系统的基石。未来的发展将更加聚焦于边缘计算、Serverless 架构与跨集群管理能力的深度融合。
服务网格的无缝集成
Istio 与 Linkerd 正在推动服务间通信的标准化。通过 CRD 扩展控制平面,可实现细粒度流量控制:
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: reviews-route
spec:
  hosts:
    - reviews.prod.svc.cluster.local
  http:
    - route:
        - destination:
            host: reviews.prod.svc.cluster.local
            subset: v2
          weight: 30
        - destination:
            host: reviews.prod.svc.cluster.local
            subset: v1
          weight: 70
多运行时架构的兴起
Dapr 等项目正推动应用与基础设施解耦。开发者可通过标准 API 调用状态管理、事件发布等能力,无需绑定特定平台。
  • 跨语言支持:Java、Go、Python 均可接入 Dapr sidecar
  • 组件可插拔:存储、消息中间件可动态替换
  • 本地调试即生产语义:开发环境模拟 K8s 分布式调用链
AI 驱动的运维自动化
Prometheus 结合机器学习模型,已可用于异常检测与容量预测。某金融客户部署 Kubeflow 实现日志模式识别,将故障定位时间从小时级缩短至分钟级。
指标传统运维AI增强方案
MTTR45分钟8分钟
告警准确率67%93%

用户请求 → Ingress Gateway → Service A → Dapr Sidecar → Redis / Kafka

↑↓ 指标上报 → Prometheus + Grafana → Alertmanager → 自动扩缩容

相关推荐

深入解析 OpenHarmony 构建系统-1

本文详细解析了 OpenHarmony 构建系统中的一个关键 Python 脚本,介绍了其代码结构、功能和使用方法。

qq_42017767的博客 1211

【OpenHarmony】开发环境搭建

最近手头入手了一块 STM32MP157 开发板,可以运行 OpenHarmony3.0,本节分享一下 OpenHarmony 开发环境的搭建,主要是在 Linux 下使用编译工具编译源码,将编译完的结果传到 Windows 下,然后使用 STM32Programmer 下载到 STM32MP157 芯片上

嵌入式学习记录站点 6539

鸿蒙开发实战项目(十三):简易计算器(ArkTS)

基于基础组件、容器组件,实现一个支持加减乘除混合运算的计算器。由于数字都是双精度浮点数,在计算机中是二进制存储数据的,因此小数和非安全整数(超过整数的安全范围[-Math.pow(2, 53),Math.pow(2, 53)]的数据)在计算过程中会存在精度丢失的情况。

斌擎科技 2659

鸿蒙系统设备上的完整Python发布了

你是不是被设备开发环境搭建惹恼过? 你是不是因为一堆编译错误而崩溃过? 你是不是对烧写设备时需要的那5分钟感到无语? …… 现在,另外一种开发选择真的来了!!!! 大家好,我是唐佐林。怀着无比激动的心情,再再再次向大家介绍我的这个Python开源项目。并且这次是带着诚意来的,直接上手的Python完整版已经可下载使用了。不像前几次那样,说好了是Python,可是最终还是需要编译C代码,还是需要烧写设...

月梦工作室 3737

tkinter表格进阶:5分钟实现CSV数据可视化编辑界面(含右键菜单配置)

本文详细介绍了如何使用Python的tkintertable库快速构建CSV数据可视化编辑界面。通过导入导出CSV数据、深度定制右键菜单(如复制、插入行、删除行)以及实现单元格验证等进阶功能,开发者能在5分钟内创建一个可嵌入自动化流程的专业级桌面数据编辑工具,显著提升数据处理效率。

931

DDR3性能优化实战:如何用Xilinx MIG控制器实现800MHz稳定读写(7系列FPGA版)

本文深入探讨了在Xilinx 7系列FPGA上使用MIG控制器实现DDR3存储器800MHz稳定高速读写的实战优化技巧。文章聚焦于高级时序调优、Bank Machine调度策略、用户接口设计优化以及利用ILA进行信号完整性调试,旨在帮助工程师突破性能瓶颈,实现接近理论峰值的稳定带宽,并为进一步冲刺更高频率提供进阶调参指南。

seed的博客 776

成长计划校园极客秀 | 玩转OpenHarmony开发智能煤气检测系统

当智能煤气系统监测现场一氧化碳浓度发生变化时,设备端上报数据至云平台最终同步到数字管家,当一氧化碳浓度超过阈值时,则会进行报警,并将报警信息也上报至云平台最终同步到数字管家;通过数字管家碰一碰配网络后,配合数字管家应用,用户可以远程配置智能煤气检测系统的报警阈值,远程接收智能煤气检测系统报警信息。整个过程还是比较复杂,需要设备端代码的编写,FA侧代码的实现,华为云配置,以及数字管家服务端搭建。在这个过程中我接触到很多新的知识点,例如碰一碰快速配置网络,真机上的运行,以及体验到华为云相关操作等等。...

OpenHarmony_dev的博客 1465

从SD更新字库到FLASH,再用LCD显示

用Flash当字库存储载体。思路是先将要用到的字库文件存在SD卡,然后存储到Flash,LCD显示时候从Flash中读取 还挺顺利的,移植的原子的程序,自己稍加修改,主要是我的液晶屏函数,Flash读写函数,还有存储文件的flash地址不一样。一晚上搞定,大小字体都OK。挺高兴哈哈。这几天忙工作事情有点耽搁了学习进展嘿嘿 在text.c的showstr函数中char的字体颜色随意设置的,可以显...

weixin_30505751的博客 914

[环境搭建]OpenHarmony开发环境搭建

Ubuntu虚拟机上搭建OpenHarmony开发环境

1268

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(四)-无人机系统(UAS)命令与控制(C2)通信用例

UTM向5G网络提供无人机系统C2通信所需的信息,例如服务类别、无人机系统服务的流量类型、授权的无人机系统服务所需的QoS以及无人机系统服务的订阅。遵循模型B的网络辅助C2模型,为了确保UAS操作的C2通信的服务可用性和可靠性,特别是当无人机在操作员的视线之外(BLOS)飞行时,为无人机提供支持冗余的C2通信链路。如果需要创建额外的C2通信连接或更改现有数据连接的配置以进行C2通信,则5G网络会根据无人机系统的授权服务信息和C2通信中所需的QoS和优先级,修改或分配一个或多个C2通信流量的QoS流。

u011376987的博客 2052

K210学习笔记(八)——人脸检测和人脸识别

前言 人脸检测是人脸识别算法的第一步,人脸识别过程主要分为人脸图像获取、人脸检测、人脸配准、人脸表征以及人脸图像匹配与识别。人脸检测的目标是找出图像中所有的人脸对应的位置,算法的输出是人脸外接矩形(椭圆)在图像中的坐标,可能还包括姿态如倾斜角度等信息。人脸检测在安防监控,人证比对,人机交互,社交和娱乐等方面有很强的应用价值。 人脸识别是在人脸检测的基础上除了检测到人脸的位置以外, 还可以识别到这个人是谁,利用分析比较是基于人的脸视觉部特征信息进行身份鉴识别的计算机一种生物识别技术。 一、KPU模块方法 1、

Thousand_drive的博客 1万+

还在为移植发愁?OpenHarmony原生Python支持全流程详解,立即上手不等待

解决OpenHarmony平台Python移植难题,本教程提供完整适配方案。涵盖环境搭建、模块编译与系统集成方法,适用于智能设备开发场景,实现高效跨平台迁移。OpenHarmony Python适配教程详解每一步操作,助你快速上手,值得收藏。

CodeIsle的博客 937

centos7 python3.12.1 报错 No module named _ssl,坑我几个小时

网上的教程很多,但几乎是无效的,跟着我这教程,可以完美解决。

Amio_的博客 1万+

揭秘OpenHarmony如何完美支持Python:开发者必知的3大核心技术突破

掌握OpenHarmony Python适配教程,轻松实现Python在OpenHarmony系统的高效运行。涵盖跨平台部署、运行时环境构建与原生接口调用三大核心技术,适用于智能设备开发场景。性能优化显著,开发门槛低,值得收藏。

QuickSolve的博客 987

手机银行应用架构设计

网上银行借助互联网、移动通信网络等技术向客户提供金融服务,易受到通讯层面的安全威胁,金融机构应从通讯协议、安全认证、通信链路安全等层面,采取措施有效应对相关风险。网上银行系统服务器端提供网上银行应用服务和核心业务处理功能,金融机构应充分利用物理环境、通信网络、计算环境等领域的防护技术,在攻击者和受保护的资源间建立多道严密的安全防线。 网上银行除直接向用户提供金融服务外,也可能与外部机构开展业务合作。在网上银行系统设计、开发、部署和运营过程中,应充分考虑外部机构的系统可能存在的安全风险,并针对各类风险进行有效

银行信息系统应用架构详解 4830

【软考高级架构】论文范文12——论生成式AI在软件开发中的应用与挑战

随着生成式AI技术的跨越式发展,以大语言模型为代表的生成式AI正在深刻改变软件开发的传统模式。在代码生成、测试构造、文档编写等环节,生成式AI展现出显著的效率提升潜力,但其应用也面临着代码质量不可控、安全漏洞植入、版权合规等严峻挑战。本文以笔者主导的某大型金融企业智能研发辅助平台建设项目为案例,围绕生成式AI在软件开发中的应用实践与应对挑战的策略展开论述。笔者担任系统架构师,负责平台架构设计、模型选型、质量保障机制及安全防线构建。

qq837993702的博客 275

【详细深入分析OpenHarmony编译流程】

OpenHarmony做为复杂的操作系统软件,其编译构建也比较复杂。本文主要记录作者自己在阅读编译脚本代码后对其的认识,不代表官方观点,不足之处还请批评指正。本文顺着编译流程阅读和解释编译脚本代码,即执行时间靠前的代码先解释,执行时间靠后的代码后解释。本文参考代码为2024年7月8日master分支代码。为了方便查看OpenHarmony代码,作者搭建了一个服务器,欢迎使用https://lengqinjie.xyz。

weixin_40870382的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

OpenHarmony一站式开发环境搭建

我搭建完环境后,在VSCode里面去编译项目时没有成功,找了很久也没能解决这个问题,所以短期内打算先不使用这个一站式开发了## 5.3执行prebuilts在源码根目录下执行prebuilts脚本,安装编译器及二进制工具。```c中间如果提示pip版本过低,则升级一下将Python升级到3.6版本以上(Ubuntu)我搭建完环境后,在VSCode里面去编译项目时没有成功,找了很久也没能解决这个问题,所以短期内打算先不使用这个一站式开发了。

心之所向 2594

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OpenHarmony 设备开发命令行环境搭建【Ubuntu22.04】

需要分两步进行安装,按照OpenHarmony官网的步骤会报错。,需要将shell环境修改为。软件来替代官网软链接的方式。将repo添加到环境变量。

weixin_54073049的博客 4321

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OpenHarmony源码学习之编译过程

OpenHarmony构建工具由shell(.sh)、python(.py)、gn(.gn/.gni)、ninja(.ninja)、clang/llvm等构成。本文以 OpenHarmony-v3.2.4-release为例,附上下载链接。

weixin_42938827的博客 3873

8 OpenHarmony开源鸿蒙build编译模块的原理和系统配置讲解

【代码】8 OpenHarmony开源鸿蒙build编译模块的原理和系统配置讲解。

qq582880551的博客 2904

OpenHarmony开发案例:【分布式计算器】

本示例使用分布式能力实现了一个简单的计算器应用,可以进行简单的数值计算,支持远程拉起另一个设备的计算器应用,两个计算器应用进行协同计算。远程拉起:通过StartAbility实现远端应用的拉起。协同计算:通过DistributedDataKit分布式数据框架实现异端应用的数据同步。本示例用到了媒体查询接口[@ohos.mediaquery]

m0_62167422的博客 1757

【OpenHarmony Python适配全攻略】:手把手教你5步完成环境搭建与兼容性调试

auto-generated

VarChat的博客 981

OpenHarmony Python适配避坑指南(20个高频问题与官方解决方案汇总)

解决OpenHarmony与Python集成难题,本教程系统梳理20个高频问题及官方解决方案,涵盖环境配置、模块兼容与调试技巧,适用于应用开发与自动化测试场景,助力开发者高效完成适配,避坑提效值得收藏。

VarIsle的博客 623

为什么90%的人都卡在这一步?OpenHarmony Python适配常见失败原因曝光

auto-generated

CodePulse的博客 1188

在OpenHarmony标准系统上使用Python调用C/C++的SO库(移植python3.8到OpenHarmony标准系统)...

weixin_58069108的博客 1753
上一篇: 云原生文档Python生成全攻略(99%工程师忽略的关键细节)
下一篇: 为什么你的开源项目没人参与?可能是文档规范出了问题
FuncFun
博客等级 码龄1年 133粉丝 1996原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值