基于C++開發(fā)的開源操作系統(tǒng)。鴻蒙系統(tǒng)一般指華為鴻蒙系統(tǒng)。華為鴻蒙系統(tǒng)(HUAWEIHarmonyOS),是華為在2019年8月9日于東莞舉行華為開發(fā)者大會(HDC.2019)上正式發(fā)布的操作系統(tǒng)。
創(chuàng)新互聯(lián)專注于港閘網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供港閘營銷型網(wǎng)站建設(shè),港閘網(wǎng)站制作、港閘網(wǎng)頁設(shè)計、港閘網(wǎng)站官網(wǎng)定制、小程序設(shè)計服務(wù),打造港閘網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供港閘網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
定位使用
位置能力用于確定用戶設(shè)備在哪里,系統(tǒng)使用位置坐標(biāo)標(biāo)示設(shè)備的位置。有GNSS定位、基站定位、WLAN/藍(lán)牙定位
GNSS定位包括GPS、GLONASS、北斗、Galileo等,通過導(dǎo)航衛(wèi)星,設(shè)備芯片提供的定位算法,來確定設(shè)備準(zhǔn)確位置。定位過程具體使用哪些定位系統(tǒng),取決于用戶設(shè)備的硬件能力
位置能力作為系統(tǒng)為應(yīng)用提供的一種基礎(chǔ)服務(wù),需要應(yīng)用在所使用的業(yè)務(wù)場景,向系統(tǒng)主動發(fā)起請求,并在業(yè)務(wù)場景結(jié)束時,主動結(jié)束此請求,在此過程中系統(tǒng)會將實時的定位結(jié)果上報給應(yīng)用。
使用設(shè)備的位置能力,需要用戶進(jìn)行確認(rèn)并主動開啟位置開關(guān)。如果位置開關(guān)沒有開啟,系統(tǒng)不會向任何應(yīng)用提供位置服務(wù)。
設(shè)備位置信息屬于用戶敏感數(shù)據(jù),所以即使用戶已經(jīng)開啟位置開關(guān),應(yīng)用在獲取設(shè)備位置前仍需向用戶申請位置訪問權(quán)限。在用戶確認(rèn)允許后,系統(tǒng)才會向應(yīng)用提供位置服務(wù)
Ability
Ability是應(yīng)用所具備能力的抽象
2.onActive()
Page會在進(jìn)入INACTIVE狀態(tài)后來到前臺,然后系統(tǒng)調(diào)用此回調(diào)。Page在此之后進(jìn)入ACTIVE狀態(tài),該狀態(tài)是應(yīng)用與用戶交互的狀態(tài)。Page將保持在此狀態(tài),除非某類事件發(fā)生導(dǎo)致Page失去焦點,比如用戶點擊返回鍵或?qū)Ш降狡渌鸓age。當(dāng)此類事件發(fā)生時,會觸發(fā)Page回到INACTIVE狀態(tài),系統(tǒng)將調(diào)用onInactive()回調(diào)。此后,Page可能重新回到ACTIVE狀態(tài),系統(tǒng)將再次調(diào)用onActive()回調(diào)。因此,開發(fā)者通常需要成對實現(xiàn)onActive()和onInactive(),并在onActive()中獲取在onInactive()中被釋放的資源。
3.onInactive()
當(dāng)Page失去焦點時,系統(tǒng)將調(diào)用此回調(diào),此后Page進(jìn)入INACTIVE狀態(tài)。開發(fā)者可以在此回調(diào)中實現(xiàn)Page失去焦點時應(yīng)表現(xiàn)的恰當(dāng)行為。
4.onBackground()
如果Page不再對用戶可見,系統(tǒng)將調(diào)用此回調(diào)通知開發(fā)者用戶進(jìn)行相應(yīng)的資源釋放,此后Page進(jìn)入BACKGROUND狀態(tài)。開發(fā)者應(yīng)該在此回調(diào)中釋放Page不可見時無用的資源,或在此回調(diào)中執(zhí)行較為耗時的狀態(tài)保存操作。
5.onForeground()
處于BACKGROUND狀態(tài)的Page仍然駐留在內(nèi)存中,當(dāng)重新回到前臺時(比如用戶重新導(dǎo)航到此Page),系統(tǒng)將先調(diào)用onForeground()回調(diào)通知開發(fā)者,而后Page的生命周期狀態(tài)回到INACTIVE狀態(tài)。開發(fā)者應(yīng)當(dāng)在此回調(diào)中重新申請在onBackground()中釋放的資源,最后Page的生命周期狀態(tài)進(jìn)一步回到ACTIVE狀態(tài),系統(tǒng)將通過onActive()回調(diào)通知開發(fā)者用戶。
6.onStop()
系統(tǒng)將要銷毀Page時,將會觸發(fā)此回調(diào)函數(shù),通知用戶進(jìn)行系統(tǒng)資源的釋放。銷毀Page的可能原因包括以下幾個方面:
用戶通過系統(tǒng)管理能力關(guān)閉指定Page,例如使用任務(wù)管理器關(guān)閉Page。
用戶行為觸發(fā)Page的terminateAbility()方法調(diào)用,例如使用應(yīng)用的退出功能。
配置變更導(dǎo)致系統(tǒng)暫時銷毀Page并重建。
系統(tǒng)出于資源管理目的,自動觸發(fā)對處于BACKGROUND狀態(tài)Page的銷毀。
AbilitySlice生命周期
AbilitySlice生命周期回調(diào)與Page的相應(yīng)回調(diào)類似,因此不再贅述。由于AbilitySlice承載具體的頁面,開發(fā)者必須重寫AbilitySlice的onStart()回調(diào),并在此方法中通過setUIContent()方法設(shè)置頁面。
Page與AbilitySlice生命周期關(guān)聯(lián)
當(dāng)AbilitySlice處于前臺且具有焦點時,其生命周期狀態(tài)隨著所屬Page的生命周期狀態(tài)的變化而變化。當(dāng)一個Page擁有多個AbilitySlice時,例如:MyAbility下有FooAbilitySlice和BarAbilitySlice,當(dāng)前FooAbilitySlice處于前臺并獲得焦點,并即將導(dǎo)航到BarAbilitySlice,在此期間的生命周期狀態(tài)變化順序為:
對應(yīng)兩個slice的生命周期方法回調(diào)順序為:
FooAbilitySlice.onInactive() -- BarAbilitySlice.onStart() -- BarAbilitySlice.onActive() -- FooAbilitySlice.onBackground()
在整個流程中,MyAbility始終處于ACTIVE狀態(tài)。但是,當(dāng)Page被系統(tǒng)銷毀時,其所有已實例化的AbilitySlice將聯(lián)動銷毀,而不僅是處于前臺的AbilitySlice。
昨天,鴻蒙系統(tǒng)(HarmonyOS)2.0手機(jī)開發(fā)者Beta版正式發(fā)布!
華為消費者業(yè)務(wù)軟件部副總裁楊海松說:“既然我們已經(jīng)做出了開發(fā)者Beta版,這說明我們已經(jīng)準(zhǔn)備好了。”
這意味著全球第一個面向萬物互聯(lián)的操作系統(tǒng)馬上就會正式落地,一個新時代真的來了。
可能有的朋友對“HarmonyOS 2.0手機(jī)開發(fā)者Beta版”這個長長的名字,看不大懂。小俱在這里簡單解釋一下:
鴻蒙系統(tǒng)是面向物聯(lián)網(wǎng)的,之前智慧屏版、智能手表版等已經(jīng)用上了,這次是手機(jī)版。2019年榮耀智慧屏搭載的是1.0版本,這次是2.0版。而且,目前這個手機(jī)版是面向開發(fā)者的測試版(Beta版),只有華為開發(fā)者聯(lián)盟官網(wǎng)實名認(rèn)證的個人/企業(yè)開發(fā)者才可以下載試用,更多是為了調(diào)測為鴻蒙系統(tǒng)開發(fā)的APP。
目前有兩種方式可以下載
1、使用HUAWEI DevEco Studio中的遠(yuǎn)端模擬器,HarmonyOS官網(wǎng)下載DevEco Studio 2.0 Beta3版本即可獲得。
2、使用專屬OTA升級真機(jī)進(jìn)行調(diào)測,通過官方渠道報名(),審核通過后將收到華為官方公測邀請郵件,根據(jù)郵件內(nèi)容指引,即可得到OTA推送。
適用設(shè)備包括
1、華為手機(jī):全網(wǎng)通(5G雙卡)P40 、 全網(wǎng)通版P40 Pro、Mate30、Mate30(5G) 、Mate30 Pro、Mate30 Pro(5G);。
2、華為平板電腦:全網(wǎng)通版、全網(wǎng)通版(5G)、WIFI版本的 MatePad Pro。
面向普通手機(jī)用戶推送的鴻蒙系統(tǒng),還需要再耐心等一兩個月。根據(jù)華為消費者業(yè)務(wù)軟件部總裁王成錄的說法,2021年一二月份將會開放部分手機(jī)用戶升級鴻蒙系統(tǒng),初步升級會驗證幾個月,之后全面放開升級,市面上90%以上的機(jī)型都會升級。
除了手機(jī),華為的其他自研產(chǎn)品也會大范圍搭載鴻蒙系統(tǒng)。另外,還有40家硬件合作伙伴的產(chǎn)品將加入,保守估計,明年搭載鴻蒙OS的IoT設(shè)備數(shù)量將達(dá)到1億部。華為方面透露,目前頭部家電企業(yè)都在商談。
自2019年8月榮耀智慧屏首發(fā)鴻蒙系統(tǒng)以來,已經(jīng)過去了1年多時間。然而大眾對鴻蒙系統(tǒng)仍然無感,甚至有很多質(zhì)疑。其中的主要原因在于:對普通人來說,智慧屏版的鴻蒙系統(tǒng)并沒有表現(xiàn)出有什么與眾不同的地方,人們感知不到這是一個不一樣的、劃時代的新系統(tǒng)。
這也難怪,鴻蒙系統(tǒng)是面向萬物互聯(lián)的,只放在有限的設(shè)備上顯然無法充分發(fā)揮其“從底層打通設(shè)備”的核心能力。況且,智慧屏不僅出貨量有限,還是一種低頻交互設(shè)備,人們的使用頻率往往以天來計算,影響力有限。
現(xiàn)在,鴻蒙系統(tǒng)手機(jī)版來了,相信很快大家就會體會到鴻蒙的不一樣之處。
智能手機(jī)的優(yōu)勢在于高普及率,幾乎人手一部,而且跟人的交互非常密切,以分鐘計。某種程度上,智能手機(jī)已經(jīng)成為了我們身體的一部分,相當(dāng)于器官的延伸。因此,它被選為了萬物智聯(lián)的核心入口。
一旦作為中樞的智能手機(jī)搭載了鴻蒙系統(tǒng),由于它的龐大規(guī)模,以及輻射整個智能生態(tài)的覆蓋能力,鴻蒙系統(tǒng)的影響力將得到釋放。
人們會發(fā)現(xiàn),搭載鴻蒙系統(tǒng)的各種設(shè)備之間,APP可以通用,能力可以共享,數(shù)據(jù)可以同步。比如,手機(jī)可以用無人機(jī)的攝像頭;手機(jī)打開菜譜,一碰烤箱即可配對,傳輸對應(yīng)數(shù)據(jù)后,烤箱就開始自動烹飪;手機(jī)、平板、大屏之間無縫跨屏協(xié)同,可以實時批注,協(xié)同辦公更高效。
隨著鴻蒙系統(tǒng)大規(guī)模落地,可以預(yù)見:2021年將是智慧物聯(lián)真正走進(jìn)人們生活的一年。
一個新系統(tǒng)能不能活下來,最關(guān)鍵的便是生態(tài):硬件生態(tài)需要廠商的合作,軟件生態(tài)需要開發(fā)者的支持。
鴻蒙系統(tǒng)作為5G萬物互聯(lián)時代的先行者,得到智能家居硬件廠商的支持并不難。智能家居廠商雖然也在打造自己的生態(tài),但更多是在硬件連接層面。
至于操作系統(tǒng)層面,放眼全球,能做到的也沒有幾個。即使像蘋果、亞馬遜、谷歌、三星這樣的巨頭,也都在統(tǒng)一標(biāo)準(zhǔn),它們早在2019年底便組成了聯(lián)盟,制定新的智能連接家用設(shè)備統(tǒng)一標(biāo)準(zhǔn)。因此,國內(nèi)硬件廠商也有統(tǒng)一標(biāo)準(zhǔn)的需求,否則就會在未來的競爭中仰他人鼻息。
鴻蒙系統(tǒng)是開源的,如果能夠在利益上合理分配,包括小米、OPPO、vivo在內(nèi)的手機(jī)廠商,理論上都可以使用。其他的硬件廠商加入就更合理了。
軟件生態(tài)方面,首先,鴻蒙系統(tǒng)的先鋒性質(zhì)、萬物互聯(lián)的巨大市場,都會吸引開發(fā)者加入。根據(jù)華為方面提供的數(shù)據(jù),目前的有效開發(fā)者數(shù)量已經(jīng)超過10萬。有效開發(fā)者就是使用鴻蒙OS IDE開發(fā)工具,并提交代碼的。
其次,華為面向開發(fā)者開放的能力,讓開發(fā)工作變得更加高效。
分布式的編程框架,華為把能夠?qū)崿F(xiàn)應(yīng)用跨終端部署的基礎(chǔ)單元,稱為“元能力”,應(yīng)用由元能力組裝,可拆分合并,實現(xiàn)一次代碼,多端適用。將復(fù)雜的設(shè)備間協(xié)同封裝成簡單接口,有超過15000個API可供調(diào)用。
分布式UI,不同設(shè)備的UI交互設(shè)計一直困擾著開發(fā)者,華為為此提供了7類自適應(yīng)布局能力,例如拉伸、縮放,去適應(yīng)不同尺寸的屏幕。
開發(fā)者工具平臺,華為DevEco Studio 2.0提供了9套手機(jī)應(yīng)用模板,據(jù)稱每個模板可以減少近千行的工作量,也就是華為已經(jīng)預(yù)置了很多需要的組件。提供了手機(jī)、手表、電視三種終端產(chǎn)品的應(yīng)用效果展示。開發(fā)者在編寫代碼的同時就可以看到代碼在設(shè)備上實現(xiàn)的效果。
另外,鴻蒙系統(tǒng)是可以兼容安卓的。安卓APP經(jīng)過開發(fā)者簡單的編譯后,就可以用于鴻蒙系統(tǒng)。
通過上面的介紹,相信大家對鴻蒙系統(tǒng)軟件生態(tài)建設(shè)應(yīng)該充滿了信心。
華為消費者業(yè)務(wù)軟件部副總裁楊海松說, 希望在明年年底,中國智能家居市場中搭載鴻蒙系統(tǒng)的設(shè)備出貨量能達(dá)到16%,這是一條“生死線”。
中國網(wǎng)絡(luò)最好,IoT制造最強,應(yīng)用市場最大,足夠鴻蒙發(fā)揮,但最終鴻蒙系統(tǒng)能發(fā)展到何種地步,還有很多X因素。送上祝福,拭目以待吧。
(圖片源自網(wǎng)絡(luò),僅為傳播更多信息目的)
開發(fā)前可以了解下鴻蒙: [鴻蒙開發(fā) 序]華為鴻蒙操作系統(tǒng)(HarmonyOS)簡介及開發(fā)環(huán)境搭建
開發(fā)前的準(zhǔn)備:「鴻蒙開發(fā) 1」華為鴻蒙應(yīng)用集成開發(fā)環(huán)境DevEco Studio安裝和設(shè)置
了解鴻蒙應(yīng)用開發(fā)的基本開發(fā)流程:「鴻蒙開發(fā) 2」第一個華為鴻蒙(HarmonyOS)應(yīng)用程序(App)
本章目標(biāo):
1 了解華為鴻蒙應(yīng)用開發(fā)的可視化(低代碼)方式
2 通過構(gòu)建一個簡單的具有頁面跳轉(zhuǎn)功能的應(yīng)用
低代碼開發(fā)方式,即通過可視化界面開發(fā)方式快速構(gòu)建布局、編輯UI界面,可有效降低用戶的上手成本并提升用戶構(gòu)建UI界面的效率。
1 打開DevEco Studio,創(chuàng)建一個新工程,選擇支持Phone / Tablet / Wearable(手機(jī) / 平板 / s可穿戴)的模板,我們在此直接選擇Empty Ability
Project name工程名稱填SuperVisual
Development mode開發(fā)方式選擇Super Visual
其它的可以使用默認(rèn)設(shè)置,點擊完成,進(jìn)入編輯界面
1 在Project(項目)窗口,刪除工程運行默認(rèn)的入口文件夾:“entry src main js default pages index”文件夾
2 在Project窗口,選擇工程中的“entry src main js default pages”,單擊鼠標(biāo)右鍵,選擇“New JS Visual”
JS visual name填first,點擊完成,進(jìn)入編輯界面
創(chuàng)建完成后,可以看到“entry src main supervisual default pages page page.visual”的文件目錄結(jié)構(gòu)
3 第一個頁面內(nèi)有一個容器、文本和一個按鈕,通過Div、Text和Button組件來實現(xiàn)
(1)分別選中first.visual畫面中的Text、Div組件,單擊鼠標(biāo)右鍵,選擇Delete刪除
(2)選中UI Control中的Div組件,將其拖至畫布
點擊右側(cè)屬性樣式欄中的通用樣式圖標(biāo)(General),設(shè)置Div組件的高度Height為100%,使其占滿屏幕
點擊右側(cè)屬性樣式欄中的樣式圖標(biāo)(Flex),設(shè)置Div組件的FlexDirection樣式為column,使Div的主軸垂直;設(shè)置Div組件的JustifyContent樣式為center,使得其子組件在主軸上居中顯示;設(shè)置Div組件的AlignItems樣式為center,使得其子組件在交叉軸上居中顯示
(3)選中UI Control中的Text組件,將其拖至Div組件的中央?yún)^(qū)域
點擊右側(cè)屬性樣式欄中的屬性圖標(biāo)(Properties),設(shè)置Text組件的Content屬性為 “ Hello World ”
點擊右側(cè)屬性樣式欄中的通用樣式圖標(biāo)(General),設(shè)置Text組件的寬(width)為100%,高(height)為100px
點擊右側(cè)屬性樣式欄中的樣式圖標(biāo)(Feature),設(shè)置組件的FontSize樣式為60px,使得其文字放大;設(shè)置組件的TextAlign樣式為center,使得組件文字居中顯示
(4)選中UI Control中的Button組件,將其拖至Text組件下面
點擊右側(cè)屬性樣式欄中的屬性圖標(biāo)(Properties),設(shè)置Button組件的Value屬性為 “ Next ”,
點擊右側(cè)屬性樣式欄中的通用樣式圖標(biāo)(General),設(shè)置按的寬(width)為40%,高(height)為60px
點擊右側(cè)屬性樣式欄中的樣式圖標(biāo)(Feature),設(shè)置組件的FontSize樣式為40px
至此,第一個頁面創(chuàng)建完成
我們可以在預(yù)覽窗口中看效果,點擊右側(cè)邊欄的Preview打開預(yù)覽窗口
1 在Project窗口,選擇工程中的“entry src main js default pages”,單擊鼠標(biāo)右鍵,選擇“New JS Visual”
Visual配置界面,JS visual name填second,回車(Enter鍵)或者點擊完成,進(jìn)入編輯界面
2 第二個頁面中有一個容器和文本,通過Div、Text組件實現(xiàn),現(xiàn)在編輯器已經(jīng)為我們創(chuàng)建好了,我們就來修改下它們的屬性(你也可以刪除原有的自己創(chuàng)建,具體步驟參考本章第二節(jié)“二 創(chuàng)建第一個頁面”)。
選中Text組件,點擊右側(cè)屬性樣式欄中的屬性圖標(biāo)(Properties),設(shè)置Text組件的Content屬性為 “ Hi,I'm always here. ”
點擊右側(cè)屬性樣式欄中的通用圖標(biāo)(General),設(shè)置組件的寬(width)為100%,高為60px
點擊右側(cè)屬性樣式欄中的樣式圖標(biāo)(Feature),設(shè)置組件的FontSize樣式為36px,TextAlign樣式為center
這樣我們的第二個頁面創(chuàng)建成功了
1 在Project窗口,打開工程中的“entry src main js default pages first first.js”, 導(dǎo)入router模塊,頁面路由router根據(jù)頁面的uri來找到目標(biāo)頁面,從而實現(xiàn)跳轉(zhuǎn)。示例代碼如下:
2 打開或者切換到first.visual頁面,選中畫布上的Button組件,點擊右側(cè)屬性樣式欄中的事件圖標(biāo)(Events),鼠標(biāo)點擊Click事件的輸入框,選擇launch事件
3 在預(yù)覽窗口中查看項目效果,點擊Next按鈕后發(fā)現(xiàn)我們的頁面成功跳轉(zhuǎn)了。
到此,本章的目標(biāo)就完成了。