最近搞一個(gè)sensor接入openharmony的事情,在分析源碼中的加速度計(jì)驅(qū)動(dòng)相關(guān)源碼時(shí),發(fā)現(xiàn)不緊有BUILD.gn文件,還有Makefile文件,并且里面都有記錄源文件路徑。所以很困惑,openharmony是通過(guò)gn+ninja編譯的還是通過(guò)make編譯的?

創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),富平網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:富平等地區(qū)。富平做網(wǎng)站價(jià)格咨詢:13518219792
為了搞清楚,所以針對(duì)liteos-a系統(tǒng)下的編譯過(guò)程進(jìn)行分析,在這里記錄一下
通過(guò)官方文檔看,liteos-a系統(tǒng)編譯時(shí)用的是官方的hb命令 hb set 和 hb build 命令,所以入口肯定是hb工具
查看openharmony源碼中build目錄下有一個(gè)lite/hb目錄(hb命令的源碼目錄,使用python腳本)
看鴻蒙研究站里面有一篇介紹hb命令的調(diào)試方法,通過(guò)vscode+python插件調(diào)試,參見(jiàn) 《v59.xx 鴻蒙內(nèi)核源碼分析(構(gòu)建工具篇) | 順瓜摸藤調(diào)試?guó)櫭蓸?gòu)建過(guò)程》
設(shè)置好之后就可以開(kāi)始在vscode上調(diào)試
這個(gè)是整個(gè)編譯的重點(diǎn),通過(guò)調(diào)試可以看到最終是調(diào)用了gn/ninja/fs_make,如下分析
這個(gè)就是整體的編譯過(guò)程了,先調(diào)用gn生成ninja文件,再通過(guò)ninja進(jìn)行編譯,最后通過(guò)fs_make制作鏡像
因?yàn)閮?nèi)容太多,下面對(duì)這三個(gè)編譯動(dòng)作先做個(gè)整體的介紹,后續(xù)再對(duì)每一個(gè)進(jìn)行詳細(xì)分析
繼續(xù)調(diào)試,會(huì)先進(jìn)入 gn_build 接口,看實(shí)現(xiàn)就是調(diào)用了 gn gen 命令,如下
查看gn_cmd變量,詳細(xì)命令為(比較多,經(jīng)過(guò)了整理):
這個(gè)命令之后,就會(huì)將工程中所有用到的 BUILD.gn 文件轉(zhuǎn)換成 module_name.ninja 文件(類似 makefile )供后面 ninja 命令(類似 make )調(diào)用并進(jìn)行編譯
再繼續(xù)調(diào)試就會(huì)進(jìn)入 ninja_build 接口,實(shí)現(xiàn)以及執(zhí)行的詳細(xì)的 ninja 命令如下
這個(gè)命令與 make 命令類似,但是注重速度(詳細(xì)信息可以在網(wǎng)上搜索兩者區(qū)別);此命令執(zhí)行即是通過(guò)build.ninja/toolchain.ninja/各BUILD.gn轉(zhuǎn)換的.ninja來(lái)進(jìn)行編譯,并生成.bin/.so/.a等文件
整個(gè)編譯OK之后會(huì)輸出如下圖中成功信息
在out目錄下就會(huì)生成燒錄用到的鏡像文件,如下圖
根據(jù)華為公布的方舟編譯器資料,可以得知鴻蒙系統(tǒng)是用C、C++語(yǔ)言編寫。
鴻蒙系統(tǒng)和方舟編譯器的思路是一樣:直接使用機(jī)器語(yǔ)言編寫app,取消安卓系統(tǒng)的ART虛擬機(jī),直接編譯為二進(jìn)制機(jī)器碼;
這樣的好處是:不需要中轉(zhuǎn),執(zhí)行速度快;劣勢(shì)是:必須要有大量的靜態(tài)方案、內(nèi)存空間要求更高。
擴(kuò)展資料
系統(tǒng)簡(jiǎn)介
鴻蒙微內(nèi)核是基于微內(nèi)核的全場(chǎng)景分布式OS,可按需擴(kuò)展,實(shí)現(xiàn)更廣泛的系統(tǒng)安全,主要用于物聯(lián)網(wǎng),特點(diǎn)是低時(shí)延,甚至可到毫秒級(jí)乃至亞毫秒級(jí)。
鴻蒙OS實(shí)現(xiàn)模塊化耦合,對(duì)應(yīng)不同設(shè)備可彈性部署,鴻蒙OS有三層架構(gòu),第一層是內(nèi)核,第二層是基礎(chǔ)服務(wù),第三層是程序框架 。
可用于手機(jī)、平板、PC、汽車等各種不同的設(shè)備上。還可以隨時(shí)用在手機(jī)上,但暫時(shí)華為手機(jī)端依然優(yōu)先使用安卓、華為電腦端依然優(yōu)先使用windows和Linux。
參考資料來(lái)源:百度百科-華為鴻蒙系統(tǒng)
鴻蒙系統(tǒng)能安裝vscode的,vscode對(duì)電腦的配置要求不高,一般辦公本就可以,但當(dāng)然配置越高運(yùn)行越流暢。
因?yàn)閂isual Studio,它是一個(gè)非常強(qiáng)大的IDE。可支持C/C++、C#、Vb多種編程語(yǔ)言。但是如果你電腦內(nèi)存小,只學(xué)習(xí)C語(yǔ)言的話,使用gcc、或者Dev-C++等編譯器也是可以的。
Microsoft Visual Studio(簡(jiǎn)稱VS)是美國(guó)微軟公司的開(kāi)發(fā)工具包系列產(chǎn)品。VS是一個(gè)基本完整的開(kāi)發(fā)工具集,它包括了整個(gè)軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開(kāi)發(fā)環(huán)境(IDE)等等。
系統(tǒng)簡(jiǎn)介
分布式架構(gòu)首次用于終端OS,實(shí)現(xiàn)跨終端無(wú)縫協(xié)同體驗(yàn);確定時(shí)延引擎和高性能IPC技術(shù)實(shí)現(xiàn)系統(tǒng)天生流暢; 基于微內(nèi)核架構(gòu)重塑終端設(shè)備可信安全。
對(duì)于消費(fèi)者而言,HarmonyOS通過(guò)分布式技術(shù),讓8+N設(shè)備具備智慧交互的能力。在不同場(chǎng)景下,8+N配合華為手機(jī)提供滿足人們不同需求的解決方案。對(duì)于智能硬件開(kāi)發(fā)者,HarmonyOS可以實(shí)現(xiàn)硬件創(chuàng)新,并融入華為全場(chǎng)景的大生態(tài)。
對(duì)于應(yīng)用開(kāi)發(fā)者,HarmonyOS讓他們不用面對(duì)硬件復(fù)雜性,通過(guò)使用封裝好的分布式技術(shù)APIs,以較小投入專注開(kāi)發(fā)出各種全場(chǎng)景新體驗(yàn)。
網(wǎng)頁(yè)名稱:vscode開(kāi)發(fā)鴻蒙,vscode什么開(kāi)發(fā)的
瀏覽路徑:http://chinadenli.net/article19/dsejpgh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、品牌網(wǎng)站制作、商城網(wǎng)站、軟件開(kāi)發(fā)、服務(wù)器托管、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)