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

2023-08-09 11:39:44 浏览数 (2)

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般的丝滑体验,就不错啦。

0 人点赞