Nativescript 是如何工作的?

How Nativescript works?

据我所知,它使用 Javascript 引擎来 运行 javaandroid/ios 平台上的脚本代码?

另外android/ios APIs (java, objective C)可以用Nativescript java脚本代码调用,像这样:

-在构建 Nativescript 时创建所有 android/ios API 的元数据 - 当从 java 脚本调用某些 api 时,它会查找特定的元数据和 Nativescript 运行 C++ 来调用 android/ios API

问题是我说得对吗?随时纠正我并添加一些额外的东西以更好地理解这一点?

Android:

Build-time 所有引用的 classes.jar(来自插件、支持库等)以及 android.jar SDK 都被解析,二进制元数据写入 3 main块。

在应用程序启动时,first-level 命名空间(androidcom)附加到 JavaScript 中的全局范围。然后在任何时候,当应用程序处于 运行 时,当访问 android.a.b.c 之类的任何内容时,元数据块将被读取、构建、附加到对象的 javascript 回调,并缓存在虚拟机中, 这样就可以随时访问该命名空间的任何成员。

由于附加到对象的元数据和回调,运行时知道何时创建对象的新 Java 副本(例如,当您在 Java 中编写 'new java.lang.Object()'脚本)和 link JS 实例与 Java 世界中的一个,这有助于同步两个垃圾收集器(v8 的垃圾收集器和 Android 上的 android 虚拟机的垃圾收集器] 设备 (dalvik/arm))

http://docs.nativescript.org/runtimes/android/advanced-topics/execution-flow