兩種開(kāi)發(fā)方向
我們常說(shuō)鴻蒙開(kāi)發(fā),但是其實(shí)鴻蒙開(kāi)發(fā)分為兩個(gè)方向:
一個(gè)是系統級別的開(kāi)發(fā),比如驅動(dòng),內核和框架層的開(kāi)發(fā),這種開(kāi)發(fā)以C/C++為主
還有一個(gè)是應用級別的開(kāi)發(fā),在A(yíng)PI7以及以下,還是支持Java的,從API8開(kāi)始,只能用Arkts,js或著(zhù)C++開(kāi)發(fā)了,我們這篇文章重點(diǎn)講下應用級別的開(kāi)發(fā)。
鴻蒙應用開(kāi)發(fā)
和安卓應用和IOS應用開(kāi)發(fā)一樣,鴻蒙系統也需要運行對應的生態(tài)應用,才能蓬勃發(fā)展,通過(guò)官方的DevEco的SDK Manager可以看到
從API8開(kāi)始,Java語(yǔ)言已經(jīng)從鴻蒙開(kāi)發(fā)剔除了,而官方推薦的是ArkTs,那門(mén)ArkTs到底什么,它和js和ts有什么關(guān)系呢?
簡(jiǎn)單來(lái)說(shuō),是個(gè)arkTs 是TS的超集,TS是JS的超集,每個(gè)都基于前者,并且在這個(gè)基礎上做了一些自己的拓展。
PS:多說(shuō)一句,ArkTs原來(lái)叫ETS,所以?xún)烧呤且粋€(gè)東西,可以看到鴻蒙的工程文件,都是以ts和ets結尾的,而在開(kāi)源鴻蒙代碼里面,還是有很多js_xxx.cpp文件,所以最后還是通過(guò)編譯器編譯成js,通過(guò)類(lèi)似于jni(他們叫napi)的東西,調用到C++層面。
為什么舍棄Java
其實(shí)這個(gè)問(wèn)題,我也思考了很久,但是官方?jīng)]有一個(gè)說(shuō)法,大膽猜測下有兩個(gè)原因:
1)就像Android拋棄Java一樣,怕倒時(shí)候被人告,陷入官司風(fēng)波中(感興趣的朋友可以搜索,甲骨文訴訟谷歌Java侵權之案,這里不贅述)
2)Java是一門(mén)解釋性語(yǔ)言,必須跑JVM,就像負重跑一樣,必然降低系統的流暢性,這也是Android卡的原因之一,系統完全拋棄JVM,從結構上就天然流暢多了
當然可能還有一種可能,告訴大家我都不支持Java開(kāi)發(fā)了,你們不能再說(shuō)我安卓套殼了吧!
為什么選擇ets
arkUI用的是聲明式的寫(xiě)法(現在不管是Android新出的compose還是Flutter都是這種寫(xiě)法),目前的js和ts不支持,還是只能用以前那種過(guò)程式的寫(xiě)法,至于C++純寫(xiě),C++是一門(mén)門(mén)檻比較高的語(yǔ)言,不適合一般開(kāi)發(fā)者。
arkTS是基于TS的,TS是微軟一門(mén)完全開(kāi)源的語(yǔ)言,沒(méi)有版權問(wèn)題,也有一定的前端開(kāi)發(fā)者。
基于上述兩個(gè)原因,官方推薦用arkTS比較合適。
總結:
鴻蒙經(jīng)過(guò)幾年的迭代,拋棄了Java,基于TS出了一個(gè)官方推薦的ArkTS語(yǔ)言,甩開(kāi)了JVM,提升效率,同時(shí)支持自己研發(fā)的一些現代化特性,沒(méi)有版權的問(wèn)題,現在唯一的問(wèn)題就是各大公司愿不愿意為它去適配生態(tài)了,還好的是,目前各大互聯(lián)網(wǎng)公司已經(jīng)開(kāi)始適配了。
審核編輯 黃宇
-
Android
+關(guān)注
關(guān)注
12文章
3882瀏覽量
126019 -
JAVA
+關(guān)注
關(guān)注
19文章
2913瀏覽量
103283 -
鴻蒙
+關(guān)注
關(guān)注
55文章
1977瀏覽量
42225
發(fā)布評論請先 登錄
相關(guān)推薦
評論