【发布时间】:2015-12-03 03:10:51
【问题描述】:
我正在尝试使用以下说明在 Android Mobile 上运行 Chrome 应用: developer.chrome.com/apps/chrome_apps_on_mobile
从上面的 URL,我可以在 Android Emulator 5.0.1 中正常运行计算器应用程序。没有问题。
github.com/GoogleChrome/chrome-app-samples/tree/master/samples/calculator
Chrome App Calculator on Android Screenshot
然后我尝试从 nacl_sdk 的示例 api 目录在桌面上运行“本机客户端”应用程序: developer.chrome.com/native-client/sdk/download
nacl_sdk 附带了一些示例,包括演示和核心 api 示例。所有示例在桌面上都可以正常工作。其中我采用了'file_io' api 示例,该示例在编译(make)后运行良好。我拿了那个文件夹并使用以下命令来创建 cca cordova 应用程序:
cca create FileApp --copy-from=/path/to/file_io/manifest.json
然后 cd 到 FileApp 和 cca prepare
之后运行 Android eumlate 命令:
cca run android --target=avd5
它处理一切都很好,我发现构建这个像计算器应用程序一样的科尔多瓦应用程序没有错误。但是,在应用程序启动时“启动成功”后,Android 模拟器崩溃了。模拟器窗口关闭。
我从 AVD Manager 启动了 Android 模拟器,启动 Android 后我尝试启动“文件 I/O”应用程序,结果显示了消息
“很遗憾,文件 I/O 已停止。” Screenshot
这是否意味着 Android 操作系统仍不支持 PNaCl/NaCl 应用? NaCl 应用程序包含 .pexe 文件。 中间有没有我可能遗漏的步骤?
如果我可以在 Android 操作系统上运行原生客户端应用程序,就像使用 Apache Cordova 示例的 Chrome 移动应用程序一样工作,我非常感谢这方面的任何帮助。
【问题讨论】:
-
Android 版 Chrome 不支持 Native Client(暗示基于 Chrome 的 WebView)。见:developer.chrome.com/multidevice/faq
Does Native Client work on Chrome for Android? It does not, and we have no plans to announce at this time. -
是的,我已经阅读了。然后我也遇到了这个:github.com/MobileChromeApps/mobile-chrome-apps/blob/master/docs/…
Is NaCL / PNaCL supported? No. However, you can still compile and use native code by writing a custom Cordova plugin. -
native code by writing a custom Cordova plugin是 Android Java 而不是 NaCl/PNaCl。编写 Android 应用程序时 - Java 是本机语言。它可以理解为“本地”是一个重载的词。 -
这比使用 Android NDK 好吗?
-
Android NDK 适用于用 C/C++ 编写的代码,并使用 Java 原生接口 (JNI) 与 Java 层进行通信。一般用于需要计算性能或现有库(物理、图像处理等)的事物。选择任何路径的原因取决于具体情况。
标签: android cordova google-chrome-app google-nativeclient