对于鸿蒙的一点见解
周五我在東莞出差,下班后看了開發(fā)者大會(huì)的視頻回放,回到酒店,我跟鄧總說,我們今天不要拍視頻,也不要打王者了,你給我下鴻蒙的代碼來看看,然后,那天晚上我們都沒有上線王者,鄧總把代碼下載后研究了3個(gè)小時(shí)。
后面我跟韋老師聊了下,韋老師是參與鴻蒙開發(fā)的,他很興奮,也很開心,這因?yàn)轼櫭捎幸徊糠值男难彩莵碜杂谒?#xff0c;然后他跟我說「先這樣吧,我晚上要把鴻蒙移植到我們的開發(fā)板上」,然后,那天晚上大家都看到韋老師發(fā)的那個(gè)朋友圈,鴻蒙移植成功,做嵌入式開發(fā)的人都懂,調(diào)通一個(gè)東西后,那種愉悅和放松的心情,總是想伸個(gè)懶腰休息一下。
對(duì)我而言,我對(duì)鴻蒙期待不是很大,而且我是覺得鴻蒙在一定程度上是需要吹牛的「之前的那個(gè)發(fā)布會(huì)是需要吹牛,但是這次的這個(gè),能看到鴻蒙需要大家一起的努力的」,這點(diǎn)上,希望我是錯(cuò)誤的,因?yàn)轫f老師告訴我,參與鴻蒙開發(fā)的人,在國內(nèi)都是屬于頂尖的。
但是,鴻蒙依然會(huì)遇到一些問題,這些問題可能不僅僅是技術(shù)就可能解決的。
鴻蒙對(duì)標(biāo)的是安卓系統(tǒng),而且鴻蒙為了兼容現(xiàn)在的設(shè)備,鴻蒙一定需要兼容安卓的某些特性「比如adb」,要不然現(xiàn)在的所有設(shè)備使用上就有問題。
OS和內(nèi)核是兩個(gè)東西,鴻蒙的內(nèi)核可以是Linux,也可以是華為自己開發(fā)的內(nèi)核,看代碼命名是Liteos_a,這個(gè)是一個(gè)實(shí)時(shí)內(nèi)核,實(shí)時(shí)內(nèi)核和非實(shí)時(shí)內(nèi)核有非常明顯的區(qū)分,我們正常使用的windows,Linux等都是分時(shí)系統(tǒng),每個(gè)任務(wù)都有一個(gè)時(shí)間片,實(shí)時(shí)系統(tǒng)調(diào)度算法和分時(shí)系統(tǒng)是不同的,像嵌入式系統(tǒng)freertos,rtt是實(shí)時(shí)系統(tǒng)。從這里隱約可以看出來華為的對(duì)手并不是Linux。
----?舉例子
一年級(jí)的小明,每天都在努力跑步,并宣稱說,我要打敗那個(gè)三年級(jí)的大雄,然后等過了幾天,小明對(duì)同班的小花說,我要打敗的人是你,在一年級(jí)這個(gè)班級(jí),我才是真正的老大。
ps:Linux內(nèi)核也可以打上實(shí)時(shí)補(bǔ)丁。
---- 如果鴻蒙VS安卓
安卓開發(fā)的應(yīng)用需要重新開發(fā),這部分不僅需要華為方面的努力,還需要產(chǎn)品公司的人去學(xué)習(xí)鴻蒙的api,一款應(yīng)用可能需要ios、安卓、鴻蒙三個(gè)系統(tǒng)的開發(fā)人員,因?yàn)楝F(xiàn)在世面上的鴻蒙手機(jī)還沒有,所以這個(gè)技術(shù)積累還是很少的。
---- 廠商愿意不愿意使用鴻蒙,這個(gè)才是最大的問題。
我們知道,手機(jī)芯片原廠釋放芯片的同時(shí)也會(huì)釋放SDK包,如果需要占領(lǐng)手機(jī)市場,那就需要搞定這些芯片原廠,適配他們的芯片,適配他們的外設(shè),雖然安卓發(fā)展到現(xiàn)在已經(jīng)很多個(gè)版本了,但是依然每天有很多問題需要解決。
安卓發(fā)展到現(xiàn)在,也出現(xiàn)了很多新穎有用的特性,比如我之前在視頻里面提到的,Android 9之后有一個(gè)特性「就是不需要關(guān)閉WIFI也能打開手機(jī)熱點(diǎn)」,這是一個(gè)非常有效而且有用的功能,這個(gè)功能可以讓信號(hào)覆蓋不到的地方組網(wǎng),而且安卓的很多現(xiàn)有特性對(duì)用戶來說是非常重要的,用戶會(huì)為了鴻蒙而拋棄體驗(yàn)嗎?
鴻蒙想達(dá)到安卓,我覺得路子還是非常長。但是Liteos是非常值得期待的。
因?yàn)長iteos要打的可能不是Linux而是一些嵌入式RTOS,比如Freertos。
但是這也會(huì)遇到同樣的問題,芯片廠商愿意不愿意花精力和心思去做這個(gè)事情,比如說Nordic,這個(gè)是一個(gè)非常典型的藍(lán)牙芯片,它有自己的app,協(xié)議棧,如果讓他們在他們的芯片上重新開發(fā)Liteos,不管從穩(wěn)定性,可量產(chǎn)性,都還是未知的。
我之前做的ESP32,用的是Freertos,如果Liteos想占領(lǐng)IOT市場,就需要在這方面下功夫,比如讓廠商在芯片上移植Liteos,相對(duì)于搞定高通這樣的芯片廠商,搞定樂鑫這樣的國產(chǎn)芯片相對(duì)容易多了。
鴻蒙的出來,在學(xué)生和開發(fā)者之中是比較轟動(dòng)的,學(xué)生和開發(fā)者都喜歡大牛,喜歡新鮮的技術(shù),而且學(xué)生和開發(fā)者大部分有情懷,但是鴻蒙想靠開發(fā)者和學(xué)生去一統(tǒng)江湖,有困難,因?yàn)橘Y源在廠商手里,不是在開發(fā)者和學(xué)生手機(jī)。但開發(fā)者和學(xué)生的作用卻很大,他們可以移植Liteos到不同的芯片上去,擴(kuò)大Liteos的使用,提升Liteos的穩(wěn)定性和擴(kuò)展性。
13年,那時(shí)候,平板行業(yè)非?;馃?#xff0c;然后也有一家國內(nèi)大企業(yè)想吃一下這塊蛋糕,跟方案公司合作,但是后來沒有量產(chǎn),一個(gè)原因是芯片原廠技術(shù)支持不到位,出現(xiàn)的問題比較多,做產(chǎn)品跟做技術(shù)不一樣,做產(chǎn)品的周期非常短,不可能原地等待原廠研究很長時(shí)間。
----為啥Liteos使用駝峰命名?
這個(gè)就是一個(gè)習(xí)慣的問題,并不能說誰好誰不好,但是如果以前看Linux代碼都是下劃線的形式,突然變成大寫,第一感覺就是有點(diǎn)奇怪。
縮進(jìn)方式用空格縮進(jìn)我覺得這是一個(gè)提升,tab鍵因?yàn)樵诓煌能浖袝?huì)顯示不同,總是需要設(shè)置才能顯示正常,也算是制定了好的標(biāo)準(zhǔn)。
---- 中文注釋
在每個(gè)文件的前面,會(huì)有一串英文解釋這段代碼的作用,有點(diǎn)疑問,為什么不直接寫成中文。畢竟中文的話,閱讀起來會(huì)相對(duì)輕松一些。
----?其他
其他也說不出個(gè)所以然,大家看到鴻蒙應(yīng)該都會(huì)有自己的看法,也想知道要不要跟著華為走,現(xiàn)在要不要開始學(xué)習(xí)鴻蒙,我覺得這些都是太過于著急了。
那天直播結(jié)束,我們就聯(lián)系了一個(gè)朋友,說要買點(diǎn)海思的芯片,得到的消息是芯片已經(jīng)是斷貨狀態(tài),我猜測,可能已經(jīng)有人開始操作了。
看代碼可以看到其實(shí)很多技術(shù)是相通的,而且因?yàn)槭侵袊司S護(hù)和開發(fā),文檔和交流上會(huì)方便很多,我覺得沒必要緊張,該怎么學(xué)習(xí)還是怎么學(xué)習(xí),至少我覺得可以說明一點(diǎn),到目前位置,脫離C語言來寫內(nèi)核還不太現(xiàn)實(shí),好好學(xué)習(xí)C語言,學(xué)習(xí)操作系統(tǒng),不說其他的,學(xué)習(xí)51單片機(jī)也差不到哪里去。
總結(jié)
- 上一篇: servlet笔试题java,Java推
- 下一篇: 我的丈母娘