I'm trying to run a Chrome App on Android Mobile using the instructions from: developer.chrome.com/apps/chrome_apps_on_mobile
From above URL, I could run the calculator app fine in Android Emulator 5.0.1 fine. No issues.
github.com/GoogleChrome/chrome-app-samples/tree/master/samples/calculator
Chrome App Calculator on Android Screenshot
Then I tried running the "Native Client" App on Desktop from example api directory of nacl_sdk: developer.chrome.com/native-client/sdk/download
nacl_sdk comes with few examples including demo and core api examples. All examples works fine on Desktop. Out of them I took 'file_io' api example which runs fine after compiling (make). I took that folder and used the following command to create cca cordova app:
cca create FileApp --copy-from=/path/to/file_io/manifest.json
Then cd to FileApp
and cca prepare
After that ran Android eumlate command:
cca run android --target=avd5
It processed everything fine, and I see no errors building this cordova app like calculator app. But, after 'LAUNCH SUCCESS' when the app launched the Android emulator crashed. The emulator windows closed.
I started the Android Emulator from AVD Manager, and after booting up Android I tried starting the 'File I/O' app, which in result showed me the message
"Unfortunately, File I/O has stopped." Screenshot
Does that mean the PNaCl/NaCl apps still are not supported on Android OS? The NaCl app contains the .pexe file. Is there any step in between I could be missing?
I'd really appreciate any help in this regard to test if I could run Native Client Apps on Android OS just like the Chrome Mobile Apps using Apache Cordova examples work.
Native Client (NaCl) isn't supported in Chrome for Android (and by implication the Chrome/Chromium based WebView).
See: http://developer.chrome.com/multidevice/faq
Q: Does Native Client work on Chrome for Android?
A: It does not, and we have no plans to announce at this time.
But then the OP read at: https://github.com/MobileChromeApps/mobile-chrome-apps/blob/master/docs/faq.md#is-nacl--pnacl-supported
Q: Is NaCl/PNaCl supported [in Cordova]?
A: No. However, you can still compile and use native code
by writing a custom Cordova plugin.
And unfortunately the word native is an overloaded word with different meanings depending on context, so the OP started asking about the Android Native Development Kit (NDK).
The Android NDK which uses Java Native Interface (JNI) for C/C++ code to communicate with the Android Java framework. Typically Android apps only use the NDK if there is need to port existing C/C++ libraries or have a computational performance requirement like physics modeling or image processing.
When Cordova is referring to 'native code' its referring to code written in Android Java which would need to be bridged via a Cordova plugin to the JavaScript side.
And of course why to use any of the above frameworks/APIs depends on what the OP wants to do.