(杭州健瀾 科技 有限公司編輯:張景領 全文約4390字,預計12分鐘可以讀完)
創(chuàng)新互聯(lián)公司專注于綠園企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設公司,購物商城網(wǎng)站建設。綠園網(wǎng)站建設公司,為綠園等地區(qū)提供建站服務。全流程按需定制制作,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
華為的鴻蒙(Harmony OS)系統(tǒng)正式發(fā)布了,在發(fā)布會之后意料之中的出現(xiàn)了兩極分化的評論趨勢,說什么的都有,像什么忽悠人、改別人的、手機不能用等等,但如果你仔細去分析發(fā)布會上有關鴻蒙系統(tǒng)的全程內容,你會發(fā)現(xiàn)它和大多數(shù)評論中的那個“系統(tǒng)”是不一樣的,大家不要盲目去詆毀“鴻蒙系統(tǒng)”,同時也不要肆意吹捧,否則很容易變成“捧殺”,在參與討論之前,我覺得大家有必要先搞清楚,它是一個什么樣的系統(tǒng)。
在發(fā)布會上,他們用了很多專業(yè)的名詞進行功能解釋,我相信這是大多數(shù)觀眾聽不懂的,甚至大多數(shù)媒體的編輯也聽不懂,在這種背景下,不管是吹捧的,還是詆毀的,都沒在靠譜的頻道上。
以下為我個人對鴻蒙(Harmony OS)系統(tǒng)的理解,現(xiàn)在就分享給大家:
目前我們正在使用的各種智能設備,如:手機、PC電腦、平板電腦、智能手表等,它們全都有自己的系統(tǒng),即使是同一個品牌下的產(chǎn)品,也會有專門為它定制的系統(tǒng),如蘋果公司:
手機 iOS
電腦 MacOS
手表 watchOS
電視 tvOS
平板 iPadOS
雖然蘋果公司將它們之間的互動做得很好,但仍然需要大量的人工來編寫和維護不同的系統(tǒng),站在開發(fā)者的角度來看,可能需要針對不同的平臺調整不同的架構和UI,這是一個比較耗時的工作。
在使用的過程中,不同設備之間的系統(tǒng)需要去判斷你的操作,然后根據(jù)不同的平臺,不同的操作來給你調用不同的程序來執(zhí)行,對蘋果產(chǎn)品來說,自家產(chǎn)品之間互通體驗還算不錯,但如果和安卓設備或windows設備之間互動就顯得麻煩很多,早期用蘋果手機的人,想把照片拷貝到電腦上都很費勁,甚至這是很多蘋果手機用戶需要學習的第一課“如何把照片復制到電腦上”。
對Android系統(tǒng)的設備來說就更別提了,除了系統(tǒng)的碎片化之外,不同廠商之間都有自己的規(guī)則,沒有一個統(tǒng)一的標準,再加上亂七八糟的第三方APP,導致安卓設備體驗極差,相互之間想要達到完美契合的程度,需要比蘋果付出更多人力和時間,所以很多大 游戲 或是應用,都是最新上架蘋果商店,更新也是蘋果設備先更新,因為相對來說,蘋果系統(tǒng)更容易維護。
Android系統(tǒng)現(xiàn)在看上去還不錯,但其實它有個很狼狽的過去。我學過軟件開發(fā),學會網(wǎng)站編程,學過數(shù)據(jù)庫等N種編程語言,甚至稍微有那么一點點開發(fā)經(jīng)驗的人都會知道,如果你去修改一個別人的程序,如果這個程序一直在被不同的人,不同的時期維護,這里面就會出現(xiàn)大量的垃圾代碼。
有垃圾代碼不可怕,可怕的是誰也不敢動,不敢刪。這些垃圾代碼雖然看上去沒用,但說不定某一條就與另一個指令相連,如果你刪了就會產(chǎn)生連鎖反應,甚至會導致系統(tǒng)崩潰,所以比較穩(wěn)妥地做法就是,在不改變原有代碼的情況下,把自己想要的功能再加進去,備注上自己的名字。
這會造成什么問題呢?我們舉個例子:
你想從16樓到1樓拿快遞,原本只要從固定的電梯直接到1樓即可,也就30秒不到,結果你從家出來發(fā)現(xiàn)樓道有30個電梯,上了一個之后發(fā)現(xiàn)它只到13樓,你只好下來再進另一個,運氣好能到1樓,運氣不好估計還得在6樓停一下,運氣最差的情況你可能坐了20個電梯都還沒到1樓。
這就是垃圾代碼帶來的副作用,現(xiàn)在的Android就是這個情況,大家都知道有垃圾代碼,也知道它會影響運行效率,但誰也不敢動,或者說誰也不會去動,都不想承擔系統(tǒng)崩潰的風險,這是人之常情。
華為的鴻蒙系統(tǒng)提出一個“微內核”的概念,其實這個谷歌新系統(tǒng)Fuchsia OS就是微內核的系統(tǒng),它們希望用這個全新的系統(tǒng)來替代Android這種老弱病殘的現(xiàn)狀,因為它身上的頑疾太多了,還是沒藥可救的那種。
這種“微內核”的系統(tǒng)最大的好處就是,可以讓開發(fā)者提交的應用,最方便、最快地適配所有硬件,這對消費者來說也有非常大的好處,你可以第一時間更新你手里的所有智能設備,類似蘋果每年的大版本系統(tǒng)更新,幾乎全球的用戶都可以同時更新,這是國內Android用戶這輩子都體驗不到的,所以我們只能寄托于新的系統(tǒng)。
Harmony OS 鴻蒙,基于微內核的全場景分布式OS。
“基于微內核的全場景分布式OS”這句話是重點,它不是一個專門為單獨設備準備的系統(tǒng),它是一個平臺式的系統(tǒng),可以通過中心網(wǎng)絡派發(fā)資源和功能,所有功能又可以單獨使用,靈活多變但統(tǒng)一和諧。
我們再來深入地拆解一下鴻蒙系統(tǒng),它與普通系統(tǒng)最大的不同之處在于,它在運行程序的一開始并不是直接執(zhí)行所有內容,而是先判斷你是什么設備,然后直接走單獨的通道去執(zhí)行,而所執(zhí)行的這些程序,不管你是電視、電腦、還是手機,它們用的都是同一套系統(tǒng),只是在最開始的時候選擇了一下設備,這個系統(tǒng)并不是給某種設備單獨定制的,而是一個通用的系統(tǒng)。
這樣做的好處就是,每次你需要維護的時候,只需要把第一層的東西做升級,下面的底層是不用動的。這就好像系統(tǒng)是一臺CD機,不管誰家的CD都可以在我這里播放,只要你按統(tǒng)一的Copy程序做的光盤就行了,如果你想聽其他人的音樂,只要換張CD即可。
而以往的系統(tǒng)就比較麻煩,如果你想換一張CD,可能需要針對這張CD去制造一臺CD機,最差也得把這臺CD機修改成可以播放的樣子。
除了設備間的獨立之外,它會讓硬件本身的功能成為系統(tǒng)可以調配的東西,比如手機上的攝像頭,它甚至可以通過系統(tǒng)間的調度被電視或手表使用,因為它們用的是同一個系統(tǒng),所以具備了相互通信的能力。
你們有沒有看過《速度與激情》這部電影,它里面的天眼系統(tǒng)其實就是在調配所有生活周邊的攝像頭來獲取畫面,從而準確地追蹤到目標人物。雖然鴻蒙還沒有這么高級,但它已經(jīng)是個雛形了。
相信很快我們就可以用家里的電視屏幕當大疆無人機的顯示屏用了,這會給我們帶來無限的 娛樂 空間。
當然要實現(xiàn)這種功能上的調用需要二個條件,第一個就是必須是采用了鴻蒙系統(tǒng)的硬件;第二就是必須登陸了相同的華為賬號。這里面涉及到了另一個生態(tài)的問題,我們后面再講,還是先說系統(tǒng)。
可以單獨調配資源的另一個好處就是,它可以像我們現(xiàn)在的智能路由器一樣,根據(jù)你正在做的事情來給你不同的性能。如果你正在玩 游戲 ,它可能會保證你玩 游戲 的同時,再去幫你升級一下系統(tǒng),但它還不能影響你的網(wǎng)速;如果你正在看視頻,在這種幾乎不需要性能的場景時,它可能會在后臺幫你徹底殺毒或自檢一次,這種優(yōu)化能力其實現(xiàn)在的手機也可以做到,但這個邏輯本身就是吃性能的,所以當它以系統(tǒng)的一部分出現(xiàn)的時候,才是最完美的。
這功能其實你是看不到的,但從其它地方你也可以間接發(fā)現(xiàn),如:費電小了、發(fā)熱小了、打開東西更快了、不用老去清理緩存了,藍牙耳機玩 游戲 或許都沒延時了(我發(fā)現(xiàn)了一些端倪,他們已經(jīng)在做藍牙耳機玩 游戲 降低延時的測試了,EMUI 10.0見)。
至于系統(tǒng)安全性方面,我并不是專家,所以在這里沒辦法給大家更深度的普及,但我可以說一下我個人的理解。鴻蒙系統(tǒng)這類微內核的系統(tǒng),本身是非常小巧的,代碼量也不大,所以它可以用到更深度的安全級別措施。
另外它天生就沒有root權限,也就是說不會給任何第三方應用或個人系統(tǒng)最核心的權限,這也算是最大限度的保證安全的措施之一了??赡芎芏嗳苏f手機不能root就沒什么可玩性了,但我個人認為沒有是對的,因為這樣可以最大限度的保證系統(tǒng)的安全以及流暢性。
可能你們還沒注意到,很多手機第三方主題、字體、甚至動態(tài)壁紙,都會明顯影響手機的流暢性,這里面字體的影響是最大的,很多莫名卡頓的現(xiàn)象換成系統(tǒng)默認字體立刻就好了。
我們來看一下鴻蒙OS的整體結構,其實它仍然保留了Linux內核,這樣一來就可以直接兼容安卓應用,這在初期是非常重要的,畢竟不能讓用戶買回來沒得用,在這段過度期中間,華為方面肯定會聯(lián)合各大主流廠商定制屬于鴻蒙OS的專用APP,這才是發(fā)揮它性能的最佳方式。
也就是說,在兼容安卓APP的這個時間里,它的威力還沒辦法完全施展出來,當那些采用“方舟編譯器”開發(fā)的應用上線之后,才能發(fā)揮它至少八成以上的實力,當鴻蒙OS的生態(tài)建立完全時,才可以發(fā)揮接近100%的實力。這也是我為什么說,鴻蒙OS需要時間來沉淀,它不可能一上來就是滿血狀態(tài)。
我們可以理解為,現(xiàn)在所有用“方舟編譯器”開發(fā)的應用,都可以在鴻蒙OS中發(fā)揮最快的效率。
當使用方舟編譯器的應用足夠多時,或者說90%以上常用APP都有方舟編譯器的版本時,鴻蒙OS的底層會完全拋棄Linux內核,只保留鴻蒙微內核,這個時候才是鴻蒙(Harmony OS)系統(tǒng)正式獨立且完全獨立的日子,這一天才是它的真正崛起的日子。
為了早日實現(xiàn)這一天,其實華為方面下了很多功夫,甚至他為開發(fā)者提供了非常舒服的便攜環(huán)境,很多基礎操作都可以直接用拖拽的方式來完全設計,模塊化編程是未來的趨勢,我這種曾經(jīng)只會手動敲代碼的老古董已經(jīng)被淘汰了。
它可以讓你一次開發(fā),同時適配所有搭載了鴻蒙OS的設備,這是無數(shù)安卓開發(fā)人員的夢想,只可惜在安卓系統(tǒng)上已經(jīng)沒辦法實現(xiàn)了。
我估計后面華為會為開發(fā)者提供不錯的獎勵措施,有獎勵,有平臺,有目標,有未來,生態(tài)成型基本上就是時間問題。
【產(chǎn)品的誕生】
現(xiàn)在的鴻蒙OS是可以用在手機上的,但支持的APP并不是很多,而且生態(tài)還沒有建立起來,這些都需要時間,之前我和瓦力讀者說是2年時間,這與發(fā)布會上華為方面的規(guī)劃基本是吻合的。
現(xiàn)在拿出鴻蒙OS的目的很簡單,告訴大家鴻蒙OS并不只是PPT,它已經(jīng)是完整的系統(tǒng)了,順便讓那些噴子閉嘴。另一個原因是,它的電視用上了鴻蒙OS,沒必要藏著掖著,同時也是給那些應用開發(fā)者一個定心丸,讓他們可以放心為鴻蒙OS開發(fā)應用。
這里有一個“因素”很重要,如果明天美國不讓華為用安卓系統(tǒng)了,鴻蒙OS就必須提前應用到手機上,這是一個沒辦法的備選方案,至少可以用,雖然和常規(guī)安卓沒什么大區(qū)別。
但如果換了另外一個廠商,如小米、OPPO、vivo等,這幾乎是毀滅性的打擊,所以防患于未然是必須要做的。但小米他們暫時沒辦法弄自己的系統(tǒng),因為這需要很多錢,很多人,很多時間,即使有一天美國禁止全中國的手機廠商使用安卓系統(tǒng),其實鴻蒙OS也可以給大家用,與其說它是華為的應急方案,倒不如說是全中國手機廠商的應急方案,其實如果不是萬不得已,華為也不想這么早就把鴻蒙OS用在手機里,時間點太靠前了。
到了2020年,鴻蒙OS會被用到筆記本電腦、手環(huán)、手表中,2021年才是應用到手機上的最佳時機,那時候有沒有安卓系統(tǒng)都已經(jīng)無所謂了。這樣做也是為了先把生態(tài)和周邊做好,手機出來的時候,可以直接整合,用戶上手就是完全版本的體驗,這也是最穩(wěn)妥的方式。
如果你對手機系統(tǒng)或是手機行業(yè)有一些了解,相信看完我上面的分享之后應該明白了,鴻蒙(Harmony OS)的目標根本不是Android,而是谷歌正在開發(fā)的Fuchsia OS,以及蘋果正在部署的相應系統(tǒng)。
所以那些經(jīng)常用Android來和鴻蒙(Harmony OS)說事的人,應該換換思路,是時候接軌下一代系統(tǒng)了。
鴻蒙HarmonyOS是基于微內核的分布式OS。眾所周知,華為在受到一些限制之后,很快就公布了鴻蒙系統(tǒng)的消息,還說鴻蒙系統(tǒng)將會最快在今年秋天發(fā)布,最晚也是明年春天。很多人也希望鴻蒙系統(tǒng)能早日發(fā)布,但是任正非曾經(jīng)一句話說出了這件事的重點,也就是說鴻蒙系統(tǒng)難的不是操作系統(tǒng),而是生態(tài),畢竟華為的操作系統(tǒng)研發(fā)從2012年就開始了,一直到現(xiàn)在,再加上華為的體量,每年的研發(fā)的費用投入確實對于華為來說不難。
學java都知道微服務和分布式。那么手機系統(tǒng)怎么分布式呢?難道讓你買好幾部手機共同運行一個游戲?應該不是。這個微服務應該是適用于物聯(lián)網(wǎng)的。也就是你家的電視冰箱運行的同樣的微內核,只不過內容不太一樣。
這樣你家的所有電器從內核上就連在了一起,他們比小米家庭比homekit連接得更緊密,因為他們是幾個微服務組成的一個系統(tǒng)。
以上功能不是我的猜測,華為的ppt也提到了。運行鴻蒙的電視手機平板可以無縫切換。
目前從華為放出的消息來看鴻蒙肯定不是在開源安卓基礎上修改的,但是我沒有看過鴻蒙的源碼,因為我看不懂,秉著實事求是的態(tài)度來說我也不知道他到底是不是修改的安卓。
那么為什么很多人說鴻蒙是在安卓上修改的,因為鴻蒙兼容了安卓。鴻蒙是一個新的系統(tǒng),軟件還不完善,系統(tǒng)再好沒有微信支付寶也和平精英對于在座的各位也只不過是一個功能機,所以必須要兼容安卓的軟件。
到后來鴻蒙的軟件完善后就可以甩掉安卓這個包袱了。下個月華為會發(fā)布新機,大家就可以體驗到鴻蒙了。
Intent
Intent是對象之間傳遞信息的載體。當一個Ability需要啟動另一個Ability時,或者一個AbilitySlice需要導航到另一個AbilitySlice時,可以通過Intent指定啟動的目標同時攜帶相關數(shù)據(jù)。Intent的構成元素包括Operation與Parameters。
Intent的構成元素
Operation
Action: 表示動作,通常使用系統(tǒng)預置Action,應用也可以自定義Action。例如IntentConstants.ACTION_HOME表示返回桌面動作。
Entity:表示類別,通常使用系統(tǒng)預置Entity,應用也可以自定義Entity。例如Intent.ENTITY_HOME表示在桌面顯示圖標。
Uri:表示Uri描述。如果在Intent中指定了Uri,則Intent將匹配指定的Uri信息,包括scheme, schemeSpecificPart, authority和path信息。
Flags:表示處理Intent的方式。例如Intent.FLAG_ABILITY_CONTINUATION標記在本地的一個Ability是否可以遷移到遠端設備繼續(xù)運行。
BundleName:表示包描述。如果在Intent中同時指定了BundleName和AbilityName,則Intent可以直接匹配到指定的Ability。
AbilityName: 表示待啟動的Ability名稱。如果在Intent中同時指定了BundleName和AbilityName,則Intent可以直接匹配到指定的Ability。
DeviceId: 表示運行指定Ability的設備ID。
當Intent用于發(fā)起請求時,根據(jù)指定元素的不同,分為兩種類型:
如果同時指定了BundleName與AbilityName,則根據(jù)Ability的全稱(例如,“com.demoapp.FooAbility”)來直接啟動應用。
如果未同時指定BundleName和AbilityName,則根據(jù)Operation中的其他屬性來啟動應用。
參考 鴻蒙官方文檔(點擊傳送門) ,做一下流程梳理簡化,及踩坑記錄
華為將真機調試分成物理真機和遠程真機。這里說的都是物理真機(手機、平板)。鴻蒙真機調試巨復雜,不像Android那么容易方便。
貼一下官方的調試流程圖:
總結一下:
上面這個流程可以忽略,沒講到重點。真機調試是需要在 ? AppGallery Connect 中創(chuàng)建應用的,調試應用需要的cer和p7b文件是從這里生成的。
先決條件:
1. 鴻蒙手機通過USB連接電腦,并開啟USB調試。
2. 一個華為開發(fā)者賬號,實名認證
3. APP開發(fā)工具DevEco-Studio
關鍵流程:
1. Studio創(chuàng)建應用
2. 如果未登錄過,F(xiàn)ile Project Structure Project Signing Configs簽名配置頁,點擊“Sign In”
3. AppGallery創(chuàng)建應用(包名和Studio創(chuàng)建的一樣)
4. 官方文檔到這在簽名配置頁就點Try Again可以自動簽名,我試了不行,以下全是手動
5. Studio中Build Generate key and CSR? ?生成p12和csr文件
6. 獲取手機udid,命令行hdc shell bm get -udid(下一步設備管理要用)
7. AppGallery主頁 用戶與訪問 左側設備管理添加udid的設備(生成p7b時要用)
8. AppGallery主頁 用戶與訪問 左側證書管理生成cer文件(生成p7b和簽名配置要用)
9. AppGallery主頁 我的項目 左側HarmonyOS應用 HAP provision profile,生成p7b文件
10. 最后在簽名配置頁配好 p12、p7b、cer等參數(shù),運行鴻蒙應用到真機就行了