




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1.1.1鴻蒙操作系統(tǒng)的誕生全套可編輯PPT課件
全套可編輯PPT課件
通過本節(jié)學習,您可以:了解鴻蒙操作系統(tǒng)的誕生鴻蒙操作系統(tǒng)的誕生第一階段:準備階段,鴻蒙操作系統(tǒng)的前身——分布式操作系統(tǒng)。2012年,華為技術有限公司(簡稱華為)的中央軟件研究院提出問題:如果安卓系統(tǒng)不給我們用了怎么辦?用什么系統(tǒng)來代替安卓系統(tǒng)?于是華為提出了構建分布式操作系統(tǒng)的設想。第二階段:正式立項階段。在2016年,華為內部正式立項,開始投入人力進行研發(fā)。鴻蒙操作系統(tǒng)的誕生第三階段:鴻蒙正式誕生。2019年8月,華為正式發(fā)布了HarmonyOS1.0,中文名稱“鴻蒙系統(tǒng)”。2020年9月,華為發(fā)布了HarmonyOS2.0版本。第四階段:鴻蒙開源。華為于2020年9月將HarmonyOS2.0源碼捐贈給開放原子開源基金會,推出OpenHarmonyOS1.0并開放下載。在2021年6月,開放原子開源基金會發(fā)布OpenHarmonyOS2.0。第五階段:HarmonyOS3.0正式發(fā)布。2022年7月,HarmonyOS3.0正式發(fā)布。鴻蒙操作系統(tǒng)的誕生鴻蒙系統(tǒng)發(fā)展進程2012年華為2012實驗室啟動鴻蒙研究2016年華為正式立項研發(fā)2019年8月華為正式發(fā)布鴻蒙1.02020年9月鴻蒙2.0發(fā)布源碼捐贈給開放原子開源基金會,發(fā)布OpenHarmonyOS1.02021年6月開放原子開源基金會發(fā)布OpenHarmonyOS2.02022年7月華為正式發(fā)布鴻蒙操作系統(tǒng)3.0謝謝1.1.2鴻蒙生態(tài)建設通過本節(jié)學習,您可以:了解鴻蒙系統(tǒng)的生態(tài)建設鴻蒙生態(tài)建設1.技術生態(tài)建設在C(consumer,消費者)端,美的和蘇泊爾等家電品牌加入OpenHarmony生態(tài);在B(Business,企業(yè)用戶)端,深開鴻、統(tǒng)信軟件、軟通動力、中科創(chuàng)達等發(fā)布了基于OpenHarmony打造的操作系統(tǒng),并向各行各業(yè)輸出。開源鴻蒙目前有110多款商用終端,100多款開發(fā)款和模組支持有28款基于OpenHarmony的發(fā)行版應用在教育、金融、交通、礦山等各領域,構筑起千行百業(yè)的信息基礎設施底座。鴻蒙生態(tài)建設1.技術生態(tài)建設國內消費者使用的大部分都是HarmonyOS操作系統(tǒng),這也是基于OpenHarmony開發(fā)設計的產品。被華為廣泛應用于智能手機、智能手表、平板、智慧屏等終端產品,搭載數(shù)量已經(jīng)突破了3億臺。鴻蒙生態(tài)建設2.應用生態(tài)建設鴻蒙操作系統(tǒng)是一款面向萬物互聯(lián)時代的、全新的分布式操作系統(tǒng)。鴻蒙提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的分布式理念支持手機、平板、智能穿戴、智慧屏、車機等多種終端設備提供全場景(移動辦公、運動健康、社交通信、媒體娛樂等)業(yè)務能力對消費者而言,HarmonyOS能夠將生活場景中的各類終端進行能力整合,實現(xiàn)不同終端設備之間的快速連接、能力互助、資源共享,匹配合適的設備、提供流暢的全場景體驗鴻蒙生態(tài)建設“1+8+N”的全場景戰(zhàn)略:“1”:智能手機“8個大行星”:指大屏、音箱、眼鏡、手表、車機、耳機、平板、PC等等。N個衛(wèi)星:指的是移動辦公、智能家居、運動健康、影音娛樂及智能出行各大板塊的延伸業(yè)務。2.應用生態(tài)建設鴻蒙生態(tài)建設華為積極支持教育部產學合作協(xié)同育人(HarmonyOS方向)項目,支撐高校教師開展鴻蒙生態(tài)師資培訓、課程建設、教材及教具開發(fā),通過融入新技術,助力課程教學創(chuàng)新。3.人才生態(tài)建設武漢大學開設的鴻蒙生態(tài)課程,到2022年2月,拓展至2個班近70名學生選修。2021年武漢大學上線《鴻蒙移動應用開發(fā)》在線課程,吸引100所高校,近6000人進行線上學習。哈爾濱工業(yè)大學開設《HarmonyOS智能硬件創(chuàng)新》高水平校企共建課程,與華為雙方獲批工信部關鍵軟件與人工智能協(xié)同育人基地,合作建設鴻蒙生態(tài)系列課程體系,共有5門課程和教材進行校企共建。鴻蒙生態(tài)建設鼓勵高校在校生積極參與到HarmonyOS開發(fā)生態(tài)中,華為啟動HarmonyOS高校人才培育計劃,推動超過15款HarmonyOS課程走入高校,打造華東、華北、西南等7大片區(qū)鴻蒙高校創(chuàng)新訓練營,并通過HarmoyOS開發(fā)者創(chuàng)新大賽來以賽促學、以賽促創(chuàng),培養(yǎng)更多HarmonyOS全棧開發(fā)人才。3.人才生態(tài)建設謝謝1.2.1鴻蒙操作系統(tǒng)技術架構通過本節(jié)學習,您可以:了解鴻蒙操作系統(tǒng)的技術架構鴻蒙操作系統(tǒng)技術架構鴻蒙操作系統(tǒng)的技術架構共分為四層,從下向上依次為:內核層系統(tǒng)服務層框架層應用層鴻蒙操作系統(tǒng)技術架構1.內核層內核層包含了內核和驅動兩個子系統(tǒng)。鴻蒙操作系統(tǒng)技術架構內核子系統(tǒng):HarmonyOS采用Linux內核和LiteOS(輕量級物聯(lián)網(wǎng)操作系統(tǒng))的多內核設計,支持不同的設備選用適合的OS內核。內核抽象層(KAL,KernelAbstractLayer)對上層提供基礎的內核能力,包括進程管理、線程管理、內存管理、文件系統(tǒng)、網(wǎng)絡管理和外設管理等。驅動子系統(tǒng):硬件驅動框架(HDF,HardwareDriverFundation)是HarmonyOS硬件生態(tài)開放的基礎,提供統(tǒng)一外設訪問能力和驅動開發(fā)、管理框架。1.內核層鴻蒙操作系統(tǒng)技術架構系統(tǒng)服務層是HarmonyOS的核心能力集合,通過框架層為應用程序的運行提供各類服務。包含系統(tǒng)基本能力子系統(tǒng)集、基礎軟件服務子系統(tǒng)集、增強軟件服務子系統(tǒng)集、硬件服務子系統(tǒng)集。2.系統(tǒng)服務層鴻蒙操作系統(tǒng)技術架構系統(tǒng)基本能力子系統(tǒng)集由分布式任務調度、分布式數(shù)據(jù)管理、分布式軟總線、方舟多語言運行時子系統(tǒng)、公共基礎庫子系統(tǒng)、多模輸入子系統(tǒng)、圖形子系統(tǒng)、安全子系統(tǒng)、AI(ArtificialIntelligence,人工智能)子系統(tǒng)等多個子系統(tǒng)組成。2.系統(tǒng)服務層鴻蒙操作系統(tǒng)技術架構這些子系統(tǒng)為分布式應用在HarmonyOS各種設備上的運行、調度、遷移等操作提供了基礎能力。其中,方舟多語言運行時子系統(tǒng)提供了C/C++/JS多語言運行時和基礎的系統(tǒng)類庫,也為使用方舟編譯器靜態(tài)化的Java程序(即應用程序或框架層中使用Java語言開發(fā)的部分)提供運行時。2.系統(tǒng)服務層鴻蒙操作系統(tǒng)技術架構基礎軟件服務子系統(tǒng)集由事件通知、電話、多媒體、DFX(DesignForX)、MSDP(MobileSensingDevelopmentPlatform,移動感知平臺,)&DV(DeviceVirtualization,設備虛擬化)等子系統(tǒng)組成?;A軟件服務子系統(tǒng)集為HarmonyOS提供公共的、通用的軟件服務。例如短信、電話、視頻等基礎軟件服務。2.系統(tǒng)服務層鴻蒙操作系統(tǒng)技術架構增強軟件服務子系統(tǒng)集由智慧屏專有業(yè)務、穿戴專有業(yè)務、IoT(InternetofThings,物聯(lián)網(wǎng))專有業(yè)務等子系統(tǒng)組成,主要為智慧屏、穿戴設備、物聯(lián)網(wǎng)設備等提供軟件服務。2.系統(tǒng)服務層鴻蒙操作系統(tǒng)技術架構硬件服務子系統(tǒng)集由位置服務、生物特征識別、穿戴專有硬件服務、IoT專有硬件服務等子系統(tǒng)組成。硬件服務子系統(tǒng)集提供硬件相關服務,例如生物特征識別硬件、穿戴相關硬件、物聯(lián)網(wǎng)硬件等2.系統(tǒng)服務層鴻蒙操作系統(tǒng)技術架構3.框架層框架層主要包括UI(userinterface,用戶界面)框架、用戶程序框架、Ability(應用所具備能力的抽象)框架。鴻蒙操作系統(tǒng)技術架構3.框架層UI框架:提供兩種UI框架,一種是適用于ArkTS(ArkTypeScript)/JS(JavaScript)語言的方舟開發(fā)框架即ArkUI,一種是適用于Java語言的JavaUI框架。用戶程序框架:為HarmonyOS應用開發(fā)提供ArkTS/C/C++/JS/Java等多種語言。Ability框架:應用程序框架。鴻蒙操作系統(tǒng)技術架構4.應用層應用層包括系統(tǒng)應用、擴展應用和第三方非系統(tǒng)應用。HarmonyOS的應用由一個或多個FA(FeatureAbility,元服務)或PA(ParticleAbility,元能力)組成。其中,F(xiàn)A有UI界面,與用戶進行交互,比如手機桌面;PA無UI界面,主要為FA提供支持,例如作為后臺服務提供計算能力,或作為數(shù)據(jù)倉庫提供數(shù)據(jù)訪問能力。謝謝1.2.2鴻蒙操作系統(tǒng)技術特性通過本節(jié)學習,您可以:了解鴻蒙操作系統(tǒng)的技術特性鴻蒙操作系統(tǒng)技術特性1.分布式軟總線分布式軟總線是手機、平板、智能穿戴、智慧屏、車機等分布式設備的通信基座,為設備之間的互聯(lián)互通提供了統(tǒng)一的分布式通信能力,為設備之間的無感發(fā)現(xiàn)和零等待傳輸創(chuàng)造了條件。開發(fā)者只需聚焦于業(yè)務邏輯的實現(xiàn),無需關注組網(wǎng)方式與底層協(xié)議。鴻蒙操作系統(tǒng)技術特性1.分布式軟總線典型應用場景:來訪客人按下智能門鎖門鈴按鈕,智能音箱播放鈴聲,同時在電視屏幕上以畫中畫的方式展示出客人的影像。用戶在電視上看到一檔美食節(jié)目,將烹飪方法和指導從電視轉移到廚房的電冰箱屏幕上,然后在節(jié)目指導下一步一步完成美食制作。用戶通過手機下發(fā)烹飪命令給烤箱、電飯煲等烹飪電器,由烹飪電器自動完成美食的加工。用戶運動后,運動器材將采集的運動健康數(shù)據(jù)自動同步給冰箱。冰箱推薦出一系列最適宜體力恢復和營養(yǎng)補充的健康菜譜,用戶可以通過冰箱自動下單采購補充缺乏的食材。鴻蒙操作系統(tǒng)技術特性2.分布式設備虛擬化分布式設備虛擬化平臺可以實現(xiàn)不同設備的資源融合、設備管理、數(shù)據(jù)處理,多種設備共同形成一個超級虛擬終端。針對不同類型的任務,為用戶匹配并選擇能力合適的執(zhí)行硬件,讓業(yè)務連續(xù)地在不同設備間流轉,充分發(fā)揮不同設備的能力優(yōu)勢,如顯示能力、攝像能力、音頻能力、交互能力以及傳感器能力等。鴻蒙操作系統(tǒng)技術特性2.分布式設備虛擬化典型應用場景:視頻通話:在做家務時接聽視頻電話,可以將手機與智慧屏連接,并將智慧屏的屏幕、攝像頭與音箱虛擬化為本地資源,替代手機自身的屏幕、攝像頭、聽筒與揚聲器,實現(xiàn)一邊做家務、一邊通過智慧屏和音箱來視頻通話。游戲:在智慧屏上玩游戲時,可以將手機虛擬化為遙控器,借助手機的重力傳感器、加速度傳感器、觸控能力,為玩家提供更便捷、更流暢的游戲體驗。鴻蒙操作系統(tǒng)技術特性3.分布式數(shù)據(jù)管理分布式數(shù)據(jù)管理基于分布式軟總線的能力,實現(xiàn)應用程序數(shù)據(jù)和用戶數(shù)據(jù)的分布式管理。用戶數(shù)據(jù)不再與單一物理設備綁定,業(yè)務邏輯與數(shù)據(jù)存儲分離,跨設備的數(shù)據(jù)處理如同本地數(shù)據(jù)處理一樣方便快捷,讓開發(fā)者能夠輕松實現(xiàn)全場景、多設備下的數(shù)據(jù)存儲、共享和訪問,為打造一致、流暢的用戶體驗創(chuàng)造了基礎條件。鴻蒙操作系統(tǒng)技術特性3.分布式數(shù)據(jù)管理典型應用場景:協(xié)同辦公:將手機上的文檔投屏到智慧屏,在智慧屏上對文檔執(zhí)行翻頁、縮放、涂鴉等操作,文檔的最新狀態(tài)可以在手機上同步顯示。照片分享:出游時,使用手機拍攝的照片,可以在登錄了同帳號的其他設備,例如平板上更方便地瀏覽、收藏、保存或編輯,也可以通過家中的智慧屏上同家人一起分享記錄下的快樂瞬間。鴻蒙操作系統(tǒng)技術特性4.分布式任務調度分布式任務調度基于分布式軟總線、分布式數(shù)據(jù)管理、分布式Profile(配置文件)等技術特性,構建統(tǒng)一的分布式服務管理(發(fā)現(xiàn)、同步、注冊、調用)機制,支持對跨設備的應用進行遠程啟動、遠程調用、遠程連接以及遷移等操作,能夠根據(jù)不同設備的能力、位置、業(yè)務運行狀態(tài)、資源使用情況,以及用戶的習慣和意圖,選擇合適的設備運行分布式任務。鴻蒙操作系統(tǒng)技術特性4.分布式任務調度典型應用場景:出行導航:用戶駕車出行,上車前,在手機上規(guī)劃好導航路線;上車后,導航自動遷移到車機和車載音箱;下車后,導航自動遷移回手機。用戶騎車出行,在手機上規(guī)劃好導航路線,騎行時手表可以接續(xù)導航。查看外賣:在手機上點外賣后,可以將訂單信息遷移到智能手表上,隨時查看外賣的配送狀態(tài)。鴻蒙操作系統(tǒng)技術特性5.一次開發(fā),多端部署HarmonyOS提供了用戶程序框架、Ability框架以及UI框架,支持應用開發(fā)過程中多終端的業(yè)務邏輯和界面邏輯進行復用,能夠實現(xiàn)應用的一次開發(fā)、多端部署,提升了跨設備應用的開發(fā)效率。鴻蒙操作系統(tǒng)技術特性5.一次開發(fā),多端部署UI框架支持使用ArkTS、JS、Java語言進行開發(fā),提供了豐富的多態(tài)控件,可以在手機、平板、智能穿戴、智慧屏、車機上顯示不同的UI效果。采用業(yè)界主流設計方式,提供多種響應式布局方案,支持柵格化布局,滿足不同屏幕的界面適配能力。鴻蒙操作系統(tǒng)技術特性6.統(tǒng)一OS,彈性部署HarmonyOS支持不同的終端設備。由于設備的硬件資源和功能各不相同,HarmonyOS通過組件化和小型化等設計方法,在這些設備上進行彈性部署。組件自由選擇(組件可有可無):根據(jù)硬件的形態(tài)和需求,可以選擇所需的組件。組件內功能集自由配置(組件可大可?。焊鶕?jù)硬件的資源情況和功能需求,可以選擇配置組件中的功能集。例如,選擇配置圖形框架組件中的部分控件。支持組件間依賴的關聯(lián)(平臺可大可小):根據(jù)編譯鏈關系,可以自動生成組件化的依賴關系。例如,選擇圖形框架組件,將會自動選擇依賴的圖形引擎組件等。謝謝1.2.3
鴻蒙操作系統(tǒng)類型通過本節(jié)學習,您可以:了解鴻蒙操作系統(tǒng)有哪些類型鴻蒙操作系統(tǒng)類型OpenHarmony是一個面向全場景,支持各類設備的系統(tǒng)。這里的設備包括像MCU單片機這樣資源較少的芯片,也支持像RK3568這樣的多核CPU。為了能夠適應多種硬件,OpenHarmony提供了liteOS、Linux等內核,基于這些內核形成了不同的系統(tǒng)類型,即輕量系統(tǒng),小型系統(tǒng),標準系統(tǒng)。輕量系統(tǒng)小型系統(tǒng)標準系統(tǒng)OpenHarmony鴻蒙操作系統(tǒng)類型
1.輕量系統(tǒng)(minisystem)使用MCU類處理器,例如ArmCortex-M芯片、RISC-V32位芯片的設備,硬件資源極其有限,支持的設備最小內存為128KB,可以提供多種輕量級網(wǎng)絡協(xié)議,輕量級的圖形框架,以及豐富的IoT總線讀寫部件等。可支撐的產品如智能家居領域的連接類模組、傳感器設備、穿戴類設備等。鴻蒙操作系統(tǒng)類型
2.小型系統(tǒng)(smallsystem)使用應用處理器,例如ArmCortex-A芯片的設備,支持的設備最小內存為1MB,可以提供更高的安全能力、標準的圖形框架、視頻編解碼的多媒體能力??芍蔚漠a品如智能家居領域的IPCamera、電子貓眼、路由器以及行車記錄儀等。鴻蒙操作系統(tǒng)類型
3.標準系統(tǒng)(standardsystem)使用應用處理器,例如ArmCortex-A芯片的設備,支持的設備最小內存為128MB,可以提供增強的交互能力、3DGPU以及硬件合成能力、更多控件以及動效更豐富的圖形能力、完整的應用框架。可支撐的產品如高端的冰箱顯示屏。謝謝2.1.1鴻蒙設備開發(fā)硬件環(huán)境要求通過本節(jié)學習,您可以:了解鴻蒙設備開發(fā)硬件環(huán)境要求鴻蒙設備開發(fā)硬件環(huán)境要求1.開發(fā)終端硬件環(huán)境鴻蒙系統(tǒng)的編譯工作是在電腦上進行的,對電腦的硬件配置有一定的要求。最低配置要求:內存8G,硬盤空間256G;推薦配置要求:內容16G,硬盤空間500G。鴻蒙設備開發(fā)硬件環(huán)境要求2.設備硬件環(huán)境-輕量系統(tǒng)系列芯片(1)Hi3861芯片Hi3861是海思半導體開發(fā)的一款高度集成的2.4GHzSoCWiFi芯片,可用于智能家電等物聯(lián)網(wǎng)智能終端領域。典型應用場景包括智慧路燈、智慧物流、人體紅外等連接類設備。(2)BES2600芯片BES2600芯片是恒玄科技設計的一款集成Cortex-M33Star雙核和Cortex-A7雙核的IC芯片。典型應用場景包括智能硬件、帶屏類模組產品,如音箱、手表等。鴻蒙設備開發(fā)硬件環(huán)境要求2.設備硬件環(huán)境-輕量系統(tǒng)系列芯片(3)ASR582X芯片ASR582X系列芯片是翱捷科技開發(fā)的一款低功耗、高性能、高度集成的支持1T1RWi-Fi+BLE的ComboSoC芯片。廣泛應用于智能照明、安全、遙控、電器、可穿戴式電子設備、網(wǎng)狀網(wǎng)絡、WLAN位置感知設備、無線局域網(wǎng)定位系統(tǒng)信標、工業(yè)無線控制、傳感器網(wǎng)絡等各類行業(yè)的終端產品。(4)GR5515芯片GR5515是匯頂科技開發(fā)的GR551x系列芯片,廣泛應用于物聯(lián)網(wǎng)(IoT)和智能穿戴設備領域。鴻蒙設備開發(fā)硬件環(huán)境要求2.設備硬件環(huán)境-小型系統(tǒng)系列芯片(1)STM32MP157A芯片STM32MP157A芯片是由意法半導體公司推出的一款嵌入式處理器,具有高度集成、功能豐富、性能強勁等特點。廣泛應用于工業(yè)控制、智能家居、智能物聯(lián)網(wǎng)等領域。(2)Hi3516芯片Hi3516是海思半導體針對高清IPCamera產品應用開發(fā)的一款專業(yè)高端SOC芯片。典型應用場景包括帶屏智能設備,如帶屏冰箱、車機等。鴻蒙設備開發(fā)硬件環(huán)境要求2.設備硬件環(huán)境-標準系統(tǒng)系列芯片(1)RK3568芯片RK3568芯片是瑞芯微開發(fā)的一款中高端的通用型SOC,支持安卓11和linux系統(tǒng),主要面向物聯(lián)網(wǎng)網(wǎng)關、NVR存儲、工控平板、工業(yè)檢測、工控盒、卡拉OK、云終端、車載中控等行業(yè)定制市場。(2)Hi3751V351芯片Hi3751V351芯片是海思半導體開發(fā)的全球制式FHD(全高清)智能電視主處理芯片,典型應用場景包括智能電視、智能家居中控屏、智能顯示器、商顯廣告屏、交互白板、工業(yè)控制屏、打印機屏、白電屏、健身器顯示屏等。(3)AmlogicA311D芯片AmlogicA311D芯片是晶晨半導體開發(fā)的一款AI應用處理器,典型應用場景包括智能家居、AI人臉識別、工業(yè)控制、智慧車載、多媒體處理、AI邊緣計算等。謝謝2.1.2鴻蒙設備開發(fā)軟件環(huán)境要求通過本節(jié)學習,您可以:了解鴻蒙設備開發(fā)軟件環(huán)境要求鴻蒙設備開發(fā)軟件環(huán)境要求在目前階段,鴻蒙系統(tǒng)大部分的開發(fā)板源碼還不支持在Windows系統(tǒng)環(huán)境下進行編譯,如Hi3861系列開發(fā)板。因此,就需要使用Linux系統(tǒng)的編譯環(huán)境對源碼進行編譯。在鴻蒙設備開發(fā)場景中,可以搭建一套Windows+Linux交叉編譯的開發(fā)環(huán)境,在Windows系統(tǒng)和Linux系統(tǒng)中都安裝DevEcoDeviceTool工具。Windows系統(tǒng)Linux系統(tǒng)鴻蒙設備開發(fā)環(huán)境鴻蒙設備開發(fā)軟件環(huán)境要求通過Windows平臺的DevEcoDeviceTool可視化界面進行相關操作,使用遠程連接的方式對接Ubuntu下的DevEcoDeviceTool(可以不安裝VisualStudioCode),然后對Ubuntu下的源碼進行開發(fā)、編譯、燒寫等操作。鴻蒙設備開發(fā)軟件環(huán)境要求對windows系統(tǒng)的具體要求如下:Windows系統(tǒng)要求:Windows1064位系統(tǒng)推薦內存8GB及以上硬盤100GB及以上對Linux系統(tǒng)的具體要求如下:Linux系統(tǒng)要求Ubuntu20.04及以上版本內存推薦16GB及以上Windows和Ubuntu系統(tǒng)上安裝的DevEcoDeviceTool為最新版本,且版本號需相同謝謝2.1.3鴻蒙設備開發(fā)環(huán)境的搭建通過本節(jié)學習,您可以:了解鴻蒙設備開發(fā)環(huán)境的搭建進行鴻蒙開發(fā)環(huán)境的搭建鴻蒙設備開發(fā)環(huán)境的搭建1.安裝虛擬機在VirtualBox官網(wǎng)Downloads頁面/wiki/Downloads,可以找到不同操作系統(tǒng)版本的VirtualBox安裝包的下載方式。單擊“Windowshosts”鏈接,即可下載Windows版的VirtualBox安裝包。雙擊安裝包文件,根據(jù)安裝向導的指引完成安裝。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(1)創(chuàng)建環(huán)境在VirtualBox啟動后,單擊頁面上的“新建(N)”按鈕,彈出“新建虛擬電腦”設置向導:“名稱”文本框輸入名稱“文件夾”位置自由設置,建議放在C盤之外的其他盤下“虛擬光盤”暫時跳過,不選擇“類型”選擇Linux單擊“下一步”按鈕,彈出硬件設置頁面。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(1)創(chuàng)建環(huán)境在硬件頁面設置虛擬電腦的內存大小和處理器數(shù)量?!皟却娲笮 备鶕?jù)當前主機的實際物理內存進行設置,例如設置為8192MB,處理器根據(jù)需要設置。單擊“下一步”按鈕,彈出“虛擬硬盤”設置向導。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(1)創(chuàng)建環(huán)境在“虛擬硬盤”設置向導中,建議設置為200GB,這樣避免在后期使用的時候出現(xiàn)空間不足的情況。點擊“下一步”按鈕,彈出摘要頁面,顯示虛擬電腦配置信息。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(1)創(chuàng)建環(huán)境摘要頁面,顯示虛擬電腦配置信息。點擊完成按鈕,Ubuntu虛擬機及虛擬硬盤就創(chuàng)建完成。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(2)設置網(wǎng)絡點擊VirtualBox管理頁面的設置,左側欄選擇網(wǎng)絡,連接方式選擇“橋接網(wǎng)卡”,選擇該方式的前提是電腦使用的是有線網(wǎng)絡。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(3)選擇鏡像文件選擇虛擬盤,選擇電腦本地的Ubuntu-20.04鏡像文件,鏡像文件可在華為云開源鏡像站進行下載/home。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝設置全部完成之后,點擊管理頁面的啟動圖標啟動虛擬機,稍等片刻后出現(xiàn)Ubuntu安裝向導頁面。小技巧:先點擊右上角關閉安裝,在桌面右鍵選擇DisplaySettings,修改分辨率,保存后回到桌面,雙擊桌面的Ubuntu安裝包繼續(xù)安裝。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝左側欄選擇“中文(簡體)”,點擊右下角繼續(xù)。在鍵盤布局選擇頁面,默認是美式鍵盤布局,通常無須修改。點擊“繼續(xù)”進入下一個頁面。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝在“更新和其他軟件”設置頁面,建議選擇最小安裝。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝進入“安裝類型”設置頁面,默認選擇“清除整個磁盤并安裝Ubuntu”選項,單擊“現(xiàn)在安裝”按鈕。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝彈出確認分區(qū)對話框,點擊“繼續(xù)”按鈕,進入時區(qū)選擇頁面,這里選擇“shanghai”。點繼續(xù)進入用戶設置界面。鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝用戶設置頁面如下:“您的姓名”:設置登錄頁面顯示的用戶名稱“您的計算機名”:設置主機名,例如填virtualBox“選擇一個用戶名”:設置用戶名,例如可以填user“選擇一個密碼”和“確認您的密碼”:設置密碼和確認密碼鴻蒙設備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝內容填寫完成后,點擊“繼續(xù)”按鈕開始安裝過程,安裝向導將會顯示進度條,等待幾分鐘后,安裝過程完成,點擊“現(xiàn)在重啟”。重啟過程中系統(tǒng)提示“Pleaseremovetheinstallationmedium,thenpressENTER:”,按回車鍵。鴻蒙設備開發(fā)環(huán)境的搭建2、安裝Ubuntu系統(tǒng)(5)環(huán)境設置重啟成功后顯示Ubuntu系統(tǒng)登錄頁面,輸入設置的密碼進入系統(tǒng)。點擊左下角顯示應用程序,選擇軟件和更新。鴻蒙設備開發(fā)環(huán)境的搭建2、安裝Ubuntu系統(tǒng)(5)環(huán)境設置在軟件和更新設置頁面,點擊“中國的服務器”后下拉菜單,在選擇下載服務器頁面選擇“”,點擊“選擇服務器”按鈕。鴻蒙設備開發(fā)環(huán)境的搭建2、安裝Ubuntu系統(tǒng)(5)環(huán)境設置彈出認證框輸入密碼,然后點擊關閉,在新彈出的窗口點擊重新載入更新軟件緩存。經(jīng)過以上的一系列操作,Ubuntu系統(tǒng)就安裝好了。鴻蒙設備開發(fā)環(huán)境的搭建3.搭建Ubuntu環(huán)境(1)修改Ubuntu終端環(huán)境右鍵打開終端窗口執(zhí)行命令,確認輸出結果為bash。如果輸出結果不是bash,需要進行設置,修改Ubuntushell為bash。
命令:ls-l/bin/sh在終端窗口中執(zhí)行命令,輸入密碼,然后選擇No,將Ubuntushell由dash修改為bash。
命令:sudodpkg-reconfiguredash鴻蒙設備開發(fā)環(huán)境的搭建3.搭建Ubuntu環(huán)境(2)下載DevEcoDeviceTool3.0ReleaseLinux版本,下載完成后,解壓軟件包,對文件夾進行賦權。進入DevEcoDeviceTool軟件包目錄,執(zhí)行命令解壓軟件包,其中devicetool-linux-tool-01.zip為軟件包名稱,請根據(jù)實際進行修改。命令:unzipdevicetool-linux-tool-01.zip進入解壓后的文件夾,執(zhí)行命令,賦予安裝文件可執(zhí)行權限,其中devicetool-linux-tool-01.sh請根據(jù)實際進行修改命令:chmodu+xdevicetool-linux-tool-01.sh鴻蒙設備開發(fā)環(huán)境的搭建3.搭建Ubuntu環(huán)境(3)安裝DevEcoDeviceTool,其中devicetool-linux-tool-01.sh請根據(jù)實際進行修改。命令:sudo./devicetool-linux-tool-01.sh在安裝過程中,會自動檢查Python是否安裝,且要求Python為3.8~3.9版本。如果不滿足,則安裝過程中會自動安裝,提示“Doyouwanttocontinue?”,請輸入“Y”后繼續(xù)安裝。安裝完成后,當界面輸出“DevecoDeviceToolsuccessfullyinstalled.”時,表示DevEcoDeviceTool安裝成功。鴻蒙設備開發(fā)環(huán)境的搭建4.搭建windows環(huán)境通過Windows系統(tǒng)遠程訪問Ubuntu環(huán)境,先在Windows系統(tǒng)中安裝DevEcoDeviceTool,以便使用Windows平臺的DevEcoDeviceTool可視化界面進行相關操作。鴻蒙設備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(1)安裝SSH服務并獲取遠程訪問的IP地址在Ubuntu系統(tǒng)中,打開終端工具,安裝SSH服務。
命令:sudoapt-getinstallopenssh-server啟動SSH服務。
命令:sudosystemctlstartssh獲取當前用戶的IP地址,用于Windows系統(tǒng)遠程訪問Ubuntu環(huán)境。
命令:ifconfig鴻蒙設備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(2)安裝RemoteSSH打開Windows系統(tǒng)下的VisualStudioCode,點擊左側擴展按鈕
,在插件市場的搜索輸入框中輸入“remote-ssh”。點擊Remote-SSH后面的安裝按鈕,安裝Remote-SSH。鴻蒙設備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(3)遠程連接Ubuntu環(huán)境打開Windows系統(tǒng)的VisualStudioCode,點擊,在遠程資源管理器頁面點擊+按鈕。在彈出的SSH連接命令輸入框中輸入“sshusername@ip_address”,其中ip_address為要連接的遠程計算機的IP地址,username為登錄遠程計算機的帳號。在彈出的輸入框中,選擇SSHconfiguration文件,選擇默認的第一選項即可鴻蒙設備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(3)遠程連接Ubuntu環(huán)境在SSHTARGETS中,找到遠程計算機,點擊打開遠程計算機。在彈出的輸入框中,選擇Linux,然后選擇Continue,輸入登錄遠程計算機的密碼,連接遠程計算機。鴻蒙設備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(4)注冊訪問Ubuntu環(huán)境的公鑰安裝Git工具插件。打開Gitbash命令行窗口,執(zhí)行命令,生成SSH公鑰,其中username和ip填寫連接Ubuntu系統(tǒng)時需要的參數(shù)。命令:ssh-keygen-trsa命令:ssh-copy-id-i~/.ssh/id_rsa.pubusername@ip鴻蒙設備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(4)注冊訪問Ubuntu環(huán)境的公鑰在VisualStudioCode中,點擊遠程連接的設置按鈕,并選擇打開config文件。在config配置文件中添加SSHKey文件信息鴻蒙設備開發(fā)環(huán)境的搭建6.安裝Samba服務(1)在Ubuntu中,打開終端執(zhí)行以下命令,安裝Samba服務。
命令:sudoaptinstallsamba(2)輸入命令,打開Samba配置文件。
命令:sudogedit/etc/samba/smb.conf鴻蒙設備開發(fā)環(huán)境的搭建6.安裝Samba服務在Samba配置文件末尾添加如下內容:[home]#在Windows中映射的根文件夾名稱(此處以“home”為例)comment=UserHomes#共享信息說明path=/home/xxx#共享目錄,/home/xxxx根據(jù)“~”目錄的pwd路徑更改guestok=no#是否拒絕匿名訪問writable=yes#是否可寫available=yes#是否可獲取browseable=yes#是否可瀏覽directorymask=0775#默認創(chuàng)建的目錄權限createmask=0775#默認創(chuàng)建的文件權限鴻蒙設備開發(fā)環(huán)境的搭建6.安裝Samba服務(3)輸入命令,創(chuàng)建Samba用戶。
命令:sudosmbpasswd-ausername命令執(zhí)行后,終端顯示“NewSMBpassword:”提示輸入密碼。輸入密碼后終端顯示“RetypenewSMBpassword:”再次輸入密碼確認,當終端顯示“Addaduseruser.”表示Samba用戶添加完成。(4)輸入命令,重啟Samba服務。
命令:sudoservicesmbdrestart鴻蒙設備開發(fā)環(huán)境的搭建7.映射Samba服務的共享目錄到本地磁盤(1)在終端中輸入“ifconfig”,查看虛擬機的IP地址。(2)打開我的電腦,在計算機下找到映射網(wǎng)絡驅動器,彈出映射網(wǎng)絡驅動器窗口。文件夾位置填寫Samba服務地址和共享目錄。鴻蒙設備開發(fā)環(huán)境的搭建7.映射Samba服務的共享目錄到本地磁盤(3)在彈出的“輸入網(wǎng)絡憑據(jù)”對話框中輸入Samba用戶名和密碼,勾選“記住我的憑據(jù)”選項,單擊確定。用戶名和密碼輸入完成后,即可在Windows下看到Linux的共享目錄,并可對其進行訪問。鴻蒙設備開發(fā)環(huán)境的搭建8.安裝Docker環(huán)境(1)在終端輸入Docker安裝命令。
命令:sudoaptinstalldocker.io鴻蒙設備開發(fā)環(huán)境的搭建8.安裝Docker環(huán)境(2)安裝OpenHarmony編譯的Docker環(huán)境包。
命令:sudodockerpull/openharmony-docker/openharmony-docker:1.0.0謝謝2.2鴻蒙系統(tǒng)構建工具鏈通過本節(jié)學習,您可以:了解鴻蒙系統(tǒng)構建工具鏈了解Ninja構建工具了解Ninja常用語法了解GN常用語法鴻蒙系統(tǒng)構建工具鏈1.什么是工具鏈?工具鏈本質上是工具和鏈。工具的目標是生成可以運行的程序或庫文件。為了達到該目標,內部需要經(jīng)歷編譯過程和鏈接過程。編譯過程:編譯的輸入:程序代碼;編譯的輸出:目標文件;編譯需要的工具:編譯器GCC。鏈接過程:鏈接的輸入:程序運行所依賴的庫文件或某個庫所依賴的另一個庫文件;鏈接的輸出:程序的可執(zhí)行文件,或者可被調用的完整的庫文件;鏈接需要的工具:鏈接器,即LD。鴻蒙系統(tǒng)構建工具鏈2.什么是構建工具?構建工具是一個可編程的工具,它描述內容包括:整個工程如何編譯、連接、打包等規(guī)則,工程中的哪些源文件需要編譯以及如何編譯,需要創(chuàng)建哪些庫文件以及如何創(chuàng)建庫文件。構建一個項目通常包含了依賴管理、測試、編譯、打包、發(fā)布等流程,構建工具可以自動化進行這些操作,從而為我們減少這些繁瑣的工作。其中構建工具提供的依賴管理能夠可以自動處理依賴關系。例如一個項目需要用到依賴A,A又依賴于B,那么構建工具就能幫我們導入B,而不需要我們手動去尋找并導入。鴻蒙系統(tǒng)構建工具鏈3.鴻蒙構建工具鏈鴻蒙內核LliteOS的編譯構建工具是hb,hb是ohos-build的簡稱,ohos是openharmonyOS的簡稱。鴻蒙構建系統(tǒng)是由Python、GN、Ninja、makefile等幾個部分組成:Python:對參數(shù)、環(huán)境變量、文件進行操作,負責編譯前的準備工作和為GN收集命令參數(shù)。GN:GN即GenerateNinja,用于生成Ninja文件。Ninja:Ninja是一個致力于速度的小型編譯系統(tǒng)。Makefile:Makefile文件中包括了編譯和處理規(guī)則,通過Makefile工具解析Makefile文件中的命令來指導整個工程的編譯過程。Ninja構建工具1.Ninja簡介Ninja是Google的一名程序員推出的注重速度的構建工具,是一個專注于速度的小型構件系統(tǒng),只需拷貝一個可執(zhí)行程序ninja就可以執(zhí)行,不需要依賴任何庫。Ninja的設計目的:是為了使編譯過程更快,Ninja類似構建工具make,make即GNUMake,一個用于決定如何使用命令完成最終目標構建的程序。Make本身不知道如何具體的完成目標的構建工作,它需要通過makefile中的描述來決定目標構建的具體方案,根據(jù)makefile中的規(guī)則執(zhí)行命令,最后完成編譯輸出。Ninja構建工具2.Ubuntu環(huán)境安裝NinjaNinja編譯需要依賴re2c,re2c是一款語法分析器。在Linux系統(tǒng)中右鍵打開終端,終端中輸入命令安裝re2c。
命令:sudoapt-getinstallre2c檢測re2c版本。
命令:re2c--versionNinja構建工具3.Ubuntu環(huán)境安裝Ninja安裝Ninja,在終端中輸入下載命令。
命令:gitclone/ninja-build/ninja.git對Ninja進行安裝和編譯。在終端中輸入命令:
命令:cdninja
命令:./configure.py--bootstrap檢測Ninja安裝情況。
命令:sudocp./ninja/usr/bin
命令:ninja--version
Ninja常用語法1.基本概念edge(邊):build語句,可以指定目標(target)輸出(output)、規(guī)則(rule)與輸入(input),是編譯過程拓撲圖中的一條邊(edge)。target(目標):編譯過程需要差生的目標,由build語句指定。output(輸出):build語句的前半段,是target的另一種稱呼。input(輸入):build語句的后半段,用于產生output的文件或目標,另一種稱呼是依賴。rule(規(guī)則):通過指定command與一些內置變量,決定如何從輸入產生輸出。Pool:一組rule或edge,通過指定其depth,可以控制并行上限。scope(作用域):變量的作用范圍,有rule與build語句的塊級,也有文件級別。
Ninja常用語法2.關鍵字build:定義一個edge。rule:定義一個rule。pool:定義一個pool。default:指定默認的一個或多個target。include:添加一個ninja文件到當前scope。subninja:添加一個ninja文件,其scope與當前文件不同。phony:一個內置的特殊規(guī)則,指定非文件的target。
Ninja常用語法3.rule、build及poolrule:一個rule就是通過${in}輸入的目標列表,生成${out}的輸出目標列表,目標一般是文件。rulenamecommand=echo${in}>${out}var=strbuild:build代碼塊,是編譯過程中的一個edge。其中,foo是output,bar是input,“:”后面第一個位置的phony是rule,var是自定義變量。buildfoo:phonybarvar=str
Ninja常用語法pool:限制一些非常消耗硬件資源的edge同時執(zhí)行。通過pool=example,在rule或build代碼塊中指定對應的edge所屬的pool為example。由于example的depth=2,所以a、b、c三個target最多只有2個可以同時生成。poolexampledepth=2ruleecho_varcommand=echo${var}>>${out}pool=examplebuilda:echo_varvar=abuildb:echo_varvar=bbuildc:echo_varvar=cGN常用語法GN是Ninja構建文件的元構建工具,能夠構建出Ninja的.ninja文件,比起Ninja原本的構建命令,GN能夠比較好地進行依賴管理,并且能夠很方便的輸出構建圖譜。GN使用非常簡單的動態(tài)類型語言。語言的類型包括:布爾(true,false),64位有符號整數(shù),字符串,列表(任何其他類型),范圍(Scopes),條件語句,循環(huán),函數(shù)調用。GN常用語法字符串:列表:a="mypath"b="$a/foo.cc"http://b->"mypath/foo.cc"c="foo${a}bar.cc"http://c->"foomypathbar.cc"a=["first"]a+=["second"]//["first","second"]a+=["third","fourth"]//["first","second","third","fourth"]b=a+["fifth"]//["first","second","third","fourth","fifth"]GN常用語法條件語句:if(is_linux||(is_win&&target_cpu=="x86")){source-=["something.cc"]}else{...}GN常用語法循環(huán):函數(shù)調用:Foreach(i,mylist){print(i)//Note:iisacopyofeachelement,notareferencetoit.}print("helloworld")assert(is_win,"ThisshouldonlybeexecutedonWindows")static_library("mylibrary"){sources=["a.cc"]}謝謝2.2.1鴻蒙構建工具鏈介紹通過本節(jié)學習,您可以:了解鴻蒙系統(tǒng)構建工具鏈鴻蒙構建工具鏈1.什么是工具鏈?工具鏈本質上是工具和鏈。工具的目標是生成可以運行的程序或庫文件。為了達到該目標,內部需要經(jīng)歷編譯過程和鏈接過程。編譯過程:編譯的輸入:程序代碼;編譯的輸出:目標文件;編譯需要的工具:編譯器GCC。鏈接過程:鏈接的輸入:程序運行所依賴的庫文件或某個庫所依賴的另一個庫文件;鏈接的輸出:程序的可執(zhí)行文件,或者可被調用的完整的庫文件;鏈接需要的工具:鏈接器,即LD。鴻蒙構建工具鏈2.什么是構建工具?構建工具是一個可編程的工具,它描述內容包括:整個工程如何編譯、連接、打包等規(guī)則,工程中的哪些源文件需要編譯以及如何編譯,需要創(chuàng)建哪些庫文件以及如何創(chuàng)建庫文件。構建一個項目通常包含了依賴管理、測試、編譯、打包、發(fā)布等流程,構建工具可以自動化進行這些操作,從而為我們減少這些繁瑣的工作。其中構建工具提供的依賴管理能夠可以自動處理依賴關系。例如一個項目需要用到依賴A,A又依賴于B,那么構建工具就能幫我們導入B,而不需要我們手動去尋找并導入。鴻蒙構建工具鏈3.鴻蒙構建工具鏈鴻蒙內核LliteOS的編譯構建工具是hb,hb是ohos-build的簡稱,ohos是openharmonyOS的簡稱。鴻蒙構建系統(tǒng)是由Python、GN、Ninja、makefile等幾個部分組成:Python:對參數(shù)、環(huán)境變量、文件進行操作,負責編譯前的準備工作和為GN收集命令參數(shù)。GN:GN即GenerateNinja,用于生成Ninja文件。Ninja:Ninja是一個致力于速度的小型編譯系統(tǒng)。Makefile:Makefile文件中包括了編譯和處理規(guī)則,通過Makefile工具解析Makefile文件中的命令來指導整個工程的編譯過程。謝謝2.2.2
Ninja構建工具介紹通過本節(jié)學習,您可以:了解Ninja構建工具Ninja構建工具1.Ninja簡介Ninja是Google的一名程序員推出的注重速度的構建工具,是一個專注于速度的小型構建系統(tǒng),只需拷貝一個可執(zhí)行程序ninja就可以執(zhí)行,不需要依賴任何庫。Ninja的設計目的:是為了使編譯過程更快,Ninja類似構建工具make,make即GNUMake,一個用于決定如何使用命令完成最終目標構建的程序。Make本身不知道如何具體的完成目標的構建工作,它需要通過makefile中的描述來決定目標構建的具體方案,根據(jù)makefile中的規(guī)則執(zhí)行命令,最后完成編譯輸出。Ninja構建工具2.Ubuntu環(huán)境安裝NinjaNinja編譯需要依賴re2c,re2c是一款語法分析器。在Linux系統(tǒng)中右鍵打開終端,終端中輸入命令安裝re2c。
命令:sudoapt-getinstallre2c檢測re2c版本。
命令:re2c--versionNinja構建工具3.Ubuntu環(huán)境安裝Ninja安裝Ninja,在終端中輸入下載命令。
命令:gitclone/ninja-build/ninja.git對Ninja進行安裝和編譯。在終端中輸入命令:
命令:cdninja
命令:./configure.py--bootstrap檢測Ninja安裝情況。
命令:sudocp./ninja/usr/bin
命令:ninja--version謝謝2.2.3
Ninja常用語法通過本節(jié)學習,您可以:了解Ninja常用語法
Ninja常用語法1.基本概念edge(邊):build語句,可以指定目標(target)輸出(output)、規(guī)則(rule)與輸入(input),是編譯過程拓撲圖中的一條邊(edge)。target(目標):編譯過程需要差生的目標,由build語句指定。output(輸出):build語句的前半段,是target的另一種稱呼。input(輸入):build語句的后半段,用于產生output的文件或目標,另一種稱呼是依賴。rule(規(guī)則):通過指定command與一些內置變量,決定如何從輸入產生輸出。Pool:一組rule或edge,通過指定其depth,可以控制并行上限。scope(作用域):變量的作用范圍,有rule與build語句的塊級,也有文件級別。
Ninja常用語法2.關鍵字build:定義一個edge。rule:定義一個rule。pool:定義一個pool。default:指定默認的一個或多個target。include:添加一個ninja文件到當前scope。subninja:添加一個ninja文件,其scope與當前文件不同。phony:一個內置的特殊規(guī)則,指定非文件的target。
Ninja常用語法3.rule、build及poolrule:一個rule就是通過${in}輸入的目標列表,生成${out}的輸出目標列表,目標一般是文件。rulenamecommand=echo${in}>${out}var=strbuild:build代碼塊,是編譯過程中的一個edge。其中,foo是output,bar是input,“:”后面第一個位置的phony是rule,var是自定義變量。buildfoo:phonybarvar=str
Ninja常用語法pool:限制一些非常消耗硬件資源的edge同時執(zhí)行。通過pool=example,在rule或build代碼塊中指定對應的edge所屬的pool為example。由于example的depth=2,所以a、b、c三個target最多只有2個可以同時生成。poolexampledepth=2ruleecho_varcommand=echo${var}>>${out}pool=examplebuilda:echo_varvar=abuildb:echo_varvar=bbuildc:echo_varvar=c謝謝2.2.4
GN常用語法通過本節(jié)學習,您可以:了解GN常用語法GN常用語法GN是Ninja構建文件的元構建工具,能夠構建出Ninja的.ninja文件,比起Ninja原本的構建命令,GN能夠比較好地進行依賴管理,并且能夠很方便的輸出構建圖譜。GN使用非常簡單的動態(tài)類型語言。語言的類型包括:布爾(true,false),64位有符號整數(shù),字符串,列表(任何其他類型),范圍(Scopes),條件語句,循環(huán),函數(shù)調用。GN常用語法字符串:列表:a="mypath"b="$a/foo.cc"http://b->"mypath/foo.cc"c="foo${a}bar.cc"http://c->"foomypathbar.cc"a=["first"]a+=["second"]//["first","second"]a+=["third","fourth"]//["first","second","third","fourth"]b=a+["fifth"]//["first","second","third","fourth","fifth"]GN常用語法條件語句:if(is_linux||(is_win&&target_cpu=="x86")){source-=["something.cc"]}else{...}GN常用語法循環(huán):函數(shù)調用:Foreach(i,mylist){print(i)//Note:iisacopyofeachelement,notareferencetoit.}print("helloworld")assert(is_win,"ThisshouldonlybeexecutedonWindows")static_library("mylibrary"){sources=["a.cc"]}謝謝3.1.1鴻蒙系統(tǒng)源碼框架通過本節(jié)學習,您可以:了解鴻蒙系統(tǒng)源碼框架鴻蒙系統(tǒng)源碼框架在進行具體的開發(fā)工作之前,鴻蒙系統(tǒng)源碼的目錄結構是必須要了解的。鴻蒙系統(tǒng)源碼的目錄結構如圖所示:鴻蒙系統(tǒng)源碼框架目錄名描述applicationsapplications目錄下有sample、standard兩個文件夾,其中sample文件夾下是開發(fā)板案例代碼及教程,standard文件夾下是鴻蒙標準系統(tǒng)的部分應用,為開發(fā)者提供了構建標準系統(tǒng)應用的具體實例,這些應用支持在所有標準系統(tǒng)的設備上使用basebase目錄是有關基礎軟件服務子習系統(tǒng)集和硬件服務子系統(tǒng)集的內容buildBulid目錄下主要包含了構建腳本、配置信息腳本、工具鏈、工具等內容Developtools該目錄是研發(fā)工具鏈子系統(tǒng),包含ACE框架工具、追蹤進程軌跡工具、HDC工具、性能優(yōu)化組件、打包工具組件等內容device該目錄下包含支持的硬件和模擬器,開發(fā)者可將與移植有關的文件放到該目錄下docsdocs目錄下是中文和英文的相關文檔鴻蒙系統(tǒng)源碼框架目錄名描述domainsDomains目錄是增強軟件服務子系統(tǒng)集,對照鴻蒙技術機構圖可知,內有智慧屏專有業(yè)務子系統(tǒng)、穿戴專有業(yè)務子系統(tǒng)、IoT專有業(yè)務子系統(tǒng)等,可以根據(jù)項目需要進行使用,可以進行剪切drivers該目錄下是驅動子系統(tǒng)對應的HDF源碼,包含適配代碼、驅動框架核心代碼、外設驅動代碼foundationfoundation目錄是有關系統(tǒng)基礎能力子系統(tǒng)集的內容,包含了Ability開發(fā)框架接口、Ability管理服務、ACEUI框架、AI子系統(tǒng)、用戶程序框架接口、通信方式、分布式硬件、分布式任務調度、分布式數(shù)據(jù)管理、圖像子系統(tǒng)、多媒體子系統(tǒng)、多模輸入子系統(tǒng)等鴻蒙系統(tǒng)源碼框架目錄名描述kernelkernel目錄是內核子系統(tǒng)目錄,鴻蒙支持的內核有l(wèi)inux、LiteOS_A、LiteOS_Mprebuilts該目錄下是官方的編譯工具,包含cmake、GCC、Python、clang等一系列編譯工具test測試子系統(tǒng),該目錄下包含了開發(fā)者測試組件、測試框架核心組件、XTS兼容性測試組件等third_party該目錄主要是開源第三方的組件。隨著每一次版本的更新,第三方的組件也會相應的增加很多utils該目錄下是常用的工具集,包括工具類的native層實現(xiàn)、ndk庫的配置目錄,系統(tǒng)相關的預定義值和安全策略配置等vendor該目錄下是不同廠商的開發(fā)板芯片驅動軟件,以及部分仿真工程樣例謝謝3.1.2鴻蒙系統(tǒng)源碼下載通過本節(jié)學習,您可以:了解鴻蒙系統(tǒng)源碼下載鴻蒙系統(tǒng)源碼下載1.DevEcoMarketplace網(wǎng)站下載源碼
(1)準備工作需要在本地安裝Node.js和hpm命令行工具。從Node官網(wǎng)下載/zh-cn/download/,推薦安裝LTS版本。打開CMD,輸入命令:npminstall-g@ohos/hpm-cli安裝完成后,輸入如下命令,顯示hpm版本,表示安裝成功:hpm-V或hpm--version鴻蒙系統(tǒng)源碼下載(2)下載組件打開DevEcoMarketplace網(wǎng)站/#/cn/home,點擊頂部的設備組件,左側邊欄可以看到開源發(fā)行版的相關選項。1.DevEcoMarketplace網(wǎng)站下載源碼鴻蒙系統(tǒng)源碼下載(2)下載組件在頂部的搜索框內輸入關鍵字,例如“攝像頭”,會出現(xiàn)與關鍵字匹配的結果。左側邊欄還可以添加過濾條件如開發(fā)板、內核。1.DevEcoMarketplace網(wǎng)站下載源碼鴻蒙系統(tǒng)源碼下載(2)下載組件選擇其中一個點開,可以看到發(fā)行版的詳情介紹。通過右上角的“直接下載”可以直接下載到本地;點擊“設備組件裁剪”可以打開組件詳情頁,進行定制組件的添加,填寫項目信息進行下載。1.DevEcoMarketplace網(wǎng)站下載源碼鴻蒙系統(tǒng)源碼下載(3)安裝組件下載的組件是壓縮包形式,需要先解壓縮。在解壓后的文件目錄地址欄中輸入CMD,打開命令行窗口。執(zhí)行hpminstall命令,系統(tǒng)會自動下載并安裝組件。窗口中顯示“Installsuccessful”表示組件下載及安裝成功。下載的組件將保存在工程目錄下的ohos_bundles文件夾中。1.DevEcoMarketplace網(wǎng)站下載源碼鴻蒙系統(tǒng)源碼下載2.鏡像站點下載源碼通過鏡像站點下載的是鴻蒙系統(tǒng)整個源碼,需要自行裁剪,才能進一步的進行開發(fā)。從鏡像站點可以獲取穩(wěn)定版本和最新發(fā)布的版本,其他版本的獲取源碼方式以及具體版本信息可以參考官網(wǎng)的Release-Notes。LTS版本源碼。LTS版本源碼版本信息下載站點全量代碼(標準、輕量和小型系統(tǒng))3.0站點標準系統(tǒng)解決方案(二進制)3.0站點Hi3861解決方案(二進制)3.0站點Hi3518解決方案(二進制)3.0站點Hi3516解決方案-LiteOS(二進制)3.0站點Hi3516解決方案-Linux(二進制)3.0站點RELEASE-NOTES3.0站點鴻蒙系統(tǒng)源碼下載3.創(chuàng)建工程自動獲取源碼需要在Windows環(huán)境通過RemoteSSH遠程連接上Ubuntu,才可以創(chuàng)建OpenHarmony新工程。打開DevEcoDeviceTooI,進入主頁,點擊“新建工程”。鴻蒙系統(tǒng)源碼下載3.創(chuàng)建工程自動獲取源碼配置說明:OpenHarmony源碼:選擇需要下載的OpenHarmony源碼。工程名:設置工程名稱。工程路徑:選擇工程文件存儲路徑。SOC:選擇支持的芯片。開發(fā)板:選擇支持的開發(fā)板。產品:選擇開發(fā)板自動生成的產品。在新工程配置向導頁,配置工程相關信息,工程配置完成后,點擊“確定”,DevEcoDeviceTooI會自動啟動OpenHarmony源碼的下載。謝謝3.2.1編寫HelloWorld程序通過本節(jié)學習,您可以:熟悉HelloWorld程序的編寫方法編寫HelloWorld程序在新建工程中,SOC選擇HI3861,開發(fā)板自動選擇Hi3861,產品顯示wifiiot_hispark_pegasus,配置好信息后下載源碼。編寫HelloWorld程序1.建立代碼目錄在OpenHarmony/applications/sample/wifi-iot/app路徑下新建一個目錄,來存放代碼文件。例如,在app下新增my_app,其中Hello_world.c為需要編寫的代碼,BUILD.gn為編譯腳本,具體目錄結構如下:.└──applications└──sample└──wifi-iot└──app└──my_app│──Hello_world.c└──BUILD.gn編寫HelloWorld程序2.編寫代碼新建Hello_World.c文件,在Hello_world.c中新建入口函數(shù)HelloWorld,并實現(xiàn)程序邏輯。在代碼的最后,使用OpenHarmony啟動恢復模塊接口SYS_RUN()啟動程序,SYS_RUN()是定義在ohos_init.h頭文件的。具體代碼如下:
#include<stdio.h>
#include"ohos_init.h"
#include"ohos_types.h"
voidHelloWorld(void)
{
printf("Helloworld!\n");
}
SYS_RUN(HelloWorld);編寫HelloWorld程序3.編寫B(tài)UILD.gn文件編寫B(tài)UILD.gn文件的目的是將程序構建成靜態(tài)庫。BUILD.gn文件由目標、源文件、頭文件路徑三部分構成,需由開發(fā)者完成填寫。新建./applications/sample/wifi-iot/app/my_app下的BUILD.gn文件,并完成如下配置。示例代碼如下:說明:static_library中指定模塊的編譯結果,為靜態(tài)庫文件libmyapp.a,開發(fā)者根據(jù)實際情況完成填寫。sources中指定靜態(tài)庫.a所依賴的.c文件及其路徑,若路徑中包含“//”則表示絕對路徑,若不包含“//”則表示相對路徑。include_dirs中指定source所需要依賴的.h文件路徑。
static_library("myapp"){
sources=[
"hello_world.c"
]
include_dirs=[
"http://utils/native/lite/include"
]}編寫HelloWorld程序4.添加新組件修改文件build/lite/components/applications.json,添加組件hello_world_app的配置。
{
"component":"hello_world_app",
"description":"helloworldsamples.",
"optional":"true",
"dirs":[
"applications/sample/wifi-iot/app/my_app"
],
"targets":[
"http://applications/sample/wifi-iot/app/my_app:myapp"
],
"rom":"",
"ram":"",
"output":[],
"adapted_kernel":["liteos_m"],
"features":[],
"deps":{
"components":[],
"third_party":[]
}
},編寫HelloWorld程序5.修改單板配置文件修改文件vendor/hisilicon/hispark_pegasus/config.json,新增Hello_world_app組件的條目,在applications子系統(tǒng)配置中增加代碼。具體代碼如下:
{
"subsystem":"applications",
"components":[
#增加條目#
{"component":"hello_world_app","features":[]},
{"component":"wifi_iot_sample_app","features":[]}
]謝謝3.2.2編譯HelloWorld程序通過本節(jié)學習,您可以:熟悉HelloWorld程序編譯編譯HelloWorld程序DevEcoDeviceTool支持Hi3861V100開發(fā)板的源碼一鍵編譯功能,提供編譯工具鏈和編譯環(huán)境依賴的檢測及一鍵安裝,簡化復雜編譯環(huán)境的同時,提升了編譯的效率。1.在菜單欄中點擊工程配置,進入Hi3861工程配置界面。編譯HelloWorld程序2.在工具鏈頁面中,DevEcoDeviceTool會自動檢測依賴的編譯工具鏈是否完備。如果編譯器和燒錄器后面顯示圖標×,可單擊“下載未安裝的工具”,自動安裝所需工具,或單擊工具后方的下載安裝指定工具。如當前識別到的工具類型有缺失,需要補充,可單擊“添加實用工具”添加。如工具無法通過下載方式安裝,表示該工具未被收錄,需要開發(fā)者自行下載到本地后單擊Import導入。如果“OpenHarmony環(huán)境依賴”后面顯示圖標×,請單擊“安裝”,進行自動下載安裝。編譯HelloWorld程序部分工具安裝需要使用root權限,請在終端窗口輸入用戶密碼進行安裝。安裝完成后,工具和環(huán)境依賴的狀態(tài)顯示為√。編譯HelloWorld程序3.在DevEcoDeviceTool界面的PROJECTTASKS中,點擊對應開發(fā)板下的Build,執(zhí)行編譯。編譯HelloWorld程序4.等待編譯完成,在終端窗口輸出“SUCCESS”,編譯完成。編譯完成后,可以在工程的out目錄下,查看編譯生成的文件,用于后續(xù)的Hi3861V100開發(fā)板燒寫。編譯HelloWorld程序說明:編譯時,如果編譯不成功,提示“'Python':Nosuchfileordirectory”,是因為Python路徑不正確導致的。解決方法:(1)打開終端,輸入“whereispython”,查詢Python路徑。(2)檢查輸出結果是否包含/usr/bin/python3.8或者/usr/bin/python3.9,如果包含,則執(zhí)行如下命令,命令中python版本按實際情況修改。sudoln-s/usr/bin/python3.8/usr/bin/python如果輸出結果不包含usr/bin/python3.8或者/usr/bin/python3.9,請執(zhí)行步驟(3)。(3)執(zhí)行命令,重新安裝DevEcoDeviceTool,其中“devicetool-linux-tool-00”根據(jù)實際版本修改。sudo./devicetool-linux-tool-00.sh謝謝3.2.3燒寫HelloWorld程序通過本節(jié)學習,您可以:熟悉燒寫HelloWorld程序燒寫HelloWorld程序燒寫程序是將編譯后的程序文件下載到開發(fā)板上。Hi3861V100開發(fā)板的燒寫是在Windows環(huán)境進行燒寫的。DevEcoDeviceTool通過Remote遠程模式,將Ubuntu環(huán)境下編譯生成的程序文件拷貝至Windows目錄下,然后通過Windows的燒寫工具將程序文件燒寫至開發(fā)板中。1.連接設備連接之前需要安裝USB轉串口的驅動程序,安裝CH341SERUSB轉串口驅動程序,驅動安裝完成后,重新插拔USB接口即可。使用USB數(shù)據(jù)線將電腦和開發(fā)板連接起來,插開發(fā)板的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年機械設備批發(fā)服務合作協(xié)議書
- 2025年全自動潷水器項目建議書
- 微積分中的導數(shù)課件解析
- 精神科患者安全管理
- 2024年黑龍江省哈爾濱市動力區(qū)數(shù)學三年級第一學期期末聯(lián)考試題含解析
- 認識信息資源管理
- 2024年福建南平市建陽區(qū)數(shù)學三年級第一學期期末試題含解析
- 結合案例分析的中級審計師試題與答案
- 《中醫(yī)養(yǎng)生保健》課件
- 《結腸功能紊亂》課件
- 美發(fā)店入職合同保密協(xié)議
- 遼寧省點石聯(lián)考2025屆高三下學期5月聯(lián)合考試 地理 含答案
- 2025-2030年中國腫瘤醫(yī)院行業(yè)市場發(fā)展現(xiàn)狀分析及未來趨勢預測研究報告
- 2024年中南大學專職輔導員招聘筆試真題
- 2025-2030中國財務公司行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報告
- 2025年人教版小學五年級下冊奧林匹克數(shù)學競賽測試題(附參考答案)
- 不分手協(xié)議書合同書
- 室內空間設計方案匯報
- 新生兒敗血癥診斷與治療專家共識(2024)解讀課件
- 調飲技術大賽考試題庫400題(含答案)
- 2025年山東青島東鼎產業(yè)發(fā)展集團有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論