鴻蒙開發(fā)工具 DevEco Studio 3.0 體驗與項目介紹
??想了解更多關(guān)于開源的內(nèi)容,請訪問:??
開發(fā)工具介紹
HuaWei DevEco Studio 是基于 IntelliJ IDEA Community 開源版本打造,面向全場景多設(shè)備,提供一站式的應(yīng)用/服務(wù)集成開發(fā)環(huán)境(IDE),支持分布式多端開發(fā)、分布式多端調(diào)測、多端模擬仿真,提供全方位的質(zhì)量與安全保障。
DevEco Studio 3.0支持 HarmonyOS 3.0 的應(yīng)用及服務(wù)開發(fā),提供了代碼智能編輯、低代碼開發(fā)、界面調(diào)試雙向預(yù)覽、全新構(gòu)建工具、模擬器等功能,同時支持 OpenHarmony 應(yīng)用及服務(wù)開發(fā)。
支持 Windows 和 Mac 版本,官網(wǎng)點??此處??。
創(chuàng)建新 HarmonyOS 項目
我們打開 DevEco Studio 3.0 開發(fā)工具,可以在界面左側(cè)有四種創(chuàng)建項目的方式:
- Create Project : 創(chuàng)建一個新的 HarmonyOS 項目
- Open Project:打開一個本地的 HarmonyOS 項目,因為我們還沒有建立項目,所以沒有本地項目
- Get from VCS : 使用版本控制工具導(dǎo)入項目,這種方式支持 Git、Subversion 等多種版本管理工具導(dǎo)入
- Import Sample : 導(dǎo)入 HarmonyOS 的案例項目。
- 創(chuàng)建一個新的 HarmonyOS 項目,可以進入模板選擇頁面,此處 DevEco Studio 3.0 版本并沒有像 2.0 版本那么多的模板,只有三個主選項卡:
- Empty Ability:本模板支持 JavaScript、eTS、Java 語言進行開發(fā),用于設(shè)備的Feature Ability模板。
- Native C++:支持 Java、JavaScript、eTS 開發(fā)語言,用于 Phone、Car 設(shè)備的 Feature Ability 模板
- [Lite] Empty Ability:只支持 JavaScript,用于 Lite Wearable、Smart Vision、Router 設(shè)備的 Feature Ability 模板
- 根據(jù)工程創(chuàng)建向?qū)?,?HarmonyOS 頁簽,選擇需要的 Ability 工程模板,選擇第一個Create Project:
- 點右下角的下一步Next,就能看到如下界面 :
- Project name:工程的名稱,可以自定義,就像變量的命名一樣,支持大小寫字母、數(shù)據(jù)和下劃線
- Project Type: 工程的類型,標(biāo)識該工程是一個傳統(tǒng)方式的需要安裝的應(yīng)用(Application,簡稱應(yīng)用),或原子化服務(wù)(Atomic service,簡稱服務(wù))。
- Bundle name:軟件包名稱,默認情況下,應(yīng)用/服務(wù)ID也會使用該名稱,應(yīng)用/服務(wù)發(fā)布時,應(yīng)用/服務(wù) ID 需要唯一。如果 “Project type” 選擇了 Atomic service,則 Bundle name 的后綴名必須是.hmservice 。
- Save location:工程文件本地存儲路徑,就是你的文件保存到哪里,可以選擇默認,文件路徑由大小寫字母、數(shù)字和下劃線等組成,不能包含中文字符。
- Compile SDK:應(yīng)用/服務(wù)的目標(biāo) API Version,在編譯構(gòu)建時,DevEco Studio 會根據(jù)指定的 Compile API 版本進行編譯打包。
- Model:應(yīng)用支持的模式,API Version 4~8只支持FA模式。
- Enable Super Visual:支持低代碼開發(fā)模式,部分模板支持低代碼開發(fā),可選擇打開該開關(guān)。
- Language:開發(fā)語言。
- Compatible SDK:兼容的最低API Version。
- Device type:該工程模板支持的設(shè)備類型。如果你沒在這里配置Device Type,那么可以手動在配置文件config.json中添加
- Show in service center:是否在服務(wù)中心展示。如果Project type 為 Atomic service,則會同步創(chuàng)建一個 22 宮格的服務(wù)卡片模板,同時還會創(chuàng)建入口卡片;如果 Project type 為 Application,則只會創(chuàng)建一個 22 宮格的服務(wù)卡片模板。這個選項用來創(chuàng)建在服務(wù)中心展示的原子化服務(wù)。
- 此處可以默認,然后點擊完成,工具會自動生成示例代碼和相關(guān)資源,等待工程創(chuàng)建完成。然后會得到如下的界面:
項目目錄(API Version 8)
在之前的文章中,只是簡單的運行然后看到一個 HelloWorld 的輸出結(jié)果,這次我們在運行項目之前,先來介紹通常的 HarmonyOS 的項目目錄,也就是先看看開發(fā)工具自動生成的左側(cè)項目層級目錄。
- .idea : 這個目錄用于存儲項目的配置信息,包括歷史記錄、版本控制信息等,由開發(fā)工具自動生成,一般情況下不需要進行修改。
- entry: 這個目錄是程序中最重要的目錄,是應(yīng)用的主模塊,一個應(yīng)用程序只有一個 Entry 模塊。應(yīng)用程序的代碼和資源文件都保存在這個目錄下。HarmonyOS 工程模塊,編譯構(gòu)建生成一個Hap包,entry 目錄還包括若干子目錄。
- .gitignore : 該文件用于在 git 版本控制中選擇將哪些文件或目錄忽略,使其不用被 git 管理,比如 IDE 自身的配置信息等。
- build-profile.json5:應(yīng)用級配置信息,包括簽名、產(chǎn)品配置等。
- hvigorfile.js:應(yīng)用級編譯構(gòu)建任務(wù)腳本。
entry 中的子目錄 src 中包括 main、ohosTest 目錄:
- src > main > ets:用于存放 ets 源碼
- src > main > ets > MainAbility:應(yīng)用/服務(wù)的入口。
- src > main > ets > MainAbility > pages:MainAbility 包含的頁面。默認創(chuàng)建了一個index.ets :
- src > main > ets > MainAbility > app.ets:承載Ability 生命周期。
- src > main > resources:用于存放應(yīng)用/服務(wù)所用到的資源文件,如圖形、多媒體、字符串、布局文件等。
- src > main > config.json:模塊配置文件,主要包含 HAP 包的配置信息、應(yīng)用在具體設(shè)備上的配置信息以及應(yīng)用的全局配置信息。
- entry >build-profile.json5:當(dāng)前的模塊信息、編譯信息配置項,包括 buildOption、targets 配置等。
- entry >hvigorfile.js:模塊級編譯構(gòu)建任務(wù)腳本。
運行項目
最后介紹如何將 HarmonyOS 程序運行到模擬器上。目前,華為為開發(fā)者提供了遠程模擬器,可以供開發(fā)者在線調(diào)試運行程序。遠程模擬器為華為后臺服務(wù)器使用虛擬化技術(shù)運行的 HarmonyOS。應(yīng)用在模擬器中運行不需要簽名,可直接運行。
在 DevEco Studio 的菜單欄中選擇 “Tools”→“Device Manager” 選項,頁面會跳轉(zhuǎn)到華為賬號,點擊“允許”,然后按照相應(yīng)的瀏覽器打開界面進行操作,最后就能回到 DevEco Studio 卡納都相應(yīng)的設(shè)備模擬器,然后我們選擇 P50,點擊右上角的運行:
點擊后面的綠色三角按鈕運行模擬器,就可以看到項目運行成功:
在模擬器啟動后,可以直接運行剛才創(chuàng)建的 HarmonyOS 項目到模擬器上。在 DevEco Studio 頁面的右上方位置有與運行程序相關(guān)的操作區(qū)域,如下圖所示。最左側(cè)的模塊為要運行的模塊,新創(chuàng)建的項目中默認生成了 Entry 模塊,目錄名稱為entry ,這里暫時只有這一個模塊可選,如果項目中新建了其他 module,這里就可以選擇運行對應(yīng)的模塊。
總結(jié)
到了本文的總結(jié)時刻了,一番體驗下來,發(fā)現(xiàn) DevEco Studio 3 和 2 在界面上還是有一點區(qū)別,但是整體的結(jié)構(gòu)差不多。此文,本文還比較項目的介紹了經(jīng)典 HarmonyOS 應(yīng)用的目錄結(jié)構(gòu),最后非常容易的在遠程模擬器處運行了 HelloWorld 項目。