- 版本: 8.8.4
- GitHub: https://github.com/NativeScript/android
- NPM: https://npmjs.net.cn/package/%40nativescript%2Fandroid
- 下载
- 昨天: 773
- 上周: 4630
- 上个月: 19753
NativeScript 的 Android 运行时
包含 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 应用程序,其中包含运行时项目的测试。
辅助项目
- android-static-binding-generator - 构建工具,根据用户的 JavaScript 代码生成绑定。
- project-template - 这是一个空的占位符 Android 应用程序项目,由 NativeScript CLI 在构建 Android 项目时使用。
架构图
NativeScript Android 运行时架构可以用以下图表总结。
有关其工作原理的更多详细信息,请参阅 文档。
构建先决条件
以下是构建运行时包的最小先决条件。
- 安装最新的 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 install
和npx
前缀。)
- 这将打印出一个URL,例如
devtools://devtools/bundled/inspector.html?ws=localhost:40000
。在Chrome或Chromium中打开此URL。
贡献
我们喜欢PRs!查看贡献指南。如果您想贡献,但不确定从哪里开始 - 寻找标记为help wanted
的问题。
其他
获取帮助
请,严格使用github issues来报告错误或请求新功能。对于一般问题和支持,请查看Stack Overflow或在NativeScript社区Slack频道中询问我们的专家。