ACE Tools
簡介
ACE Tools是一套為ArkUI-X項目跨平臺應用開發者提供的命令行工具,支持在Windows/Ubuntu/macOS平臺運行,用于構建OpenHarmony/HarmonyOS、Android和iOS平臺的應用程序,其功能包括開發環境檢查,新建項目,編譯打包,安裝調試等。
注釋: ACE - ArkUI跨平臺運行環境 (ArkUI Cross-platform Environment)。
圖1 ACE Tools命令行工具模塊結構
命令行各平臺使用不同腳本文件做為入口,再通過Node.js執行到ace_tools.js文件,使用npm模塊commander解析命令行執行各子模塊導出的方法。
目錄結構
ACE Tools工具鏈的代碼在//developtools/ace_tools下,目錄結構如下圖所示:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
/developtools/ace_tools
├── lib/src/cli # 命令相關
│ ├── ace-build # 構建跨平臺應用安裝包
│ ├── ace-check # 查驗跨平臺應用開發環境
│ ├── ace-clean # 清理跨平臺應用編譯結果
│ ├── ace-config # 設置ACE工具鏈相關配置
│ ├── ace-create # 創建跨平臺應用工程及應用模塊
│ ├── ace-devices # 查詢當前所有連接的設備
│ ├── ace-help # 幫助命令
│ ├── ace-install # 將跨平臺應用安裝到連接的設備上
│ ├── ace-launch # 在設備上運行ArkUI跨平臺應用
│ ├── ace-log # 展示正在運行的跨平臺應用的日志
│ ├── ace-run # 編譯并在設備上運行ArkUI跨平臺應用
| ├── ace-test # 執行跨平臺應用包單元測試
│ ├── ace-uninstall # 將跨平臺應用從連接的設備上卸載
│ └── util # 工具模塊
├── lib
│ └── ace_tools.js # 入口腳本
└── templates # 模板相關
├── android # Android工程模板
├── cpp # Native C++配置模板
├── cpp_ets_stage # Stage Native C++開發模板
├── ets_stage # Stage開發模板
├── framework # framework工程模板
├── ios # iOS工程模板
└── ohos_stage # ohos Stage工程模板
使用方法
ace config
設置ACE工具鏈相關配置,包括OpenHarmony SDK路徑,HarmonyOS SDK路徑、ArkUI-X SDK路徑、Android SDK路徑、Node.js路徑、編譯輸出路徑等。
語法:
ace config [arguments]
- arguments
參數 | 說明 |
---|---|
--android-sdk | Android SDK路徑。 |
--android-studio-path | Android Studio安裝路徑(可選參數)。 |
--arkui-x-sdk | ArkUI-X SDK路徑。 |
--build-dir | 編譯輸出的路徑。 |
--deveco-studio-path | DevEco Studio安裝路徑(可選參數)。 |
--harmonyos-sdk | HarmonyOS SDK路徑。 |
--java-sdk | JDK路徑。 |
--nodejs-dir | Node.js 路徑。 |
--ohpm-dir | Ohpm路徑。 |
--openharmony-sdk | OpenHarmony SDK路徑。 |
ace check
查驗跨平臺應用開發環境。
需要檢查的項:
檢查內容 | 說明 | Windows | Linux | Mac |
---|---|---|---|---|
adb | Android設備調試工具 | 是 | 是 | 是 |
Android SDK | Android SDK路徑 | 是 | 是 | 是 |
Android Studio | Android Studio安裝路徑 | 是 | 是 | 是 |
ArkUI-X SDK | ArkUI-X SDK路徑 | 是 | 是 | 是 |
DevEco Studio | DevEco Studio安裝路徑 | 是 | 否 | 是 |
HarmonyOS hdc | HarmonyOS設備調試工具 | 是 | 是 | 是 |
HarmonyOS SDK | HarmonyOS SDK路徑 | 是 | 是 | 是 |
ios-deploy | 當前ios-deploy的版本號 | 否 | 否 | 是 |
libimobiledevice | 當前libimobiledevice的版本號 | 否 | 否 | 是 |
Node.js | Node.js 路徑 | 是 | 是 | 是 |
Ohpm | Ohpm路徑 | 是 | 是 | 是 |
OpenHarmony hdc | OpenHarmony調試工具 | 是 | 是 | 是 |
OpenHarmony SDK | OpenHarmony SDK路徑 | 是 | 是 | 是 |
Xcode | 當前Xcode的版本號 | 否 | 否 | 是 |
連接設備 | 當前連接的所有設備 | 是 | 是 | 是 |
語法:
ace check [arguments]
- arguments
參數 | 說明 |
---|---|
-v --v | 顯示詳細結果。 |
-h --help | 顯示幫助信息。 |
執行結果參考:
ohos@user ~ % ace check
Check summary (to see all details, run ace check -v)
[√] ArkUI-X (ArkUI-X SDK version 1.0.0.0)
[√] OpenHarmony toolchains - develop for OpenHarmony devices (OpenHarmony SDK version 4.0.10.13)
[√] HarmonyOS toolchains - develop for HarmonyOS devices (HarmonyOS SDK version 3.1.0)
[√] Android toolchains - develop for Android devices (Android SDK version 34.0.0)
[√] DevEco Studio (version 4.0.0.600)
[√] Android Studio (version 2022.3)
[√] Xcode - develop for iOS (Xcode 14.3.1)
Tools info :[√] OpenHarmony hdc installed
[√] HarmonyOS hdc installed
[√] adb installed
[√] ios-deploy installed
[√] Connected device (1 available)
? iPhone 14 Pro Max (1058643C-A725-4E19-AA62-781588C94A7F) [iOS Simulator]
√ ACE Tools found no issues.
ohos@user ~ % ace check -v
[√] ArkUI-X (ArkUI-X SDK version 1.0.0.0)
? ArkUI-X SDK at /Users/ohos/Library/ArkUI-X/Sdk
? Node.js (v18.17.1) Runtime Environment at /usr/local/n/versions/node/18.17.1/
? libimobiledevice 1.3.0
? ios-deploy 1.12.2
[√] OpenHarmony toolchains - develop for OpenHarmony devices (OpenHarmony SDK version 4.0.10.13)
? OpenHarmony SDK at /Users/ohos/Library/OpenHarmony/Sdk
? Ohpm at /Users/ohos/Library/Huawei/ohpm
? Java SDK at /Applications/deveco-studio.app/Contents/jbr/Contents/Home
? OpenJDK Runtime Environment JBR-17.0.6+10-829.5-jcef (build 17.0.6+10-b829.5)
[√] HarmonyOS toolchains - develop for HarmonyOS devices (HarmonyOS SDK version 3.1.0)
? HarmonyOS SDK at /Users/ohos/Library/Huawei/Sdk
? Ohpm at /Users/ohos/Library/Huawei/ohpm
? Java SDK at /Applications/deveco-studio.app/Contents/jbr/Contents/Home
? OpenJDK Runtime Environment JBR-17.0.6+10-829.5-jcef (build 17.0.6+10-b829.5)
[√] Android toolchains - develop for Android devices (Android SDK version 34.0.0)
? Android SDK at /Users/ohos/Library/Android/sdk
? Java SDK at /Applications/Android Studio.app/Contents/jbr/Contents/Home
? OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
[√] DevEco Studio (version 4.0.3)
? DevEco Studio at /Applications/deveco-studio.app
? Java SDK at /Applications/deveco-studio.app/Contents/jbr/Contents/Home
? OpenJDK Runtime Environment JBR-17.0.6+10-829.5-jcef (build 17.0.6+10-b829.5)
[√] Android Studio (version 2022.3)
? Android Studio at /Applications/Android Studio.app
? Java SDK at /Applications/Android Studio.app/Contents/jbr/Contents/Home
? OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
[√] Xcode - develop for iOS (Xcode 14.3.1)
? Xcode at /Applications/Xcode.app
? Build version 14E300c
Tools info :[√] OpenHarmony hdc installed
[√] HarmonyOS hdc installed
[√] adb installed
[√] ios-deploy installed
[√] Connected device (1 available)
? iPhone 14 Pro Max (1058643C-A725-4E19-AA62-781588C94A7F) [iOS Simulator]
√ ACE Tools found no issues.
ace devices
列出當前所有連接的設備,Windows平臺上可以查詢到當前連接的Android(包括Android Studio的模擬器)和OpenHarmony/HarmonyOS設備;Linux平臺上可以查詢到當前連接的Android設備;
Mac平臺上可以查詢到當前連接的Android(包括Android Studio的模擬器),OpenHarmony/HarmonyOS,iOS設備和Mac自帶的iOS模擬器(可通過命令行open -a Simulator啟動,需要安裝Xcode)。
語法:
ace devices [arguments]
- arguments
參數 | 說明 |
---|---|
-h --help | 顯示幫助信息。 |
執行結果參考:
ohos@user ~ % ace devices
Tools info :[√] OpenHarmony hdc installed
[√] HarmonyOS hdc installed
[√] adb installed
[√] ios-deploy installed
[√] Connected device (2 available)
? sdk_gphone64_x86_64 (emulator-5554) [Android]
? iPhone 14 Pro Max (1058643C-A725-4E19-AA62-781588C94A7F) [iOS Simulator]
ace create project
創建跨平臺應用工程。
創建過程中,需要開發者依次填寫工程名稱和包名稱,如果開發者不輸入包名稱,默認為com.example.工程名。
語法:
ace create < output directory >
- options
選項 | 說明 |
---|---|
-t --template | 指定創建工程。 |
-h --help | 顯示幫助信息。 |
- type
type | 說明 |
---|---|
app | 創建普通arkui-x應用工程。 |
liary | 創建aar/framework工程。 |
plugin_napi | 創建native工程。 |
在當前目錄創建test工程:
ohos@user:~/cli-project$ ace create test
? Enter the project name(test): # 輸入工程名稱,不輸入默認為文件夾名稱
? Enter the bundleName (com.example.test): # 輸入包名,不輸入默認為com.example.工程名
? Enter the runtimeOS (1: OpenHarmony, 2: HarmonyOS): 1 # 輸入RuntimeOS系統
Project created. Target directory: /home/ohos/cli-project/test.
In order to run your app, type:
$ cd test
$ ace run
Your app code is in test/entry.
ace new module
新建跨平臺應用模塊(Module)
需要在新建的跨平臺應用工程的根目錄下執行,提示輸入module名稱:
Enter the module name:
如果此module name已存在,會提示開發者${module name} already exists.,開發者修改名稱后,回車確認,可以成功新建出跨平臺應用模塊(Module)。
ace new ability
新建跨平臺應用Ability
需要在新建的跨平臺應用工程的根目錄/具體module目錄下執行,提示輸入Ability名稱:
Enter the ability name:
如果此ability name已存在,會提示開發者abilityName name already exists!.,開發者修改名稱后,回車確認,可以成功新建出跨平臺應用Ability。
ace build
構建跨平臺應用安裝包。
語法:
ace build < subCommand > [arguments]
在Windows和Linux平臺上可構建Hap和Apk,在Mac平臺上可構建Hap、Apk和App。
注:在DevEco Studio中打開要編譯的工程配置自動簽名,單擊File > Project Structure > Project > Signing Configs界面勾選“Automatically generate signature”,等待自動簽名完成即可,再執行ace build即可構建出簽名hap安裝包;在Mac上編譯App之前需要使用Xcode打開對應ios工程,在Build settings的Singing進行簽名配置,再執行編譯命令;在Linux上無法簽名。
- subCommand
子命令 | 說明 |
---|---|
aab | 構建Android App Bundle文件。 |
aar | 構建Android應用 aar 包。 |
apk | 構建Android應用 apk 包。 |
bundle | 構建ArkUI cross-platform資源目錄。 |
hap | 構建OpenHarmony/HarmonyOS應用 hap 包。 |
ios | 構建iOS應用 app 包。 |
ios-framework | 構建iOS應用 framework 包。 |
ios-xcframework | 構建iOS應用 xcframework 包。 |
- arguments
參數 | 子命令 | 說明 |
---|---|---|
--debug | aab、aar、apk、bundle、hap、ios、ios-framework、ios-xcframework | 構建應用程序的類型為debug。 |
-r --release | aab、aar、apk、bundle、hap、ios、ios-framework、ios-xcframework | 構建應用程序的類型為release(默認為release)。 |
--profile | aab、aar、apk、bundle、hap、ios、ios-framework、ios-xcframework | 構建應用程序的類型為profile。 |
--nosign | ios、ios-framework、ios-xcframework | 構建出未簽名的應用程序。 |
--target [moduleName] | hap | 指定目標模塊名進行構建。 |
--target-platform | apk、aab、aar、bundle | 編譯apk的目標平臺[arm, arm64, x86_64] |
-s --simulator | ios、ios-framework、ios-xcframework | 構建ios模擬器對應包。 |
-h --help | aab、aar、apk、bundle、hap、ios、ios-framework、ios-xcframework | 顯示幫助信息。 |
構建完成,提示包生成路徑:
HAP file built successfully..
File path: /Users/ohos/WorkSpace/demo/ohos/entry/build/default/outputs/default
ace install
將跨平臺應用安裝到連接的設備上。
語法:
ace install [arguments]
在Windows和Linux平臺上可以安裝Hap和Apk應用包,在Mac平臺上可以安裝Hap、Apk和App應用包。 命令會根據options提示開發者選擇對應平臺的設備,如果只有一個設備連接,會直接安裝到該設備上。 注:編譯Release版本的Apk需要簽名才能安裝,請通過Android Studio完成簽名或者編譯Debug版本Apk安裝。
- arguments
參數 | 說明 |
---|---|
apk | 安裝Android應用 apk 包,可選。 |
hap | 安裝OpenHarmony/HarmonyOS應用 hap 包,可選。 |
ios | 安裝iOS應用 app 包,可選。 |
參數 | 說明 |
---|---|
--target [moduleName] | 指定目標模塊名進行安裝。 |
-d --device | 指定運行應用的設備Id。 |
-h --help | 顯示幫助信息。 |
安裝完成:
ohos@user % ace install
[1]: iPhone 14 Pro (67B40DC8-111C-4B30-9987-08E3BE30016A) [iOS Simulator]
[2]: iPhone 14 Pro Max (1058643C-A725-4E19-AA62-781588C94A7F) [iOS Simulator]
? Please choose one (or "q" to quit): 2
iOS APP installed.
ace uninstall
將跨平臺應用從連接的設備上卸載。命令會根據options提示開發者選擇對應平臺的設備,如果只有一個設備連接,會直接卸載該設備上的應用。
語法:
ace uninstall [arguments]
- arguments
參數 | 說明 |
---|---|
apk | 卸載Android應用 apk 包,可選。 |
hap | 卸載OpenHarmony/HarmonyOS應用 hap 包,可選。 |
ios | 卸載iOS應用 app 包,可選。 |
參數 | 說明 |
---|---|
--bundle | 指定卸載應用的包名,iOS需為實際簽名。 |
-d --device | 指定運行應用的設備Id。 |
-h --help | 顯示幫助信息。 |
卸載完成:
ohos@user % ace uninstall --bundle com.example.${projectName}
[1]: iPhone 14 Pro (67B40DC8-111C-4B30-9987-08E3BE30016A) [iOS Simulator]
[2]: iPhone 14 Pro Max (1058643C-A725-4E19-AA62-781588C94A7F) [iOS Simulator]
? Please choose one (or "q" to quit): 2
iOS APP uninstalled.
ace launch
在設備上運行跨平臺應用。命令會根據options提示開發者選擇對應平臺的設備,如果只有一個設備連接,會直接運行該設備上的應用。需要在設備上安裝跨平臺應用后才能運行。
語法:
ace launch [arguments]
- arguments
參數 | 說明 |
---|---|
apk | 運行Android應用 apk 包,可選。 |
hap | 運行OpenHarmony/HarmonyOS應用 hap 包,可選。 |
ios | 運行iOS應用 app 包,可選。 |
參數 | 說明 |
---|---|
--target [moduleName] | 指定目標模塊名進行運行。 |
-d --device | 指定運行應用的設備Id。 |
-h --help | 顯示幫助信息。 |
運行完成:
ohos@user % ace launch
[1]: iPhone 14 Pro (67B40DC8-111C-4B30-9987-08E3BE30016A) [iOS Simulator]
[2]: iPhone 14 Pro Max (1058643C-A725-4E19-AA62-781588C94A7F) [iOS Simulator]
? Please choose one (or "q" to quit): 2
iOS APP launched.
ace log
滾動展示正在運行的跨平臺應用的日志。命令會根據options提示開發者選擇對應平臺的設備,如果只有一個設備連接,會直接展示該設備上的應用日志。
默認只輸出跨平臺應用進程相關日志。
語法:
ace log [arguments]
- arguments
參數 | 說明 |
---|---|
apk | 查看Android應用日志,可選。 |
hap | 查看OpenHarmony/HarmonyOS應用日志,可選。 |
ios | 查看iOS應用日志,可選。 |
參數 | 說明 |
---|---|
-d --device | 指定運行應用的設備Id。 |
-h --help | 顯示幫助信息。 |
ohos@user % ace log
[1]: iPhone 14 Pro (67B40DC8-111C-4B30-9987-08E3BE30016A) [iOS Simulator]
[2]: iPhone 14 Pro Max (1058643C-A725-4E19-AA62-781588C94A7F) [iOS Simulator]
? Please choose one (or "q" to quit): 2
ace run
運行跨平臺應用包。
ace run 先檢查設備是否連接,確定設備類型,然后執行跨平臺應用構建、安裝、啟動、輸出應用進程log等操作。命令會根據options提示開發者選擇對應平臺的設備,如果只有一個設備連接,應用會安裝到該設備并運行。
在Windows平臺上可以構建安裝并運行Hap和Apk,在Linux平臺上可以構建安裝并運行Apk,僅能構建Hap,在Mac平臺上可以構建安裝并運行Hap、Apk和App。
語法:
ace run [arguments]
- arguments
參數 | 說明 |
---|---|
apk | 構建并運行Android應用 apk 包,可選。 |
hap | 構建并運行OpenHarmony/HarmonyOS應用 hap 包,可選。 |
ios | 構建并運行iOS應用 app 包,可選。 |
參數 | 說明 |
---|---|
--debug | 構建并運行debug版本應用。 |
-r --release | 構建并運行release版本應用。 |
--profile | 構建并運行profile版本應用。 |
--target [moduleName] | 指定目標模塊名進行運行。 |
-d --device | 指定運行應用的設備Id。 |
-h --help | 顯示幫助信息。 |
ohos@user % ace run
[1]: iPhone 14 Pro (67B40DC8-111C-4B30-9987-08E3BE30016A) [iOS Simulator]
[2]: iPhone 14 Pro Max (1058643C-A725-4E19-AA62-781588C94A7F) [iOS Simulator]
? Please choose one (or "q" to quit): 2
ace test
執行跨平臺應用包單元測試。
ace test 先檢查設備是否連接,確定設備類型,然后執行跨平臺應用構建、安裝、啟動、執行單元測試、輸出單元測試結果等操作。
在Windows平臺上可以構建安裝并測試Apk,在Linux平臺上可以構建安裝并測試Apk,在Mac平臺上可以構建安裝并測試Apk和App,暫時不支持iOS模擬器上的單元測試。
語法:
ace test [arguments]
- arguments
參數 | 說明 |
---|---|
apk | 構建并運行Android應用 apk 包。 |
ios | 構建并運行iOS應用 app 包。 |
參數 | 說明 |
---|---|
--b [bundleName] | 指定測試應用的BundleName,iOS需要指定為自行設置的URL Types中的URL Schemes。 |
--class [class] | 指定測試應用的class。 |
--m [testModuleName] | 指定測試應用的ModuleName。 |
--skipInstall | 已安裝情況跳過安裝直接測試。(仍需依賴app/apk包,若指定了'path'則使用'path'下的app/apk包,否則使用默認路徑下的app/apk包) |
--target [moduleName] | 指定測試module用于安裝測試。 |
--timeout [timeout] | 指定測試應用的單條用例的超時時間。 |
--unittest [testRunner] | 指定測試應用的testRunner。 |
--path [path] | 指定app/apk包路徑用于直接安裝測試。 |
-d --device | 指定運行應用的設備Id。 |
-h --help | 顯示幫助信息。 |
ace clean
清理跨平臺應用編譯結果。
語法:
ace clean [arguments]
- arguments
參數 | 說明 |
---|---|
-h --help | 顯示幫助信息。 |
清理完成:
Project cleaned up.
ace help
跨平臺應用命令行工具幫助。
語法:
ace help < command >
- command
命令 | 說明 |
---|---|
build | 構建跨平臺應用安裝包。 |
check | 查驗跨平臺應用開發環境。 |
clean | 清理跨平臺應用編譯結果。 |
config | 設置ACE工具鏈相關配置,包括OpenHarmony SDK路徑、HarmonyOS SDK路徑、Android SDK路徑、Node.js路徑、編譯輸出路徑等。 |
create | 創建一個新的跨平臺應用或者模塊(Module)。 |
devices | 列出所有連接的設備。 |
install | 將跨平臺應用安裝到連接的設備上。 |
launch | 在設備上運行跨平臺應用。 |
log | 滾動展示正在運行的跨平臺應用的日志。 |
run | 運行跨平臺應用包。 |
test | 執行跨平臺應用包單元測試。 |
uninstall | 將跨平臺應用從設備上卸載。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
提示內容:
ohos@user % ace help
Manage your ArkUI cross-platform app development.
Common commands:
ace create
Create a new ArkUI cross-platform project in the specified directory.
ace run
Run your ArkUI cross-platform application on an attached device or in an emulator.
Usage: ace < command > [options]
Options:
-V, --version output the version number
-d, --device < device > Input device id to specify the device to do something.
-h, --help display help for command
Available commands:
Application:
install Install an ArkUI cross-platform app on an attached device.
launch Launch your ArkUI cross-platform app on an attached device.
log Show log output for running ArkUI cross-platform apps.
run Run your ArkUI cross-platform app on an attached device.
test Run ArkUI cross-platform unit tests for the current project.
uninstall Uninstall an ArkUI cross-platform app on an attached device.
Device:
devices List the connected devices.
Environment:
check Show information about the installed tools.
config Configure ArkUI cross-platform settings.
Project:
build Build an executable app or install a bundle.
clean Delete the build/ directories.
create Create a new ArkUI cross-platform project.
new Create a new ability or module for your project.
Run "ace help < command >" for more information about a command.
審核編輯 黃宇
-
Android
+關注
關注
12文章
3945瀏覽量
127934 -
模擬器
+關注
關注
2文章
881瀏覽量
43421 -
鴻蒙
+關注
關注
57文章
2392瀏覽量
43050
發布評論請先 登錄
相關推薦
評論