目錄
1 -> 工具簡介
1.1 -> 概述
1.2 -> HarmonyOS應用/服務開發流程
1.2.1 -> 開發準備
1.2.2 -> 開發應用/服務
1.2.3 -> 運行、調試和測試應用/服務
1.2.4 -> 發布應用/服務
2 -> 工程介紹
2.1 -> APP包結構
2.2 -> 切換工程視圖
3 -> 工程目錄結構
3.1 -> ArkTS工程目錄結構(Stage模型)
3.2 -> C++工程目錄結構(Stage模型)
3.3 -> JS工程目錄結構(FA模型)
1 -> 工具簡介
1.1 -> 概述
HUAWEI DevEco Studio(以下簡稱DevEco Studio)是基于IntelliJ IDEA Community開源版本打造,面向全場景多設備,提供一站式的分布式應用開發平臺,支持分布式多端開發、分布式多端調測、多端模擬仿真,全方位的質量與安全保障。
作為一款開發工具,除了具有基本的代碼開發、編譯構建及調測等功能外,DevEco Studio還具有如下特點:
- 高效智能代碼編輯:支持eTS、JavaScript、C/C++等語言的代碼高亮、代碼智能補齊、代碼錯誤檢查、代碼自動跳轉、代碼格式化、代碼查找等功能,提升代碼編寫效率。
- 低代碼可視化開發:豐富的UI界面編輯能力,支持自由拖拽組件和可視化數據綁定,可快速預覽效果,所見即所得;同時支持卡片的零代碼開發,降低開發門檻和提升界面開發效率。
- 多端雙向實時預覽:支持UI界面代碼的雙向預覽、實時預覽、動態預覽、組件預覽以及多端設備預覽,便于快速查看代碼運行效果。
- 多端設備模擬仿真:提供HarmonyOS本地模擬器、遠程模擬器、超級終端模擬器,支持手機、智慧屏、智能穿戴等多端設備的模擬仿真,便捷獲取調試環境。
1.2 -> HarmonyOS應用/服務開發流程
使用DevEco Studio,只需要按照如下幾步,即可輕松開發并上架一個HarmonyOS應用/服務到華為應用市場。
1.2.1 -> 開發準備
開發工具的安裝以及環境的配置參考往期文章:
【HarmonyOS之旅】DevEco Studio的安裝與環境配置
1.2.2 -> 開發應用/服務
DevEco Studio集成了手機、智慧屏、智能穿戴等設備的典型場景模板,可以通過工程向導輕松的創建一個新的工程。
接下來還需要定義應用/服務的UI、開發業務功能等編碼工作,可以根據HarmonyOS應用開發概述來查看具體的開發過程,通過查看API接口文檔查閱需要調用的API接口。
在開發代碼的過程中,可以使用預覽器查看應用/服務效果,支持實時預覽、動態預覽、雙向預覽等功能,使編碼的過程更高效。
1.2.3 -> 運行、調試和測試應用/服務
應用/服務開發完成后,可以???????使用真機進行調試(需要申請調測證書進行簽名)或者???????使用模擬器進行調試,支持單步調試、跨設備調試、跨語言調試、變量可視化等調試手段,使得應用/服務調試更加高效。
HarmonyOS應用/服務開發完成后,在發布到應用/服務市場前,還需要???????對應用進行測試,主要包括漏洞、隱私、兼容性、穩定性、性能等進行測試,確保HarmonyOS應用/服務純凈、安全,給用戶帶來更好的使用體驗。
1.2.4 -> 發布應用/服務
HarmonyOS應用/服務開發、測試完成后,需要???????將應用/服務發布至應用市場,以便應用市場對應用/服務進行分發,普通消費者可以通過應用市場或服務中心獲取到對應的HarmonyOS應用/服務。需要注意的是,發布到華為應用市場或服務中心的HarmonyOS應用/服務,必須使用應用市場頒發的發布證書進行簽名。
2 -> 工程介紹
2.1 -> APP包結構
在進行應用/元服務開發前,開發者應該掌握應用/元服務的邏輯結構。
應用/元服務發布形態為APP Pack(Application Package),它是由一個或多個???????HAP(Harmony Ability Package)包以及描述APP Pack屬性的pack.info文件組成。
一個HAP在工程目錄中對應一個Module,它是由代碼、資源、三方庫及應用/元服務配置文件組成,HAP可以分為Entry和Feature兩種類型。
-
Entry:應用的主模塊,作為應用的入口,提供了應用的基礎功能。
-
Feature:應用的動態特性模塊,作為應用能力的擴展,可以根據用戶的需求和設備類型進行選擇性安裝。
基于Stage模型和FA模型開發的應用,應用程序包結構并不相同。
Stage模型應用程序包結構如下圖所示。
FA模型應用程序包結構如下圖所示。
2.2 -> 切換工程視圖
DevEco Studio工程目錄結構提供工程視圖和Ohos視圖。工程視圖(Project)展示工程中實際的文件結構,Ohos視圖會隱藏一些編碼中不常用到的文件,并將常用到的文件進行重組展示,方便開發者查詢或定位所需編輯的模塊或文件。
工程創建或打開后,默認顯示工程視圖,如果要切換到Ohos視圖,在左上角單擊Project?>?Ohos進行切換。
3 -> 工程目錄結構
3.1 -> ArkTS工程目錄結構(Stage模型)
ArkTS Stage模型支持API Version 10及以上版本,其工程目錄結構如下圖所示:
- AppScope > app.json5:應用的全局配置信息。
- entry:應用/元服務模塊,編譯構建生成一個HAP。
- src > main > ets:用于存放ArkTS源碼。
- src > main > ets > entryability:應用/元服務的入口。
- src > main > ets > pages:應用/元服務包含的頁面。
- src > main > resources:用于存放應用/元服務模塊所用到的資源文件,如圖形、多媒體、字符串、布局文件等。
資源目錄 | 資源文件說明 |
base>element | 包括字符串、整型數、顏色、樣式等資源的json文件。每個資源均由json格式進行定義,例如:
|
base>media | 多媒體文件,如圖形、視頻、音頻等文件,支持的文件格式包括:.png、.gif、.mp3、.mp4等。 |
rawfile | 用于存儲任意格式的原始資源文件。rawfile不會根據設備的狀態去匹配不同的資源,需要指定文件路徑和文件名進行引用。 |
-
- src > main > module.json5:Stage模型模塊配置文件,主要包含HAP的配置信息、應用在具體設備上的配置信息以及應用的全局配置信息。
- build-profile.json5:當前的模塊信息、編譯信息配置項,包括buildOption、targets配置等。
- hvigorfile.ts:模塊級編譯構建任務腳本。
- oh-package.json5:描述三方包的包名、版本、入口文件(類型聲明文件)和依賴項等信息。
- oh_modules:用于存放三方庫依賴信息,包含應用/元服務所依賴的第三方庫文件。
- build-profile.json5:應用級配置信息,包括簽名、產品配置等。
- hvigorfile.ts:應用級編譯構建任務腳本。
- oh-package.json5:描述全局配置,如:依賴覆蓋(overrides)、依賴關系重寫(overrideDependencyMap)和參數化配置(parameterFile)等。
3.2 -> C++工程目錄結構(Stage模型)
C++ Stage模型支持API Version 10以上版本,支持使用ArkTS+C++進行開發,其工程目錄結構如下圖所示。
- entry:應用模塊,編譯構建生成一個HAP。
- src > main > cpp > types:用于存放C++的API接口描述文件
- src > main > cpp > types?> libentry > index.d.ts:描述C++ API接口行為,如接口名、入參、返回參數等。
- src > main > cpp > types?> libentry> oh-package.json5:配置.so三方包聲明文件的入口及包名。
- src > main > cpp > CMakeLists.txt:CMake配置文件,提供CMake構建腳本。
- src > main > cpp > napi_init.cpp:定義C++ API接口的文件。
- src > main > ets:用于存放ArkTS源碼。
- src > main > resources:用于存放應用所用到的資源文件,如圖形、多媒體、字符串、布局文件等。
資源目錄 | 資源文件說明 |
base>element | 包括字符串、整型數、顏色、樣式等資源的json文件。每個資源均由json格式進行定義,例如:
|
base>media | 多媒體文件,如圖形、視頻、音頻等文件,支持的文件格式包括:.png、.gif、.mp3、.mp4等。 |
rawfile | 用于存儲任意格式的原始資源文件。rawfile不會根據設備的狀態去匹配不同的資源,需要指定文件路徑和文件名進行引用。 |
-
- src > main > module.json5:Stage模塊配置文件,主要包含HAP的配置信息、應用在具體設備上的配置信息以及應用的全局配置信息。
- build-profile.json5:當前的模塊信息、編譯信息配置項,包括buildOption、targets配置等。
- hvigorfile.ts:模塊級編譯構建任務腳本。
- build-profile.json5:應用級配置信息,包括簽名、產品配置等。
- hvigorfile.ts:應用級編譯構建任務腳本。
3.3 -> JS工程目錄結構(FA模型)
JS工程只支持FA模型,其工程目錄結構如下圖所示:
- entry:應用/元服務模塊,編譯構建生成一個HAP。
- src > main > js:用于存放js源碼。
- src > main > js > MainAbility:應用/元服務的入口。
- src > main > js > MainAbility > i18n:用于配置不同語言場景資源內容,比如應用文本詞條、圖片路徑等資源。
- src > main > js > MainAbility > pages:MainAbility包含的頁面。
- src > main > js > MainAbility > app.js:承載Ability生命周期。
- src > main > resources:用于存放應用/元服務所用到的資源文件,如圖形、多媒體、字符串、布局文件等。
資源目錄 | 資源文件說明 |
base>element | 包括字符串、整型數、顏色、樣式等資源的json文件。每個資源均由json格式進行定義,例如:
|
base>media | 多媒體文件,如圖形、視頻、音頻等文件,支持的文件格式包括:.png、.gif、.mp3、.mp4等。 |
rawfile | 用于存儲任意格式的原始資源文件。rawfile不會根據設備的狀態去匹配不同的資源,需要指定文件路徑和文件名進行引用。 |
-
- src > main > config.json:模塊配置文件,主要包含HAP的配置信息、應用在具體設備上的配置信息以及應用的全局配置信息。
- build-profile.json5:當前的模塊信息、編譯信息配置項,包括buildOption、targets配置等。
- hvigorfile.ts:模塊級編譯構建任務腳本。
- oh-package.json5:配置三方包聲明文件的入口及包名。
- build-profile.json5:應用級配置信息,包括簽名、產品配置等。
- hvigorfile.ts:應用級編譯構建任務腳本。
感謝各位大佬支持!!!
互三啦!!!