@nativescript/android
使用 v8 的 NativeScript for Android
npm i --save @nativescript/android

NativeScript 的 Android 运行时

Build Status

包含 NativeScript 的 Android 运行时的源代码。 NativeScript 是一个框架,允许开发者使用 JavaScript 和 CSS 编写真正本地的移动应用程序,适用于 Android 和 iOS。每个移动平台都有自己的生态系统,并提供完全不同的开发工具和语言 - Android 的 Java 和 iOS 的 Objective C(Swift)。为了将 JavaScript 代码转换为相应的本地 API,需要某种代理机制。这正是 NativeScript 的“运行时”部分负责的内容。Android 运行时可以被视为 JavaScript 和 Android 世界之间的“桥梁”。Android 的 NativeScript 应用程序是一个标准的本地包(apk),除了 JavaScript 文件外,还嵌入运行时。

其他文档

几个 Wiki 页面描述了关于运行时的一些内部主题 这里

主要项目

该仓库按照以下项目结构(按依赖关系排序)

  • android-metadata-generator - 生成 Android 运行时所需的元数据。
  • android-binding-generator - 允许在运行时动态创建 Java 和 Android 类型。由 extend 例程需要。
  • android-runtime - 包含 NativeScript 的 Android 运行时背后的核心逻辑。该项目包含原生 C++ 代码,并需要 Android NDK 才能正确构建。
  • android-runtime-testapp - 这是一个纯 Android 应用程序,其中包含运行时项目的测试。

辅助项目

架构图

NativeScript Android 运行时架构可以用以下图表总结。

Android Runtime diagram

有关其工作原理的更多详细信息,请参阅 文档

构建先决条件

以下是构建运行时包的最小先决条件。

  • 安装最新的 Android Studio
  • 从 SDK 管理器(Android Studio -> 工具 -> Android -> SDK 管理器)安装以下组件
    • Android API Level 23, 24, 25, 26, 27
    • Android NDK
    • Android 支持存储库
    • 下载构建工具
    • CMake
    • LLDB
  • 克隆此存储库以及子模块: git clone --recurse-submodules [email protected]:NativeScript/android-runtime.git

在 Android Studio 中使用运行时

  • 在 Android Studio 中打开 test-app 文件夹。它代表一个有效的 Android 项目,您可以从源代码构建和运行一个使用运行时的测试应用程序。

注意:为了保留环境变量,您可能需要从命令行运行Android Studio。这是以防您以通常的方式启动工作室时遇到“缺少npm”之类的错误。

如何构建

  • 使用NPM安装依赖项

    cd test-app/build-tools/jsparser
    npm install
  • 设置环境变量

    • JAVA_HOME,使得$JAVA_HOME/bin/java指向您的Java可执行文件
    • ANDROID_HOME指向您已安装Android SDK的位置
    • ANDROID_NDK_HOME指向适用于此版本NativeScript的Android NDK版本
  • 运行命令

    Windows

    gradlew

    Mac/Linux

    ./gradlew
  • 构建过程包括构建运行时包(优化版和未剥离v8符号表的版本),以及用于Android构建的所有辅助工具:metadata-generator、binding-generator、metadata-generator、static-binding-generator

  • 构建的结果将在dist文件夹中。

    注意:为了将构建时间减半并仅打包优化(剥离)版本的运行时包,请在build.gradle脚本中取消注释'tasks.generateRuntimeAar.execute()'

如何运行测试

  • 构建运行时后,进入子文件夹test-app。

  • 启动模拟器或连接设备。

    注意:请记住,设备或模拟器需要挂载sd卡。

  • 运行命令

gradlew runtests

如何连接检查器

  • 安装依赖项:运行命令
cd test-app
npm install
  • 在Android Studio中运行测试应用程序或在模拟器中手动运行。
  • 运行命令
npx ns debug android --start

(如果您全局安装了nativescript NPM模块,则可以省略npm installnpx前缀。)

  • 这将打印出一个URL,例如devtools://devtools/bundled/inspector.html?ws=localhost:40000。在Chrome或Chromium中打开此URL。

贡献

我们喜欢PRs!查看贡献指南。如果您想贡献,但不确定从哪里开始 - 寻找标记为help wanted问题

其他

获取帮助

请,严格使用github issues报告错误请求新功能。对于一般问题和支持,请查看Stack Overflow或在NativeScript社区Slack频道中询问我们的专家。