@akylas/nativescript-android-runtime
由akylas编写 | v8.6.3
使用v8的NativeScript for Android
npm i --save @akylas/nativescript-android-runtime

NativeScript的Android运行时

Build Status

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

附加文档

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

主要项目

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

辅助项目

架构图

NativeScript Android运行时架构可以总结如下所示。

Android Runtime diagram

有关更多详细信息,请参阅文档

构建先决条件

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

  • 安装最新的Android Studio
  • 从SDK Manager(Android Studio -> 工具 -> Android -> SDK Manager)安装以下组件
    • Android API级别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项目,您可以从源代码构建和运行与Runtime一起工作的测试应用程序。

注意:您可能需要从命令行运行Android Studio以保留环境变量。如果您以常规方式启动Studio,可能会出现“缺少npm”等错误。

如何构建

  • 从NPM安装依赖项

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

    • JAVA_HOME 应指向您的Java可执行文件,即 $JAVA_HOME/bin/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子文件夹。

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

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

  • 运行命令

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频道 中向我们的专家提问。