前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术创作特训营第一期|ACE Tools构建跨平台应用

技术创作特训营第一期|ACE Tools构建跨平台应用

原创
作者头像
徐建国
发布2023-08-09 11:39:44
3770
发布2023-08-09 11:39:44
举报
文章被收录于专栏:个人路线

ACE Tools构建跨平台应用

本教程主要讲述如何通过ACE Tools将OpenHarmony开发范式扩展到跨平台进行开发,包括:

  • 基本工程开发
  • Native C++开发
  • AAR/Framework开发
  • 多Ability开发
  • 多Module开发

基本工程开发

1.执行 ace create 命令创建一个简单工程,按照提示填写工程名和相关信息:

代码语言:javascript
复制
ace create project
? Please enter the project name: HelloWorld
? Please enter the bundle name (com.example.helloworld):com.jianguo.helloworld
? Please enter the system (1: OpenHarmony, 2: HarmonyOS): 1
? Please enter the project type (1: Application, 2: Library): 1
? Please enter the template (1: Empty Ability, 2: Native C++): 1   //选择创建Empty Ability或者Native C++项目

2.创建的工程结构如下:

代码语言:javascript
复制
HelloWorld
├── .arkui-x
|   ├── android         //Android应用工程
|   └── ios             //iOS应用工程             
├── AppScope                             
├── build-profile.json5
├── entry               //Module模块
├── hvigor
├── hvigorw
├── hvigorw.bat
└── oh-package.json5

3.工程结构与通过DevEco Studio构建的跨平台工程一致。

4.执行ace build命令,即可完成对ArkTS源码编译和应用打包,构建出相应的跨平台应用。

Native C++开发

ACE Tools支持开发者进行Native C++开发跨平台。

代码语言:javascript
复制
ace create project
? Please enter the project name: HelloWorld
? Please enter the bundle name (com.example.helloworld):com.jianguo.helloworld
? Please enter the system (1: OpenHarmony, 2: HarmonyOS): 1
? Please enter the project type (1: Application, 2: Library): 1
? Please enter the template (1: Empty Ability, 2: Native C++): 2   //选择创建Empty Ability或者Native C++项目

注: iOS工程结构没有变化,通过iOS工程配置,便会将source目录下的hello.cpp文件编译到应用当中。

1.新增工程结构如下:

代码语言:javascript
复制
HelloWorld
├── .arkui-x
|   ├── android/app/src/main  
|   |   └── cpp
|   |       └── CmakeLists.txt
|   └── ios             
├── AppScope                             
├── build-profile.json5
├── entry/src/main
|   └── cpp                 //Native C++
|       ├── types/libentry
|       |   ├── index.d.ts 
|       |   └── oh-package.json5
|       ├── CMakeLists.txt
|       └── hello.cpp 
├── hvigor
├── hvigorw
├── hvigorw.bat
└── oh-package.json5

2.执行ace build命令,即可构建出带有Native C++的跨平台应用。

AAR/Framework开发

ACE Tools支持开发者针对Android平台开发AAR。

1.需要在创建工程时,选择工程类型为library。工程结构和简单工程类型一致,区别为Android目录工程

2.执行ace build命令即可构建相应目标平台的library产物:

代码语言:javascript
复制
ace build aar        //构建Android平台的AAR产物
ace build framework  //构建iOS平台的Framework产物

多Ability开发

ACE Tools支持开发者针跨平台进行多Ability开发。

1.执行如下命令,按提示填写Ability名称即可创建Ability模块

代码语言:javascript
复制
cd entry
ace create ability
? Please enter the ability name:Second

2.该命令会在entry、android和ios目录下增加相应的ability适配代码,如下只展示新增部分

代码语言:javascript
复制
HelloWorld
├── .arkui-x
|   ├── android/app/src/main/java/com/example/demo
|   |   └── EntrySecondAbilityActivity.java         //Android侧适配Ability代码                   
|   └── ios/app
|       ├── EntrySecondAbilityViewController.h      //iOS侧适配Ability代码
|       └── EntrySecondAbilityViewController.m      //iOS侧适配Ability代码                        
|               
└── entry/src/main/ets              
    └── SecondAbility           //SecondAbility
        └── SecondAbility.ets             

3.执行ace build app/apk 命令,即可完成对多Ability场景下ArkTS源码编译和打包,构建出相应的iOS或Android应用。

多Module开发

ACE Tools支持开发者针对跨平台进行多Module范式开发。

1.执行如下命令,按提示填写Module名称:

代码语言:javascript
复制
cd entry
ace create ability
? Please enter the module name: feature1

2.执行ace create module 命令,按照提示输入module name,示例名称为feature1。该命令会在entry、android和ios目录下增加相应的ability代码

代码语言:javascript
复制
HelloWorld
├── .arkui-x
|   ├── android/app/src/main/java/com/example/demo
|   |   └── Feature1Feature1AbilityActivity.java         //Android侧适配Ability代码
|   └── ios/app
|       ├── Feature1Feature1AbilityViewController.h      //iOS侧适配Ability代码
|       └── Feature1Feature1AbilityViewController.m      //iOS侧适配Ability代码                        
├── entry              
└── feature1        //新增的feature1模块

3.执行ace build app/apk 命令,即可完成对多module场景下ArkTS源码编译和打包,构建出相应的iOS或Android应用。

最后想说,作为一个跨平台框架的出现,如果有朝一日,可以有Flutter般的丝滑体验,就不错啦。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ACE Tools构建跨平台应用
    • 基本工程开发
      • Native C++开发
        • AAR/Framework开发
          • 多Ability开发
            • 多Module开发
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档