在成功的實(shí)現(xiàn)系統(tǒng)刷機(jī)方法后,接下來(lái)的一步是開(kāi)始著手建立該開(kāi)發(fā)板的開(kāi)發(fā)環(huán)境。首先閱讀官方提供的開(kāi)發(fā)文檔《軟通動(dòng)力啟航KS_IoT智能開(kāi)發(fā)套件_軟件開(kāi)發(fā)環(huán)境搭建V1》。文檔從環(huán)境要求,軟件工具列表,虛擬機(jī)安裝等做了詳細(xì)的說(shuō)明。這里就按照文檔的操作步驟開(kāi)始搭建開(kāi)發(fā)板的開(kāi)發(fā)環(huán)境。這里使用的VMware Workstation 15Player 虛擬機(jī)軟件,版本為 Ver15.0.2
圖1 OpenHarmony 整體技術(shù)架構(gòu)
一、了解OpenHarmony開(kāi)源項(xiàng)目
在著手基于OpenHarmonyy 應(yīng)用開(kāi)發(fā)之前,首先有必要了解一下OpenHarmony的開(kāi)源項(xiàng)目本身的技術(shù)信息,有利于幫助更好的了解這個(gè)系統(tǒng)的架構(gòu),以便后面更好的上手進(jìn)行開(kāi)發(fā)。這里引用了openharmony 在gitee上的readme里的部分內(nèi)容,從這個(gè)內(nèi)容里可以了解系統(tǒng)的主要架構(gòu)和應(yīng)用軟件的一些規(guī)范定義,比如它的應(yīng)用稱(chēng)為 FA/PA. FA 就是我們理解的APP,具有UI元素的應(yīng)用,而PA則是后臺(tái)應(yīng)用,無(wú)界面的一種APP,這個(gè)在Android是android service的概念。
OpenHarmonyOS基本介紹
OpenHarmony是由開(kāi)放原子開(kāi)源基金會(huì)(OpenAtom Foundation)的開(kāi)源項(xiàng)目,它面向全場(chǎng)景、全連接、全智能時(shí)代場(chǎng)景下的應(yīng)用,基于開(kāi)源的方式,搭建一個(gè)智能終端設(shè)備操作系統(tǒng)的框架和平臺(tái),促進(jìn)萬(wàn)物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。
系統(tǒng)總體架構(gòu)
OpenHarmony整體遵從分層設(shè)計(jì),從下向上依次為:內(nèi)核層、系統(tǒng)服務(wù)層、框架層和應(yīng)用層。系統(tǒng)功能按照“系統(tǒng) > 子系統(tǒng) > 組件”逐級(jí)展開(kāi),在多設(shè)備部署場(chǎng)景下,支持根據(jù)實(shí)際需求裁剪某些非必要的組件。
內(nèi)核層
核子系統(tǒng):采用多內(nèi)核(Linux內(nèi)核或者LiteOS)設(shè)計(jì),支持針對(duì)不同資源受限設(shè)備選用適合的OS內(nèi)核。內(nèi)核抽象層(KAL,Kernel Abstract Layer)通過(guò)屏蔽多內(nèi)核差異,對(duì)上層提供基礎(chǔ)的內(nèi)核能力,包括進(jìn)程/線(xiàn)程管理、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡(luò)管理和外設(shè)管理等。
驅(qū)動(dòng)子系統(tǒng):驅(qū)動(dòng)框架(HDF)是系統(tǒng)硬件生態(tài)開(kāi)放的基礎(chǔ),提供統(tǒng)一外設(shè)訪(fǎng)問(wèn)能力和驅(qū)動(dòng)開(kāi)發(fā)、管理框架。
系統(tǒng)服務(wù)層
系統(tǒng)服務(wù)層是OpenHarmony的核心能力集合,通過(guò)框架層對(duì)應(yīng)用程序提供服務(wù)。該層包含以下幾個(gè)部分:
系統(tǒng)基本能力子系統(tǒng)集:為分布式應(yīng)用在多設(shè)備上的運(yùn)行、調(diào)度、遷移等操作提供了基礎(chǔ)能力,由分布式軟總線(xiàn)、分布式數(shù)據(jù)管理、分布式任務(wù)調(diào)度、公共基礎(chǔ)庫(kù)、多模輸入、圖形、安全、AI等子系統(tǒng)組成。
基礎(chǔ)軟件服務(wù)子系統(tǒng)集:提供公共的、通用的軟件服務(wù),由事件通知、電話(huà)、多媒體、DFX(Design For X) 等子系統(tǒng)組成。
增強(qiáng)軟件服務(wù)子系統(tǒng)集:提供針對(duì)不同設(shè)備的、差異化的能力增強(qiáng)型軟件服務(wù),由智慧屏專(zhuān)有業(yè)務(wù)、穿戴專(zhuān)有業(yè)務(wù)、IoT專(zhuān)有業(yè)務(wù)等子系統(tǒng)組成。
硬件服務(wù)子系統(tǒng)集:提供硬件服務(wù),由位置服務(wù)、用戶(hù)IAM、穿戴專(zhuān)有硬件服務(wù)、IoT專(zhuān)有硬件服務(wù)等子系統(tǒng)組成。
根據(jù)不同設(shè)備形態(tài)的部署環(huán)境,基礎(chǔ)軟件服務(wù)子系統(tǒng)集、增強(qiáng)軟件服務(wù)子系統(tǒng)集、硬件服務(wù)子系統(tǒng)集內(nèi)部可以按子系統(tǒng)粒度裁剪,每個(gè)子系統(tǒng)內(nèi)部又可以按功能粒度裁剪。
框架層
框架層為應(yīng)用開(kāi)發(fā)提供了C/C++/JS等多語(yǔ)言的用戶(hù)程序框架和Ability框架,適用于JS語(yǔ)言的ArkUI框架,以及各種軟硬件服務(wù)對(duì)外開(kāi)放的多語(yǔ)言框架API。根據(jù)系統(tǒng)的組件化裁剪程度,設(shè)備支持的API也會(huì)有所不同。
應(yīng)用層
應(yīng)用層包括系統(tǒng)應(yīng)用和第三方非系統(tǒng)應(yīng)用。應(yīng)用由一個(gè)或多個(gè)FA(Feature Ability)或PA(Particle Ability)組成。其中,F(xiàn)A有UI界面,提供與用戶(hù)交互的能力;而PA無(wú)UI界面,提供后臺(tái)運(yùn)行任務(wù)的能力以及統(tǒng)一的數(shù)據(jù)訪(fǎng)問(wèn)抽象。基于FA/PA開(kāi)發(fā)的應(yīng)用,能夠?qū)崿F(xiàn)特定的業(yè)務(wù)功能,支持跨設(shè)備調(diào)度與分發(fā),為用戶(hù)提供一致、高效的應(yīng)用體驗(yàn)。
開(kāi)發(fā)環(huán)境配置介紹:
Windwos環(huán)境供開(kāi)發(fā)者參考:
硬件:CPU Intel(R) Core(TM)i7-4770HQ CPU @ 2.20GHz 2.20 GHz
內(nèi)存:16G
硬盤(pán):1T
操作系統(tǒng):Win10, Vmware 15 Player
二、安裝集成應(yīng)用開(kāi)發(fā)IDE
因?yàn)镺penharmony 還沒(méi)有直接可用的集成開(kāi)發(fā)軟件,因此開(kāi)發(fā)者一般使用基于OpenHarmony開(kāi)發(fā)使用華為的HarmonyOS 的集成開(kāi)發(fā)工具,因?yàn)槿A為HarmonyOS的底層和OpenHarmony是一樣的,所以可以使用華為的集成應(yīng)用開(kāi)發(fā)工具來(lái)做OpenHarmony的應(yīng)用開(kāi)發(fā),開(kāi)發(fā)軟件工具名字叫 DevEco Studio,最新版本為3.0,下面頁(yè)面地址即可下載。https://developer.harmonyos.com/cn/develop/deveco-studio#download
圖2 安裝集成開(kāi)發(fā)環(huán)境
圖3 配置開(kāi)發(fā)環(huán)境
圖4 安裝進(jìn)行中
圖5 安裝各種插件
圖6 安裝Nodejs 運(yùn)行框架
圖8 開(kāi)發(fā)環(huán)境設(shè)置
圖9 下載Openharmony 語(yǔ)言模板
圖10 下載其它相關(guān)組件
三、創(chuàng)建鴻蒙Hello,world 程序
安裝完集成開(kāi)發(fā)環(huán)境之后,就可以創(chuàng)建一個(gè)簡(jiǎn)單的測(cè)試程序,來(lái)測(cè)試驗(yàn)證開(kāi)發(fā)環(huán)境是否正確。打開(kāi)DevEco Studio,選擇創(chuàng)建應(yīng)用,如下圖:
圖11 創(chuàng)建新應(yīng)用
下一步選擇平臺(tái),這里注意,要選擇 OpenHarmony, 這里默認(rèn)是HarmonyOS ,注意不要選錯(cuò)了,HarmonyOS是華為的商業(yè)系統(tǒng),而OpenHarmony才是開(kāi)源社區(qū)的,這里也說(shuō)一下華為,既然提供工具,就不要給自家打廣告了,顯的格局太小。
圖12 創(chuàng)建應(yīng)用模板
選擇好平臺(tái)后,出現(xiàn)應(yīng)用模板,可以按到這里有兩種,一種是基于 ejs, 的開(kāi)發(fā),一種是c++的開(kāi)發(fā),ejs 是H5 框架開(kāi)發(fā)的一種技術(shù),做應(yīng)用如同做頁(yè)面一樣簡(jiǎn)單,所以這里就選擇 ejs 模板了。然后填寫(xiě)一些應(yīng)用的參數(shù)信息,名稱(chēng),項(xiàng)目路徑,語(yǔ)言等。就可以了。
圖13 配置應(yīng)用相關(guān)參數(shù)
點(diǎn)擊完成,就進(jìn)入到項(xiàng)目里了,看一下代碼,真的很簡(jiǎn)潔,如果熟悉 javascript的同學(xué),恍惚認(rèn)為是在做頁(yè)面開(kāi)發(fā),是的,做鴻蒙js應(yīng)用開(kāi)發(fā),就是這么沒(méi)有“技術(shù)”含量,項(xiàng)目源碼界面:
圖14 應(yīng)用軟件代碼編輯
也可以切換到UI編輯界面可以看到現(xiàn)在Hello,world的UI設(shè)計(jì),這里稍微改一下,界面上加上板子的供應(yīng)商名字,以示我做開(kāi)發(fā)了,哈哈。
做完開(kāi)發(fā)后,點(diǎn)擊build里的編譯,很快幾步提示,編譯成功。應(yīng)用開(kāi)發(fā)就這這么簡(jiǎn)單且無(wú)趣。
圖15 應(yīng)用軟件UI設(shè)計(jì)器
四、編輯和編譯程序
編譯程序很簡(jiǎn)單,在見(jiàn)面上找到build,選擇編譯即可。編譯完后,開(kāi)發(fā)打包,生成可以下載開(kāi)發(fā)板的app軟件,同樣在build界面上,點(diǎn)擊構(gòu)建安裝包,就開(kāi)始進(jìn)行打包工作。
首次打開(kāi)會(huì)彈出一個(gè)安全證書(shū)請(qǐng)求的要求,原來(lái)鴻蒙的應(yīng)用都需要CA簽名,按提示說(shuō)明,填入相關(guān)的信息,進(jìn)行證書(shū)的制作。這一步看著填的東西很多,其實(shí)很簡(jiǎn)單,按文檔或者網(wǎng)上的教程照做,簡(jiǎn)單幾步就可以過(guò)去了。
其中有一步需要登錄得到華為網(wǎng)上做身份認(rèn)證,選擇個(gè)人身份就可以了,個(gè)人身份認(rèn)證還需要實(shí)名認(rèn)證,這一點(diǎn)不得不說(shuō)鴻蒙對(duì)應(yīng)用開(kāi)發(fā)的安全管控做的非常周密了,以后不會(huì)像某些平臺(tái)上,各種惡意匿名的惡意軟件橫行,讓人防不勝防的情況產(chǎn)生了。
圖16 生成公鑰
圖17 生成設(shè)備請(qǐng)求證書(shū)
圖18 注冊(cè)驗(yàn)證鴻蒙開(kāi)發(fā)者賬號(hào)
獲取完證書(shū),就可以打包生成可以下載的APP了,如下圖所示:
圖19編譯打包應(yīng)用
下載APP也很簡(jiǎn)單,收件把開(kāi)發(fā)板插入電腦,然后在開(kāi)發(fā)工具里打開(kāi)DevEco Studio里的設(shè)備管理,選擇本地設(shè)備,就可以看到開(kāi)發(fā)板了,如果沒(méi)有出現(xiàn),那么說(shuō)明開(kāi)發(fā)板的SDK的版本和開(kāi)發(fā)軟件里的SDK版本不一致,搞不清版本的情況,可以進(jìn)入SDK管理項(xiàng)里,把所有能用的SDK都勾選上,全部下載安裝上,這樣就可以看到開(kāi)發(fā)板了。下載更多版本的SDK,需要點(diǎn)時(shí)間和更多的硬盤(pán)空間。
圖20開(kāi)發(fā)板模擬器和設(shè)備管理
此時(shí)回到開(kāi)發(fā)界面,在右上角設(shè)備列表里,會(huì)出現(xiàn)開(kāi)發(fā)板的ID,如果沒(méi)有在下拉列表里會(huì)有,選擇上即可以,然后點(diǎn)右側(cè)的“運(yùn)行”,即自動(dòng)的安裝運(yùn)行,如下圖:
圖21下載到開(kāi)發(fā)板測(cè)試運(yùn)行
然后開(kāi)發(fā)板的顯示器界面上就會(huì)自動(dòng)的安裝并運(yùn)行我們開(kāi)發(fā)的APP程序了,其中可以注意到,應(yīng)用的安裝運(yùn)行是通過(guò)命令行進(jìn)行的,這些命令可以在命令行運(yùn)行,進(jìn)入到SDK的toolchains目錄下,運(yùn)行這些命令,一樣可以進(jìn)行安裝,運(yùn)行和停止,卸載。非常方便。和Android的ADB工具模式是類(lèi)似的。
hdc_std uninstall com.example.myapplication hdc_std install -r "E:HuaweiOpenHarmonyProjMyApplicationentryuilddefaultoutputsdefaultentry-default-signed.hap" hdc_std shell aa start -a com.example.myapplication.MainAbility -b com.example.myapplication
(左右移動(dòng)查看全部?jī)?nèi)容)
五、板上運(yùn)行程序
把編譯打包好的程序發(fā)布到開(kāi)發(fā)板上,一種方式就是,通過(guò)DevEco在板上安裝,運(yùn)行。另外一個(gè)方式就是通過(guò)命令行來(lái)進(jìn)行安裝。同時(shí)因?yàn)闇y(cè)試程序只做了一個(gè)界面,沒(méi)有退出按鈕,所以應(yīng)用無(wú)法退出。此時(shí)也可以通過(guò)命令行來(lái)終止運(yùn)行:
hdc_std.exe shell aa force-stopcom.example.myapplication
(左右移動(dòng)查看全部?jī)?nèi)容)
板上運(yùn)行效果如圖:
圖22 板上運(yùn)行效果
審核編輯:湯梓紅
-
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5050瀏覽量
97471 -
開(kāi)發(fā)環(huán)境
+關(guān)注
關(guān)注
1文章
225瀏覽量
16617 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3722瀏覽量
16317 -
鴻湖萬(wàn)聯(lián)
+關(guān)注
關(guān)注
1文章
68瀏覽量
639
原文標(biāo)題:鴻湖萬(wàn)聯(lián)揚(yáng)帆系列“競(jìng)”開(kāi)發(fā)板測(cè)評(píng):開(kāi)源鴻蒙應(yīng)用軟件開(kāi)發(fā)
文章出處:【微信號(hào):HarmonyOS_Community,微信公眾號(hào):電子發(fā)燒友開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論