
1 什么是NativeScript
NativeScript 是用于構(gòu)建 iOS 和 Android 應(yīng)用程序的成熟框架,可以讓我們直接從JavaScript(或TypeScript)使用本機(jī)API ,因此我們也可以將其與 Angular,React,Vue 或 Svelte 一起使用。
2 移動端開發(fā)方式的對比
移動應(yīng)用程序可分為四大類:native, hybrid, cross compiled, and just-in-time (JIT) compiled
hybrid app本質(zhì)上是在web瀏覽器中運(yùn)行的網(wǎng)頁。cross compiled app通過編譯器被轉(zhuǎn)換成native app。而JIT compiled app(例如NativeScript)運(yùn)行在一個 JavaScript的虛擬機(jī)里。
3 NativeScript的優(yōu)點(diǎn)
更少的shim代碼(處理Android和iOS的不同)、一次寫入(Android和iOS共用一套代碼)、隨處部署等等。
4 NativeScript能構(gòu)建什么樣的應(yīng)用
因為NativeScript應(yīng)用程序直接運(yùn)行在設(shè)備上,并由運(yùn)行在應(yīng)用程序內(nèi)部的JavaScript虛擬機(jī)解釋,這意味著NativeScript應(yīng)用程序不受訪問本機(jī)設(shè)備api或硬件的限制,因此任何應(yīng)用程序都可以編寫為NativeScript應(yīng)用。理論上是這樣的,但是NativeScript應(yīng)用程序是在JavaScript虛擬機(jī)中運(yùn)行的,所以在應(yīng)用程序和裸機(jī)之間有一個額外的(盡管很小)抽象層。要從設(shè)備中提取每一點(diǎn)性能,所以它不適合構(gòu)建圖形密集的游戲。
5 NativeScript是怎么工作的
NativeScript Runtime:NativeScript Runtime是連接JavaScript代碼和Android和iOS原生API之間的接口代碼。就像瀏覽器制造商教他們的JavaScript虛擬機(jī)如何使用DOM和windows對象一樣,NativeScript Runtime也教JavaScript虛擬機(jī)如何使用本機(jī)設(shè)備底層的API。
NativeScript Core Modules: NativeScriptCore Modules是一組庫,這些庫是用來構(gòu)建應(yīng)用程序并指示NativeScript運(yùn)行時在設(shè)備上做什么。核心模塊由不同的庫組成,如UI組件(按鈕、列表視圖、標(biāo)簽)、導(dǎo)航和應(yīng)用程序。
JavaScript virtual machine:理解并執(zhí)行JavaScript的代碼,但是不知道怎么與設(shè)備交互,所以NativeScript開發(fā)團(tuán)隊編寫了接口代碼(稱為NativeScript Runtime和NativeScript Core Modules)來教JavaScript虛擬機(jī)有關(guān)Android和iOS等移動設(shè)備API的知識。
NativeScript CLI:NativeScript CLI抽離了本地工具和SDK的復(fù)雜性,為我們提供了一組與平臺無關(guān)的命令來構(gòu)建和部署應(yīng)用程序。