跨平台移动端开发:NativeScript

Viewed 1

跨平台移动端开发:NativeScript

NativeScript 是一个跨平台移动端开发框架,允许开发者使用 JavaScript、CSS 和 XML 来创建真正的原生应用,支持 iOS 和 Android。它通过将跨平台代码翻译成目标平台的本地代码来实现原生体验,UI 使用 XML 描述并由 CSS 样式化,最终编译为原生组件。

Telerik 公开了 NativeScript 框架,提供用于创建安卓、iOS 和 Windows Universal 跨平台原生应用的公共访问权限。NativeScript 既不是一种新型的 JavaScript 语言,也不是原生功能的封装器,它包括一个 JavaScript 运行时环境和一种将 JavaScript 调用转化为原生调用的机制。开发者可以使用 JavaScript、TypeScript 或 CoffeeScript 等语言编写应用,然后在安卓平台上用 V8 引擎,在 iOS 和 Windows Phone 上用 WebKit JavaScriptCore 解释应用。运行时环境会找到原生目标 API,将 JavaScript 数据类型转换为相应的原生类型,调用原生 API 并返回结果。

例如,在安卓平台上创建文件对象 var file = new java.io.File(path); 的步骤如下:

  • 用 V8 解释代码。
  • 根据原数据确定相应的原生方法调用。原数据是在各个平台上预先构建的提供类型和方法签名的全部可用 API 集合。
  • 类型转换模块将 JavaScript 的 String 类型转换为一个 java.lang.String 对象。
  • 运行时环境为 java.io.File 创建一个代理对象。
  • 通过该代理将对原有 JS File 对象的调用委托给相应的 Java 实例。

据 Telerik 介绍,与纯原生代码相比,NativeScript 运行时环境会带来大约 10% 的性能损失。NativeScript 可以将其所支持平台上的任意原生 API 作为目标,包括传感器接口 API 和用 Objective-C、Java 或 .NET 编写的第三方库。UI 组件是原生的,UI 事件由在 JavaScript 代码中声明的原生处理程序处理,如 View.OnClickListener 和 UIControl.addTarget。

为了避免开发者需要对三个支持的平台有深入的理解,该框架包含了一个抽象与原生代码连接的 NativeScript 模块层(NativeScript Modules Layer,NML),可以自动将 JavaScript 调用转化为原生调用。NML 包含以下模块:Application、Camera、Color、Console、Data、File System、HTTP、Imaging、Local Settings、Location、Timer 和 UI。开发者并未受限于只能使用 NML,也可以访问任意原生 API。

NativeScript 的其他一些功能包括:

  • 当前支持平台:iOS 7+ 和安卓 4.2+。预计将在 4 月实现 Windows Phone 的支持,对安卓早期版本的支持也将很快到来。
  • iOS 平台的编译可以在远程完成,无需 Mac 电脑或 iOS 工具。
  • 开发工作可以在任意 IDE 中完成。
  • 支持任意跨浏览器的 JavaScript 库。
  • 支持 CSS。
  • 支持 MVVM。
  • 即时支持新的原生平台。
0 Answers