華為的鴻蒙系統(tǒng)3.0開始對9款手機的公測,這其中就包括p50系列的3款手機,mate40系列的5款手機,和一款12.6英寸的matepad pro。這讓咱手里拿著的mate30備受冷落。但我自己心里就更加期待華為的倉頡編程語言。這么屈指一算,倉頡編程語言從4月2號開始內(nèi)測以來已經(jīng)兩個多月了。因此,我預(yù)判,鴻蒙系統(tǒng)3.0會跟倉頡編程語言一起來到咱們的身邊。
成都網(wǎng)站設(shè)計、網(wǎng)站制作的關(guān)注點不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給創(chuàng)新互聯(lián)一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。
那么在準(zhǔn)備迎接鴻蒙系統(tǒng)3.0和倉頡編程語言之前,我這一期幫大家打一個堅實的基礎(chǔ)。我相信許多朋友當(dāng)說起來操作系統(tǒng)或者是編程語言的時候,腦子里其實是有點支離破碎,或者是一頭霧水。我?guī)椭蠹覐囊粋€宏觀的角度去鳥瞰,去把握和理解計算機科學(xué)體系中的坐標(biāo),讓你獨具一雙慧眼,單單靠著你的直覺就能獲得專業(yè)的視角。計算機科學(xué)包括六層架構(gòu),操作系統(tǒng)在第四層上,華為倉頡編程語言這樣的應(yīng)用級編程語言則處在第五層上。
咱們先從底部開始,所謂萬丈高樓平地起嘛。咱們來先看基礎(chǔ):信息理論。任何學(xué)科的基礎(chǔ)都是數(shù)學(xué),當(dāng)然計算機科學(xué)也不例外。這第一層就是關(guān)于數(shù)學(xué)理論的。咱們?nèi)粘S玫氖鞘M(jìn)制,計算機則是由0和1構(gòu)建起來的是二進(jìn)制。那數(shù)學(xué)也很簡單,就是關(guān)于0和1的加法。比如1加1,在十進(jìn)制中是等于2,而在二進(jìn)制1加1等于10,這就是所有的數(shù)學(xué)基礎(chǔ),也就是這么簡單。
但是還有更加往上抽象的一個層面的基礎(chǔ),就是咱們在高中時候?qū)W習(xí)的“布爾代數(shù)”??此撇黄鹧鄣摹安紶柎鷶?shù)”研究的是機器如何思考,如何讓機器來獲得智能這樣的問題。
布爾在1854年就解決發(fā)表一篇“研究人類的思考規(guī)律”的論文,提出了“布爾代數(shù)”,為機器如何思考打下了理論基礎(chǔ)。
布爾當(dāng)時的想法很簡單。他認(rèn)為人是理性的,那么人是按照理性邏輯來思考問題的。于是,如果他能把大腦思考問題的邏輯,提煉抽象出來的話,那么是不是就能用這邏輯在大腦之外去思考呢?布爾的這項雄心勃勃的構(gòu)思就是人工智能的雛形。你想呀,如果把這個邏輯提煉出來用在機器機械零件上,機械零件就會開始思考。如果用在電路上,這個電路是不是也就開始思考了呢。布爾代數(shù)咱們就很熟悉了,我就在這里就不帶展開,我前面有一期就專門來講述了這個機器來如何用布爾代數(shù)來思考,大家感興趣可以看下那一期,我在這不展開浪費時間。
再往上第二層就是硬件,布爾他把理論抽象出來,將布爾代數(shù)應(yīng)用到電路上,電路是不是也就能開始思考?哎,到了1938年,香農(nóng)就首次把布爾代數(shù)應(yīng)用到了電路上,于是這個電路就開始思考了。從最早的真空管到半導(dǎo)體晶體管(我前面那一期也專門講過“機器如何用晶體管來思考”)然后到集成電路,再到現(xiàn)在這個大型的集成電路芯片。我們知道麒麟9000芯片用的Arm架構(gòu)的指令集,指揮CPU工作的指令又叫機器碼。比如“加法”就是用一串?dāng)?shù)字機器碼00000011來表示。
然而你會發(fā)現(xiàn),用機器碼來指揮這個cpu或者電腦工作太麻煩了。一般人哪里能記住像前面的6個0和后面兩個1來表示加減乘除的加呢。
正是困擾于此,科學(xué)家就此提出來編程語言。最早編程語言是匯編語言。比如前面表示加法的機器碼00000011,匯編語言中將其抽象為add。然而,匯編語言也需要大量的記憶,一個指令一個指令的對應(yīng),也是太機械了。再往前一步,往上一層抽象就是系統(tǒng)級的編程語言:面向過程的C語言。
一門編程語言所要做的一個主要工作就是在機器和我們?nèi)祟愃伎贾g建立一座橋梁。我們是人類的思考邏輯,機器是機械 式邏輯思考問題。越高級的編程語言越符合我們?nèi)祟惖乃伎歼壿嫞匠跫壍木幊陶Z言則越貼近機器的邏輯。因此,我們用高級的編程語言比如C語言,將想做的事情表達(dá)出來,它會自動轉(zhuǎn)換成機器碼。
我喜歡的編程發(fā)展史上的第二大古老的語言:Lisp語言。
就是直接使用我們的抽象思考的語言。比如重復(fù)地來做一件事,重復(fù)說五遍“Hello”這個單詞。Lisp將重復(fù)抽象為dotimes,do是做, times是多次,dotimes反復(fù)多次做。看見沒,編程語言成了我們抽象的思考工具。
當(dāng)然,華為倉頡語言也是在編程語言這里,但不是系統(tǒng)級的編程語言,咱們后面再說
當(dāng)在第二層硬件之上發(fā)展出來高級的編程語言,有了系統(tǒng)級的編程語言比如C語言之后。大家就發(fā)現(xiàn),我需要一個操作系統(tǒng)來處理日常的基本任務(wù),比如文件管理,進(jìn)程管理,內(nèi)存管理,設(shè)備管理和用戶管理等等。于是科學(xué)家著手用編程語言寫操作系統(tǒng)。而事實上C語言在1969年的發(fā)明,也正是為了移植與開發(fā)UNIX操作系統(tǒng)。C語言的設(shè)計者丹尼斯·里奇同時也是Unix操作系統(tǒng)的發(fā)明人。到了1991年Linus用C語言寫了Linux內(nèi)核,也是目前安卓和鴻蒙系統(tǒng)的內(nèi)核。
華為的EROFS超級文件系統(tǒng)并入Linux內(nèi)核之后,無論是Linux還是安卓都打上了20%的華為烙印。
操作系統(tǒng)再往上一層就是我們?nèi)粘5膽?yīng)用。比如聽歌、看視頻等apps就是在操作系統(tǒng)之上。這也好理解,先有了操作系統(tǒng),才有我們的各種應(yīng)用。由此也能理解,為什么像鴻蒙系統(tǒng)3.0如此重要,因為應(yīng)用程序要運行在上面。這些應(yīng)用程序就是用華為倉頡編程語言等應(yīng)用級編程語言開發(fā)的。不過,目前咱們手機上的應(yīng)用程序都是用Java開發(fā)。未來鴻蒙系統(tǒng)將會使用自研的倉頡語言開發(fā)鴻蒙應(yīng)用。
應(yīng)用程序的主要功能之一是溝通和交流。我們用Email發(fā)郵件,用通訊視頻聊天,而Web應(yīng)用技術(shù)構(gòu)建起來當(dāng)前的互聯(lián)網(wǎng)信息大廈。
好了,我們總結(jié)一下。計算機科學(xué)的六層架構(gòu)。
第1層是信息理論,研究如何在大腦之外實現(xiàn)思考,布爾代數(shù)是人工智能的雛形。第2層是硬件,布爾代數(shù)應(yīng)用到電路上,晶體管開始思考,將數(shù)以億計的晶體管雕刻到集成電路CPU中,CPU的機器碼指揮計算機工作。第3層編程語言,從枯燥難記的機器碼里發(fā)展出來匯編語言,再到系統(tǒng)級的C語言,構(gòu)建起來人類思考與機器邏輯之間橋梁。第4層操作系統(tǒng),C語言不是憑空而來,是為了開發(fā)Unix操作系統(tǒng)而發(fā)明,而操作系統(tǒng)是計算機里最大的軟件。第5層應(yīng)用軟件,日常所有的apps都運行在操作系統(tǒng)之上。倉頡編程語言是給鴻蒙系統(tǒng)開發(fā)應(yīng)用程序的專屬開發(fā)語言。第六層溝通互聯(lián),就是我們目前的互聯(lián)網(wǎng)技術(shù),在網(wǎng)絡(luò)里看書、聽音樂,點一份外賣等等。
這就是計算機科學(xué)六層架構(gòu),鴻蒙操作系統(tǒng)與倉頡編程語言各就各位。用架構(gòu)去思考和看問題,不僅能心中有數(shù),還能獨具一雙慧眼。
參考 鴻蒙官方文檔(點擊傳送門) ,做一下流程梳理簡化,及踩坑記錄
華為將真機調(diào)試分成物理真機和遠(yuǎn)程真機。這里說的都是物理真機(手機、平板)。鴻蒙真機調(diào)試巨復(fù)雜,不像Android那么容易方便。
貼一下官方的調(diào)試流程圖:
總結(jié)一下:
上面這個流程可以忽略,沒講到重點。真機調(diào)試是需要在 ? AppGallery Connect 中創(chuàng)建應(yīng)用的,調(diào)試應(yīng)用需要的cer和p7b文件是從這里生成的。
先決條件:
1. 鴻蒙手機通過USB連接電腦,并開啟USB調(diào)試。
2. 一個華為開發(fā)者賬號,實名認(rèn)證
3. APP開發(fā)工具DevEco-Studio
關(guān)鍵流程:
1. Studio創(chuàng)建應(yīng)用
2. 如果未登錄過,F(xiàn)ile Project Structure Project Signing Configs簽名配置頁,點擊“Sign In”
3. AppGallery創(chuàng)建應(yīng)用(包名和Studio創(chuàng)建的一樣)
4. 官方文檔到這在簽名配置頁就點Try Again可以自動簽名,我試了不行,以下全是手動
5. Studio中Build Generate key and CSR? ?生成p12和csr文件
6. 獲取手機udid,命令行hdc shell bm get -udid(下一步設(shè)備管理要用)
7. AppGallery主頁 用戶與訪問 左側(cè)設(shè)備管理添加udid的設(shè)備(生成p7b時要用)
8. AppGallery主頁 用戶與訪問 左側(cè)證書管理生成cer文件(生成p7b和簽名配置要用)
9. AppGallery主頁 我的項目 左側(cè)HarmonyOS應(yīng)用 HAP provision profile,生成p7b文件
10. 最后在簽名配置頁配好 p12、p7b、cer等參數(shù),運行鴻蒙應(yīng)用到真機就行了
DevEco Studio
目前已更新到2.1版本
可以用Java來進(jìn)行開發(fā),如果不了解Java編程,可以看看我下面這個專欄:
華為消費者業(yè)務(wù)CEO余承東在接受媒體采訪時曾一度表示:“華為鴻蒙OS系統(tǒng)未被搭載與華為手機之上,是因為目前華為與谷歌之間還有一個“反分裂協(xié)議”,而目前華為海外市場依舊還有一部分搭載谷歌的GMS服務(wù)智能手機還在銷售,所以這份協(xié)議也依舊還在生效中;”可見目前谷歌也是直接拿著協(xié)議來限制“華為”,同時又在不斷地頒發(fā)“新規(guī)”來進(jìn)一步打壓華為鴻蒙OS系統(tǒng)以及華為HMS生態(tài)服務(wù),例如谷歌最新協(xié)議要求所有安卓手機廠商都印上這樣一句話““with easy access to the Google apps you use most(翻譯后:可以輕松訪問您最常用的谷歌應(yīng)用程序);”以暗諷華為手機無法使用谷歌的GMS應(yīng)用服務(wù)。
其實對于華為而言,目前華為HMS服務(wù)也正在不斷地走上正軌,并且華為余承東也表示:“目前華為HMS生態(tài)服務(wù)已經(jīng)能夠滿足歐洲80-90%的用戶需求;并且此前發(fā)布的華為P40 Lite也是直接搭載了華為HMS服務(wù),并且銷量方面,也已經(jīng)有了很大的改觀?!逼鋵嵢A為HMS服務(wù)之所以會如此之快被歐洲消費者所逐漸接受,很大程度上也是因為華為不斷地投入重金,來建設(shè)華為HMS生態(tài),直接吸引了全球主流APP軟件開發(fā)者紛紛加入到華為HMS生態(tài)體系之中,并且很多主流的游戲APP、社交APP都將很快上架AppGallery,如此看來,華為方面只需要等到搭載GMS服務(wù)的華為手機正式結(jié)束銷售周期后,才會正式推出鴻蒙OS系統(tǒng)。
或許華為鴻蒙OS系統(tǒng)也正如余承東所言:“華為鴻蒙OS系統(tǒng)也是早有準(zhǔn)備,未來將會有越來越多的核心產(chǎn)品會使用鴻蒙OS操作系統(tǒng);”如今華為智慧屏、華為路由器等產(chǎn)品均已經(jīng)搭載了鴻蒙OS系統(tǒng),當(dāng)然對于大家最為期待華為手機何時能夠用上鴻蒙OS系統(tǒng),其實我們從華為最新的EMUI 10.1系統(tǒng)中就能夠看到,已經(jīng)開始擁有越來越多華為鴻蒙OS系統(tǒng)特性,在系統(tǒng)底層上已經(jīng)是個獨立的系統(tǒng)了,而在最近一段時間華為自家軟件服務(wù)也是頻頻更新,這已經(jīng)說明,華為鴻蒙OS系統(tǒng)也只差最后一個官宣了。
最后:小編也相信鴻蒙OS系統(tǒng)很快就會面世,而這一時間節(jié)點就是搭載GMS服務(wù)的華為手機“正式壽終正寢”,各位小伙伴們,你們對于谷歌的“反分裂協(xié)議”限制了鴻蒙OS系統(tǒng)快速上市,都有什么樣的看法和意見呢?歡迎在評論區(qū)中留言討論,期待你們的精彩評論!
如何安裝鴻蒙開發(fā)工具-DevEco Studio
鴻蒙開發(fā)工具(DevEco Studio)漢化版
第一個鴻蒙工程-Java版(含模擬器創(chuàng)建)
零基礎(chǔ)學(xué)鴻蒙-UI控件_Text
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_TextField
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_Button
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_Image
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_Switch
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_RadioButton
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_CheckBox
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_ToggleButton
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_DatePicker
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_TimePicker
零基礎(chǔ)學(xué)鴻蒙編程-常用工具_(dá)Toast
零基礎(chǔ)學(xué)鴻蒙編程-常用工具_(dá)HiLog
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_TabList
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_ListContainer
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_ProgressBar
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_PageFlipper
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_Slider
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_StackLayout
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_TableLayout
零基礎(chǔ)學(xué)鴻蒙編程-UI控件_StackLayout
零基礎(chǔ)學(xué)鴻蒙編程-運行時權(quán)限
零基礎(chǔ)學(xué)鴻蒙編程-關(guān)系數(shù)據(jù)庫
零基礎(chǔ)學(xué)鴻蒙編程-網(wǎng)絡(luò)請求