1?下載與安裝DevEco Studio
在HarmonyOS應(yīng)用開發(fā)學(xué)習(xí)之前蜒犯,需要進行一些準(zhǔn)備工作依疼,首先需要完成開發(fā)工具DevEco Studio的下載與安裝以及環(huán)境配置孙技。
進入DevEco Studio下載官網(wǎng)棠枉,單擊“立即下載”進入下載頁面晕粪。
DevEco Studio提供了Windows版本和Mac版本選擇,可以根據(jù)操作系統(tǒng)選擇對應(yīng)的版本進行下載垦沉。
這里以Windows為例進行安裝煌抒。
下載完成后,雙擊下載的“deveco-studio-xxxx.exe”厕倍,進入DevEco Studio安裝向?qū)Ч炎常谌缦陆缑孢x擇安裝路徑,默認安裝于“C:\Program Files”下讹弯,也可以單擊“Browse...”指定其他安裝路徑况既,然后單擊“Next”。
如下安裝選項界面勾選DevEco Studio后组民,單擊“Next”棒仍,直至安裝完成。
安裝完成后臭胜,單擊“Finish”完成安裝莫其。
2?配置環(huán)境
配置npm
雙擊已安裝的DevEco Studio快捷方式進入配置頁面,首次使用耸三,請選擇“Do not import
settings”乱陡,單擊“OK”。
進入DevEco Studio操作向?qū)ы撁媛郎危O(shè)置npm registry蛋褥,DevEco Studio已預(yù)置對應(yīng)的倉庫临燃,直接單擊“Start using
DevEco Studio”進入下一步睛驳。
配置Node.js
進入Node.js的配置頁,選擇Dowload膜廊,從Huawei mirror下載對應(yīng)的版本乏沸,“Location”建議自行設(shè)置指定位置。
?單擊“Next”爪瓜,系統(tǒng)會開始下載Node.js蹬跃,等待下載完成即可。
?下載完成后單擊“Finish”铆铆,進入下一步蝶缀。
下載SDK
在SDK
Components Setup界面,可以自行設(shè)置HarmonyOS SDK存儲路徑薄货。單擊“Next”進入下一步翁都。
在彈出的SDK下載頁面,單擊“Next”谅猾,并在彈出的License Agreement窗口柄慰,閱讀License協(xié)議鳍悠,需同意License協(xié)議后,單擊“Next”開始下載SDK坐搔。
等待SDK下載完成后藏研,單擊“Finish”,完成SDK的下載概行,界面會進入到DevEco Studio歡迎頁蠢挡。
準(zhǔn)備工作完成后,接下來將進入DevEco Studio進行工程創(chuàng)建和運行占锯。
3?創(chuàng)建項目
如果你是首次打開DevEco Studio袒哥,那么首先會進入歡迎頁。
單擊Create Project消略,進入項目創(chuàng)建頁面堡称。
DevEco Studio為我們提供了HarmonyOS和OpenHarmony的創(chuàng)建模板,我們這里選擇創(chuàng)建HarmonyOS艺演,然后選擇Empty Ability却紧,單擊“Next”,進入工程配置頁胎撤。
編輯
配置頁中晓殊,詳細信息如下:
Project name是開發(fā)者可以自行設(shè)置的項目名稱,這里根據(jù)自己選擇修改為自己項目名稱伤提。
Project type項目類型可以選擇Application和Atomic
? ? service巫俺。
Bundle name是包名稱,默認情況下應(yīng)用ID也會使用該名稱肿男,應(yīng)用發(fā)布時對應(yīng)的ID需要保持一致介汹。
Save location為工程保存路徑,建議用戶自行設(shè)置相應(yīng)位置舶沛。
Compile SDK是編譯的API版本嘹承,這里默認選擇API9。
Model選擇Stage模型如庭,其他保持默認即可叹卷。
然后單擊“Finish”完成工程創(chuàng)建,等待工程同步完成坪它。
4?認識DevEco Studio界面
代碼編輯區(qū)
進入DevEco Studio頁面后骤竹,首先了解整體的界面和功能,中間的是代碼編輯區(qū)往毡,你可以在這里修改你的代碼蒙揣,以及切換顯示的文件。通過按住Ctrl加鼠標(biāo)滾輪卖擅,可以實現(xiàn)界面的放大與縮小鸣奔。
通知欄
在編輯器底部有一行工具欄墨技,主要介紹常用信息欄,其中Run是項目運行時的信息欄挎狸,Problems是當(dāng)前工程錯誤與提醒信息欄扣汪,Terminal是命令行終端,在這里執(zhí)行命令行操作锨匆,PreviewerLog是預(yù)覽器日志輸出欄崭别,Log是模擬器和真機運行時的日志輸出欄。在后續(xù)使用中會陸續(xù)接觸恐锣。
工程目錄區(qū)
左側(cè)為工程目錄區(qū)茅主,后續(xù)章節(jié)會詳細介紹。
預(yù)覽區(qū)
單擊右上角Previewer土榴,可以預(yù)覽相應(yīng)的文件UI展示效果诀姚。
預(yù)覽器提供了一些基本功能,包括旋轉(zhuǎn)屏幕玷禽,切換顯示設(shè)備及多設(shè)備預(yù)覽等赫段。單擊旋轉(zhuǎn)按鈕,可以切換豎屏和橫屏顯示的效果矢赁。
你也可以單擊如下列表按鈕糯笙,切換顯示的設(shè)備類型。彈出框內(nèi)會顯示Available Profiles撩银,即可用的設(shè)備類型给涕。
如單擊Foldable切換設(shè)備,也可以單擊旋轉(zhuǎn)按鈕切換Foldable的橫豎屏顯示模式额获。
打開Muti-profile preview開關(guān)够庙,可以實現(xiàn)多個尺寸設(shè)備的實時預(yù)覽。
單擊預(yù)覽器右上角組件預(yù)覽按鈕咪啡,可以進入組件預(yù)覽界面首启。
組件預(yù)覽模式可以預(yù)覽當(dāng)前組件對應(yīng)的代碼塊暮屡。
點擊相應(yīng)組件撤摸,代碼文件中會框選對應(yīng)的組件代碼部分,下方則對應(yīng)當(dāng)前組件的基本屬性褒纲。
5?運行Hello World
IDE提供了模擬器和真機供開發(fā)者使用准夷,其中模擬器又分為本地模擬器和遠程模擬器。
這里以本地模擬器為例進行介紹
首先打開設(shè)備管理器莺掠,如下所示:
然后如下所示:
此處可以修改模擬器的存儲路徑和新增模擬器衫嵌,建議將默認c盤路徑修改成其他盤符,然后新建模擬器
可以選擇手機模擬器彻秆,TV模擬器楔绞,手表模擬器结闸,這里選擇手機模擬器,然后點擊Next
第一次是沒有下載的酒朵,點擊如上按鈕進行下載桦锄,然后點擊Next,得到如下圖所示的模擬器
點擊IDE的運行項目按鈕蔫耽,如下:
最終會運行到模擬器上面
如上就是鴻蒙系統(tǒng)應(yīng)用開發(fā)環(huán)境搭建以及運行第一個應(yīng)用Hello World
6?了解基本工程目錄
工程級目錄
工程的目錄結(jié)構(gòu)如下结耀。
其中詳細如下:
AppScope中存放應(yīng)用全局所需要的資源文件。
entry是應(yīng)用的主模塊匙铡,存放HarmonyOS應(yīng)用的代碼图甜、資源等。
node_modules是工程的依賴包鳖眼,存放工程依賴的源文件黑毅。
build-profile.json5是工程級配置信息,包括簽名钦讳、產(chǎn)品配置等博肋。
hvigorfile.ts是工程級編譯構(gòu)建任務(wù)腳本,hvigor是基于任務(wù)管理機制實現(xiàn)的一款全新的自動化構(gòu)建工具蜂厅,主要提供任務(wù)注冊編排匪凡,工程模型管理、配置管理等核心能力掘猿。
package.json是工程級依賴配置文件病游,用于記錄引入包的配置信息。
在AppScope稠通,其中有resources文件夾和配置文件app.json5衬衬。
AppScope>resources>base中包含element和media兩個文件夾,其中element文件夾主要存放公共的字符串改橘、布局文件等資源滋尉;media存放全局公共的多媒體資源文件。
entry模塊級目錄
entry>src目錄中主要包含總的main文件夾飞主,單元測試目錄ohosTest狮惜,以及模塊級的配置文件。
main文件夾中碌识,ets文件夾用于存放ets代碼碾篡,resources文件存放模塊內(nèi)的多媒體及布局文件等,module.json5文件為模塊的配置文件筏餐。
ohosTest是單元測試目錄开泽。
build-profile.json5是模塊級配置信息,包括編譯構(gòu)建配置項魁瞪。
hvigorfile.ts文件是模塊級構(gòu)建腳本穆律。
package.json是模塊級依賴配置信息文件惠呼。
進入src>main>ets目錄中,其分為entryability峦耘、pages兩個文件夾罢杉。entryability存放ability文件,用于當(dāng)前ability應(yīng)用邏輯和生命周期管理贡歧;pages存放UI界面相關(guān)代碼文件滩租,初始會生產(chǎn)一個Index頁面。
resources目錄下存放模塊公共的多媒體利朵、字符串及布局文件等資源律想,分別存放在element、media文件夾中绍弟。
配置文件
app.json5
AppScope>app.json5是應(yīng)用的全局的配置文件技即,用于存放應(yīng)用公共的配置信息。
其中配置信息如下:
bundleName是包名樟遣。
vendor是應(yīng)用程序供應(yīng)商而叼。
versionCode是用于區(qū)分應(yīng)用版本。
versionName是版本號豹悬。
icon對于應(yīng)用的顯示圖標(biāo)葵陵。
label是應(yīng)用名。
distributedNotificationEnabled描述應(yīng)用程序是否已分發(fā)通知瞻佛。
module.json5
entry>src>main>module.json5是模塊的配置文件脱篙,包含當(dāng)前模塊的配置信息。
其中module對應(yīng)的是模塊的配置信息伤柄,一個模塊對應(yīng)一個打包后的hap包绊困,hap包全稱是HarmonyOS Ability Package,其中包含了ability适刀、第三方庫秤朗、資源和配置文件。其具體屬性及其描述可以參照下表1笔喉。
表6-1?module.json5默認配置屬性及描述
屬性描述
name該標(biāo)簽標(biāo)識當(dāng)前module的名字取视,module打包成hap后,表示hap的名稱然遏,標(biāo)簽值采用字符串表示(最大長度31個字節(jié))贫途,該名稱在整個應(yīng)用要唯一吧彪。
type表示模塊的類型待侵,類型有三種,分別是entry姨裸、feature和har秧倾。
srcEntrance當(dāng)前模塊的入口文件路徑怨酝。
description當(dāng)前模塊的描述信息。
mainElement該標(biāo)簽標(biāo)識hap的入口ability名稱或者extension名稱那先。只有配置為mainElement的ability或者extension才允許在服務(wù)中心露出农猬。
deviceTypes該標(biāo)簽標(biāo)識hap可以運行在哪類設(shè)備上,標(biāo)簽值采用字符串?dāng)?shù)組的表示售淡。
deliveryWithInstall該標(biāo)簽標(biāo)識當(dāng)前hap是否在用戶主動安裝的時候安裝斤葱,true表示主動安裝時安裝,false表示主動安裝時不安裝揖闸。
installationFree表示當(dāng)前HAP是否支持免安裝特性揍堕,如果此配置項為true,包名必須加上.hservice后綴汤纸。
pages對應(yīng)的是main_pages.json文件衩茸,用于配置ability中用到的page信息。
abilities是一個數(shù)組贮泞,存放當(dāng)前模塊中所有的ability元能力的配置信息楞慈,其中可以有多個ability。
對于abilities中每一個ability的屬性項啃擦,其描述信息如下表2囊蓝。
表6-2?abilities中對象的默認配置屬性及描述
屬性描述
屬性描述
name該標(biāo)簽標(biāo)識當(dāng)前ability的邏輯名,該名稱在整個應(yīng)用要唯一令蛉,標(biāo)簽值采用字符串表示(最大長度127個字節(jié))慎颗。
srcEntranceability的入口代碼路徑。
descriptionability的描述信息言询。
iconability的圖標(biāo)俯萎。該標(biāo)簽標(biāo)識ability圖標(biāo),標(biāo)簽值為資源文件的索引运杭。該標(biāo)簽可缺省夫啊,缺省值為空。如果ability被配置為MainElement辆憔,該標(biāo)簽必須配置撇眯。
labelability的標(biāo)簽名。
startWindowIcon啟動頁面的圖標(biāo)虱咧。
startWindowBackground啟動頁面的背景色熊榛。
visibleability是否可以被其他應(yīng)用程序調(diào)用,true表示可以被其它應(yīng)用調(diào)用腕巡, false表示不可以被其它應(yīng)用調(diào)用玄坦。
skills該標(biāo)簽標(biāo)識能夠接收的意圖的action值的集合,取值通常為系統(tǒng)預(yù)定義的action值话浇,也允許自定義惰匙。
entities該標(biāo)簽標(biāo)識能夠接收Want的元能力的類別集合,取值通常為系統(tǒng)預(yù)定義的類別狠怨,也允許自定義
actions該標(biāo)簽標(biāo)識能夠接收Want的元能力的類別集合择懂,取值通常為系統(tǒng)預(yù)定義的類別喻喳,也允許自定義
main_pages.json
src/main/resources/base/profile/main_pages.json文件保存的是頁面page的路徑配置信息,所有需要進行路由跳轉(zhuǎn)的page頁面都要在這里進行配置困曙。