OpenHarmony子系统开发 - ArkCompiler开发指导

server/2025/3/16 9:40:39/

OpenHarmony子系统开发 - ArkCompiler开发指导

概述

ArkCompiler是一种统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片的编译与运行,并支撑应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。

编译环境配置

推荐操作系统Ubuntu18.04及以上。

  1. 安装依赖工具。

    sudo apt-get update && sudo apt-get install python ruby python3-pip git-lfs gcc-multilib g++-multilib zlib1g-dev libc++1 curl nodejs
    
  2. 安装repo工具。

    mkdir ~/bin/
    curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
    chmod a+x ~/bin/repo
    export PATH=~/bin:$PATH
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
    
  3. 下载源码。

    repo init -u https://gitee.com/ark-standalone-build/manifest.git -b master
    repo sync -c -j8
    repo forall -c 'git lfs pull'
    
  4. 安装编译器及二进制工具。

    ./prebuilts_download.sh
    

开发步骤

  1. 生成编译产物ark_js_vm及es2panda。

    python ark.py x64.release
    
    • ark_js_vm:运行abc文件的可执行程序。
    • es2panda:将ArkTS文件转换生成ArkCompiler字节码文件的工具。
  2. 使用ts2panda将TypeScript文件转换为abc文件。

    out/x64.release/arkcompiler/ets_frontend/es2abc helloworld.ts
    

    TypeScript用例文件helloworld.ts源码。

    declare function print(arg:string):string;
    print('Hello world!');
    
  3. 执行生成的abc文件。

    out/x64.release/arkcompiler/ets_runtime/ark_js_vm helloworld.abc
    

    abc文件:ArkCompiler字节码文件。

    执行结果:

    Hello world!
    

执行Test262测试套

python ark.py x64.release test262

编译选项

编译模式选择,如在x64平台构建debug版本。

python ark.py x64.debug

获取更多编译说明。

python ark.py --help

http://www.ppmy.cn/server/175388.html

相关文章

2024年12月CCF-GESP编程能力等级认证C++编程四级真题解析

四级真题的难度: 一、总体难度评价 CCF-GESP编程能力等级认证C++四级真题的难度通常被认为相对较高。它不仅要求考生具备扎实的C++编程基础,还需要考生掌握一定的算法和数据结构知识,以及良好的问题解决能力。 二、具体难度分析 ‌理论知识考察‌: 单选题和判断题中,会涉…

【鸿蒙】封装日志工具类 ohos.hilog打印日志

封装一个ohos.hilog打印日志 首先要了解hilog四大日志类型: info、debug、warm、error 方法中四个参数的作用 domain: number tag: string format: string ...args: any[ ] 实例: //普通的info日志,使用info方法来打印 //第一个参数 : 0x0…

大白话阐述react和vue高阶组件的概念、优势及应用场景,以及区别,给出简单高阶组件的实现代码

大白话阐述react和vue高阶组件的概念、优势及应用场景,以及区别,给出简单高阶组件的实现代码 高阶组件的概念 React高阶组件 在 React 里,高阶组件(Higher-Order Component,简称 HOC)其实就是一个函数。…

大模型AI多智能体系统(Multi-Agent Systems, MAS)技术介绍

一、多智能体系统的定义与核心概念 多智能体系统(MAS)是由多个具备自主决策能力的智能体(Agent)组成的分布式系统。每个智能体能够感知环境、执行动作,并通过协作或竞争实现个体或集体目标。其核心特征包括: 自主性:智能体无需外部指令即可独立决策(如MetaGPT中的角色…

搞定python之六----文件读写

本文是《搞定Python》系列文章的第六篇,介绍文件的读写操作。文件读写相对于java要简单的多,板式代码也比较多,最后用with方式打开文件,可以保证文件正常关闭。 1、读文件 一般的文件读写过程:打开、读写、关闭。pyt…

【Linux内核系列】:文件系统收尾以及软硬链接详解

🔥 本文专栏:Linux 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 世界上只有一种个人英雄主义,那么就是面对生活的种种失败却依然热爱着生活 内容回顾 那么在之前的学习中,我们…

前端性能优化实战指南:从加载到渲染的全链路优化

前端性能优化实战指南&#xff1a;从加载到渲染的全链路优化 一、性能优化的核心指标 1.1 关键性能指标解读 指标标准值测量工具优化方向FCP (首次内容渲染)<1.5sLighthouse网络/资源优化TTI (可交互时间)<3sWebPageTestJS执行优化CLS (布局偏移)<0.1Chrome DevTool…

使用 PerformanceObserver 实现网页性能优化的最佳实践

前言 在当今的网页开发中&#xff0c;性能监控已经成为确保用户体验的一个关键部分。用户对网站的速度和响应性越来越敏感&#xff0c;性能问题可能直接影响用户的满意度和留存率。因此&#xff0c;了解并使用合适的工具来监控和优化网页性能显得尤为重要。 今天&#xff0c;我…